/* v8 (11.10.2026): токены нового облика — поверхности, текст, линии, акценты, пастели стадий, радиусы, тени,
   вдавленные поля, типографическая шкала и движение. Источник: audit/v8_tokens.md. Все имена с префиксом --v8-,
   чтобы не пересекаться с _tokens.html; старые токены не трогаем. Размеры заданы ТОЛЬКО здесь и дальше
   используются через var(): так линтер шкалы (design_lint.py) видит токены, а не россыпь px. */
body.v8{
  /* поверхности: страница / панель / чип / поповер */
  --v8-bg:#101316;--v8-panel:#16191d;--v8-chip:#262a30;--v8-pop:#181b1d;
  /* текст: заголовок / текст / мета / подпись */
  --v8-t1:#f7f8f8;--v8-t2:#c9cdd3;--v8-t3:#8a8f98;--v8-t4:#5f6168;
  /* белые линии и подсветки по бюджету контраста */
  --v8-w2:rgba(255,255,255,.02);--v8-w3:rgba(255,255,255,.03);--v8-w4:rgba(255,255,255,.04);--v8-w5:rgba(255,255,255,.05);
  --v8-w6:rgba(255,255,255,.06);--v8-w8:rgba(255,255,255,.08);--v8-w10:rgba(255,255,255,.10);--v8-w14:rgba(255,255,255,.14);
  /* акценты: красный — активный переключатель клиента, оранжевый — действие, тёплая метка */
  --v8-red:#ff3000;--v8-org:#ff5000;--v8-acc:#c93b22;--v8-tint:rgba(255,48,0,.15);
  --v8-y:#c9a227;--v8-o:#c96442;--v8-g:#5fa86b;--v8-late:rgba(255,110,90,.9);
  /* пастели стадий (календарь, чипы) */
  --v8-st-pre:138,147,163;--v8-st-script:143,163,191;--v8-st-gen:201,169,106;--v8-st-edit:201,132,104;--v8-st-voice:169,138,184;--v8-st-fin:134,176,138;
  /* вдавленное поле */
  --v8-deboss:inset 0 1px 2px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.03);
  --v8-deboss-f:inset 0 1px 2px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.22);
  --v8-field:rgba(0,0,0,.14);
  /* радиусы */
  --v8-r-1:1px;--v8-r-2:2px;--v8-r-4:4px;--v8-r-5:5px;--v8-r-6:6px;--v8-r-7:7px;--v8-r-8:8px;--v8-r-10:10px;--v8-r-12:12px;--v8-r-14:14px;--v8-r-pill:999px;--v8-page-max:1600px;
  /* тени */
  --v8-sh-lift:0 8px 30px rgba(0,0,0,.35);--v8-sh-lift-h:0 12px 36px rgba(0,0,0,.45);
  --v8-sh-pop:0 12px 32px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);--v8-sh-dlg:0 24px 60px rgba(0,0,0,.5);
  --v8-sh-btn:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 1px 0 rgba(255,255,255,.04),0 0 0 1px rgba(0,0,0,.5),0 4px 4px rgba(0,0,0,.1);
  --v8-sh-focus:0 0 0 3px rgba(255,255,255,.07),0 0 22px rgba(255,255,255,.06);
  /* шрифты: Inter — интерфейс, Roboto Condensed — только коды, моно — счётчики, даты, таймкоды */
  --v8-sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --v8-cond:"Roboto Condensed","Arial Narrow",sans-serif;
  --v8-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  /* типографическая шкала: заголовок 28/600 · подзаголовок 13 · секция 18/600 со знаком · текст 13 · мета 12 · подписи 13 обычным регистром
     рядом с числами · капитель 12 только у надзаголовков групп · факты 22 · аббревиатура 10 (правило подписей, owner 11.10) */
  --v8-fs-10:10px;--v8-fs-11:11px;--v8-fs-12:12px;--v8-fs-13:13px;--v8-fs-14:14px;--v8-fs-15:15px;--v8-fs-16:16px;--v8-fs-18:18px;
  --v8-fs-22:22px;--v8-fs-26:26px;--v8-fs-28:28px;--v8-fs-30:30px;--v8-fs-32:32px;--v8-fs-40:40px;--v8-fs-96:96px;
  /* шаги сетки, которых нет в старой шкале (линтер считает var() токеном) */
  --v8-g-1:1px;--v8-g-2:2px;--v8-g-3:3px;--v8-g-4:4px;--v8-g-5:5px;--v8-g-6:6px;--v8-g-8:8px;--v8-g-10:10px;--v8-g-12:12px;--v8-g-14:14px;--v8-g-18:18px;--v8-g-20:20px;--v8-g-28:28px;--v8-g-36:36px;
  /* высоты контролов */
  --v8-h-btn:28px;--v8-h-sm:24px;--v8-h-row:36px;--v8-h-inp:30px;--v8-h-touch:36px;--v8-h-ph:40px;--v8-h-it:32px;--v8-h-row2:52px;--v8-h-row3:64px;--v8-h-hero:248px;--v8-h-hero-m:170px;
  /* плитка папки (r3, владелец 11.10): ушко сверху слева, тело — тихий градиент, линия 1px; свет при наведении */
  --v8-fold-tab:7px;--v8-fold-ear:min(42%,128px);--v8-fold-a:#181b20;--v8-fold-b:#13161a;--v8-fold-l:rgba(255,255,255,.065);
  --v8-fold-ah:#1d2127;--v8-fold-bh:#16191e;--v8-fold-lh:rgba(255,255,255,.12);--v8-fold-glow:0 14px 30px -18px rgba(200,214,238,.22);
  /* движение */
  --v8-ease:cubic-bezier(.16,1,.3,1);--v8-fast:120ms;--v8-mid:180ms;--v8-slow:240ms;--v8-stagger:50ms;
  /* выпадающие меню (r3, владелец 11.10: «как боковое меню и на всём сайте одинаковые»): строка 34 (плотнее бокового меню, единая для всех меню), выбранный пункт —
     та же подложка, что у активной строки бокового меню, появление/уход 140 мс */
  --v8-h-mi:34px;--v8-menu:140ms;--v8-ring:rgba(255,255,255,.3);
  --v8-sel-bg:linear-gradient(90deg,rgba(200,214,238,.075),rgba(200,214,238,.04) 60%,rgba(200,214,238,.018));--v8-sel-sh:inset 0 1px 0 rgba(255,255,255,.035);
  --v8-sh-menu:0 12px 32px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05);
  /* окна в том же стиле, что меню (r3): глубже тень; кольцо фокуса 1 px — у пунктов, кнопок меню и окон */
  --v8-sh-win:0 24px 60px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05);
  /* сетка оболочки */
  --v8-sidebar:232px;
}
/* v8 (11.10.2026): основание нового облика — поле фона и зерно, тонкий скролл, фокус, появление страницы,
   кросс-фейд между страницами и грамматика компонентов (кнопки тонкой линией, вкладки, сегменты, чипы,
   вдавленные поля, непрозрачные поповеры, тост, окно, скелет, три обработки панели). Всё под body.v8 и с
   префиксом v8-: старые партиалы не трогаем, слой подключается ПОСЛЕ них (assets.py, сборка v8.css) и
   поэтому выигрывает при равном весе. Правила подняты до «body.v8 .класс» там, где старые селекторы
   весомее. Размеры вне старой шкалы — только через токены _v8_tokens.html. */
/* Переходный слой (11.10.2026): экраны и вложенные блоки, ещё не переписанные под v8, брали синевато-серые поверхности
   старых тем (_tokens / _depth_theme: --pan #21272f→#1c2229, --pan2, --s1-top…). Под body.v8 старые переменные указывают
   на нейтральные токены v8, поэтому старые блоки разом получают новые тона. Правила старых тем не трогаются. */
html body.v8{
  --surface-0:var(--v8-bg);--surface-1:var(--v8-panel);--surface-2:var(--v8-chip);
  --bg:var(--v8-bg);--panel:var(--v8-panel);--card:var(--v8-panel);--chip:var(--v8-chip);--chip2:#272a30;--ghead:#1a1d21;
  --line:rgba(255,255,255,.07);--line-2:rgba(255,255,255,.18);--line2:rgba(255,255,255,.18);
  --ink:var(--v8-t1);--ink2:var(--v8-t2);--muted:var(--v8-t3);--dim:var(--v8-t3);
  --field:var(--v8-field);--field-edge:rgba(255,255,255,.12);--field-focus:rgba(255,255,255,.35);
  --s0:var(--v8-bg);--s1:var(--v8-panel);--s1-top:#181b1f;--s1-bot:#15181b;
  --pan:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,0)),var(--v8-panel);
  --pan-top:linear-gradient(180deg,#191c20,#16191d);
  --pan2:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.005)),#1a1d21;
  --pan3:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01)),#1f2227;
  --panel-grad:var(--pan);--panel-grad-2:var(--pan2);--sub-grad:var(--pan2);
  --edge:rgba(255,255,255,.08);--edge-soft:rgba(255,255,255,.06);--edge-faint:rgba(255,255,255,.03);--hair:var(--edge-soft);--hair-2:var(--edge);
  --glass:rgba(24,27,29,.86);--control-active:linear-gradient(180deg,#212429,#1c1f23);
  --sh:var(--v8-sh-lift);--sh-card:var(--v8-sh-lift);--sh-pop:var(--v8-sh-pop);--sh2:var(--v8-sh-pop);
  --dots:rgba(255,255,255,.06);--hover:rgba(255,255,255,.03);--focus-ring:rgba(247,248,248,.55);
}

/* ---- поле фона: тёплый свет сверху-слева 6%, холодный справа 3%, потемнение к низу, дрейф 28 s; зерно 3% soft-light ---- */
html:has(body.v8){background:var(--v8-bg,#101316);scrollbar-color:var(--v8-w10) transparent;scrollbar-width:thin}
html body.v8.aid-shell{position:relative;isolation:isolate;background:var(--v8-bg);-webkit-font-smoothing:antialiased}
html body.v8::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(1000px 680px at 0% 0%,rgba(165,185,220,0.0600) 0%,rgba(165,185,220,0.0564) 11.7%,rgba(165,185,220,0.0470) 23.4%,rgba(165,185,220,0.0345) 35.1%,rgba(165,185,220,0.0211) 46.8%,rgba(165,185,220,0.0094) 58.5%,rgba(165,185,220,0.0017) 70.2%,rgba(165,185,220,0) 78%),radial-gradient(720px 900px at 100% 40%,rgba(150,180,255,0.0300) 0%,rgba(150,180,255,0.0282) 11.7%,rgba(150,180,255,0.0235) 23.4%,rgba(150,180,255,0.0172) 35.1%,rgba(150,180,255,0.0106) 46.8%,rgba(150,180,255,0.0047) 58.5%,rgba(150,180,255,0.0008) 70.2%,rgba(150,180,255,0) 78%),radial-gradient(760px 520px at 100% 100%,rgba(140,160,200,0.0300) 0%,rgba(140,160,200,0.0282) 11.7%,rgba(140,160,200,0.0235) 23.4%,rgba(140,160,200,0.0172) 35.1%,rgba(140,160,200,0.0106) 46.8%,rgba(140,160,200,0.0047) 58.5%,rgba(140,160,200,0.0008) 70.2%,rgba(140,160,200,0) 78%),linear-gradient(180deg,#121519 0%,#101316 50%,#0e1114 100%);background-size:130% 130%,130% 130%,130% 130%,100% 100%;animation:v8-bgdrift 28s ease-in-out infinite}
/* дизеринг градиентов: плитка шума под пиксели экрана рисуется в _v8_script.html (--v8-dither), ±1.5 уровня; свечения затухают по кривой без обрыва. Прежний шум (±3 уровня, растягивался масштабом Windows) был заметен */
html body.v8::after{content:"";position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:.012;background-image:var(--v8-dither,none);background-size:var(--v8-dither-size,128px) var(--v8-dither-size,128px)}
@keyframes v8-bgdrift{0%,100%{background-position:0% 0%,100% 40%,100% 100%,0 0}50%{background-position:14% 8%,86% 52%,88% 92%,0 0}}
/* ---- скролл: 4px, дорожка прозрачная, бегунок 10% → 18% при наведении на область, без стрелок ---- */
html body.v8 *{scrollbar-width:thin;scrollbar-color:var(--v8-w10) transparent}
html:has(body.v8) ::-webkit-scrollbar{width:4px;height:4px}
html:has(body.v8) ::-webkit-scrollbar-track{background:transparent}
html:has(body.v8) ::-webkit-scrollbar-thumb{background:var(--v8-w10);border-radius:var(--v8-r-2)}
html:has(body.v8) ::-webkit-scrollbar-button{display:none}
html:has(body.v8) :hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18)}
/* ---- фокус: виден всегда, кольцо светлое, без цветной заливки; hover рамок не рисует ---- */
html body.v8 :is(.v8-nav,.v8-page) :is(a,button,summary,[tabindex],input,select,textarea):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px;box-shadow:none}
html body.v8 :is(.v8-nav,.v8-page) .v8-btn:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px;box-shadow:var(--v8-sh-btn),var(--v8-sh-focus)}
html body.v8 :is(.v8-nav,.v8-page) ::selection{background:rgba(255,80,0,.28);color:var(--v8-t1)}
/* ---- появление страницы: оболочка сразу, группы содержимого 240 ms с шагом 50 ms (--i). Без JS всё видно сразу ---- */
html.v8-js body.v8 .v8-rv{opacity:0;transform:translateY(6px)}
html.v8-js body.v8.v8-in .v8-rv{opacity:1;transform:none;transition:opacity var(--v8-slow) var(--v8-ease),transform var(--v8-slow) var(--v8-ease);transition-delay:calc(var(--i,0)*var(--v8-stagger))}
/* ---- кросс-фейд между страницами 150 ms (где поддерживается); боковая панель не мигает ---- */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:150ms;animation-timing-function:ease}
html body.v8>header.aid-nav.v8-nav{view-transition-name:v8-nav}
::view-transition-group(v8-nav){animation-duration:0s}
@media(prefers-reduced-motion:reduce){
 html body.v8::before{animation:none}
 html.v8-js body.v8 .v8-rv{transform:none}
 html.v8-js body.v8.v8-in .v8-rv{transition-property:opacity}
 ::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation:none}
 html body.v8 :is(.v8-pop,.v8-toast,.v8-dlg,.v8-card,.v8-sp a){transition-duration:0s;transform:none;filter:none}
 html body.v8 .v8-sk{animation:none}
 html body.v8 dialog[open]:is(.v8-dlg,.finance-dialog,.person-dialog,.tg-dialog,.plan-editor),html body.v8 :is(.plan-inspector,.v8-planmsg){animation:none!important}
}
/* ---- типографика страницы v8: Inter для интерфейса, Roboto Condensed только для кодов, моно для чисел ---- */
html body.v8 .v8-page,html body.v8 .v8-page :is(button,input,select,textarea,.v8-btn),html body.v8 .v8-nav,html body.v8 .v8-nav :is(button,input,select){font-family:var(--v8-sans)}
html body.v8 .v8-page{color:var(--v8-t3);font-size:var(--v8-fs-13);line-height:1.5;max-width:var(--v8-page-max)}
html body.v8 .v8-page h1{font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1);margin:0}
html body.v8 .v8-page h2{font:500 var(--v8-fs-15)/1.3 var(--v8-sans);letter-spacing:-.01em;color:var(--v8-t1);margin:0}
html body.v8 .v8-page h3{font:500 var(--v8-fs-15)/1.3 var(--v8-sans);color:var(--v8-t2);margin:0}
html body.v8 .v8-page a{color:inherit;text-decoration:none}
html body.v8 .v8-page p{margin:0}
html body.v8 .v8-sub{font-size:var(--v8-fs-14);color:var(--v8-t3);margin-top:4px;line-height:1.4}
/* правило подписей (owner, 11.10): капитель 12 px — только надзаголовок группы; подпись у числа — 13 px обычным регистром */
html body.v8 .v8-cap{font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4)}
html body.v8 .v8-lab{font-size:var(--v8-fs-13);font-weight:400;color:var(--v8-t3);letter-spacing:0;font-variant-caps:normal}
html body.v8 .v8-mono{font-family:var(--v8-mono);font-size:var(--v8-fs-12);font-variant-numeric:tabular-nums}
html body.v8 .v8-code{font-family:var(--v8-cond);font-weight:600;letter-spacing:.06em;color:var(--v8-t2)}
html body.v8 .v8-t1{color:var(--v8-t1)}html body.v8 .v8-t2{color:var(--v8-t2)}html body.v8 .v8-t3{color:var(--v8-t3)}
html body.v8 .v8-page svg.aid-icon{flex:none;stroke-width:1.4}
/* статус — моно-аббревиатура; цвет только у ≤5 меток на экране (классы y/o/g ставит шаблон адресно) */
html body.v8 .v8-sa{font:500 var(--v8-fs-11)/1 var(--v8-mono);letter-spacing:.06em;color:var(--v8-t3);white-space:nowrap}
html body.v8 .v8-sa.y{color:rgba(201,162,39,.85)}html body.v8 .v8-sa.o{color:rgba(201,100,66,.9)}html body.v8 .v8-sa.g{color:rgba(95,168,107,.85)}
html body.v8 .v8-st{color:var(--v8-t3)}html body.v8 .v8-st.y{color:var(--v8-y);opacity:.85}html body.v8 .v8-st.o{color:var(--v8-o);opacity:.85}html body.v8 .v8-st.g{color:var(--v8-g);opacity:.85}
html body.v8 .v8-ud{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--v8-acc);flex:none}
/* ---- заголовок секции: 18/600 со знаком · моно-счётчик · тающее правило · 40px сверху, 12px снизу ---- */
html body.v8 .v8-sec{display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;position:relative;padding-bottom:10px}
html body.v8 .v8-sec h2{display:inline-flex;align-items:center;gap:var(--v8-g-10);font-size:var(--v8-fs-18);font-weight:600;letter-spacing:-.015em}
html body.v8 .v8-sec h2 svg{width:16px;height:16px;color:var(--v8-t3)}
html body.v8 .v8-sec.first{margin-top:0}
html body.v8 .v8-sec .n{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3);font-variant-numeric:tabular-nums}
html body.v8 .v8-sec .r{margin-left:auto;display:flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap}
html body.v8 .v8-sec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
/* ---- строки: 36px, разделитель тает к краям, hover — только фон 3% ---- */
html body.v8 .v8-row{display:grid;align-items:center;gap:12px;min-height:var(--v8-h-row);padding:0 10px;border-radius:var(--v8-r-8);color:var(--v8-t3);transition:background var(--v8-fast) var(--v8-ease);position:relative}
html body.v8 .v8-row:hover{background:var(--v8-w3)}
html body.v8 .v8-rows .v8-row+.v8-row::before{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-row .c-code{font-family:var(--v8-cond);font-weight:600;font-size:var(--v8-fs-13);letter-spacing:.06em;color:var(--v8-t1)}
html body.v8 .v8-row .c-title{color:var(--v8-t2);white-space:nowrap;overflow:hidden;min-width:0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent)}
html body.v8 .v8-row .c-title em{font-style:normal;color:var(--v8-t3)}
html body.v8 .v8-row .c-m{font-family:var(--v8-mono);font-size:var(--v8-fs-12);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
html body.v8 .v8-row .c-sa{display:grid;place-items:center}
html body.v8 .v8-row .c-ic{display:grid;place-items:center;color:var(--v8-t3)}
html body.v8 .v8-row .c-client{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* ---- чипы ---- */
html body.v8 .v8-chip{display:inline-flex;align-items:center;gap:var(--v8-g-5);height:20px;padding:0 6px;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t2);font-size:var(--v8-fs-11);font-weight:500;white-space:nowrap;line-height:1}
html body.v8 .v8-chip.mono{font-family:var(--v8-mono);font-weight:400;font-variant-numeric:tabular-nums}
html body.v8 .v8-chip.tint{background:var(--v8-tint)}
html body.v8 .v8-chip.fx{width:88px;justify-content:center;background:transparent;box-shadow:inset 0 0 0 1px var(--v8-w8)}
/* ---- кнопки: тонкая линия вместо заливки; оранжевая линия — действие, красная — активный переключатель клиента ---- */
html body.v8 .v8-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;margin:0;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font-size:var(--v8-fs-13);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:var(--v8-sh-btn);transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease),transform var(--v8-mid) var(--v8-ease),box-shadow var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-btn:hover{background:rgba(255,255,255,.07);color:var(--v8-t1);transform:none}
html body.v8 .v8-btn:active{transform:scale(.97);background:var(--v8-w4)}
html body.v8 .v8-btn.dim{color:var(--v8-t3)}html body.v8 .v8-btn.dim:hover{color:var(--v8-t2)}
html body.v8 .v8-btn.sm{min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;font-size:var(--v8-fs-12)}
html body.v8 .v8-btn.ghost{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-btn.ghost:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-ln::after{content:"";position:absolute;left:var(--l0,22%);right:var(--l1,22%);bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--lc,rgba(255,255,255,.45)),transparent);opacity:var(--lo,.9);transition:opacity var(--v8-mid) var(--v8-ease);pointer-events:none}
html body.v8 .v8-btn.action{background:transparent;box-shadow:none;color:var(--v8-t2);--lc:rgba(255,80,0,.95);--lo:.8;padding:0 12px}
html body.v8 .v8-btn.action:hover{background:var(--v8-w3);color:var(--v8-t1);--lo:1}
html body.v8 .v8-btn.action svg{color:var(--v8-t3)}
html body.v8 .v8-btn.action:focus-visible{box-shadow:var(--v8-sh-focus)}
html body.v8 .v8-btn.ghost:focus-visible,html body.v8 .v8-btn.action:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8 .v8-tgl{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:500;cursor:pointer;--lc:var(--v8-red);--lo:0;transition:color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-tgl:hover{color:var(--v8-t2);background:var(--v8-w3)}
html body.v8 .v8-tgl.on,html body.v8 .v8-tgl[aria-pressed=true]{color:var(--v8-t1);--lo:1}
html body.v8 .v8-ibt{position:relative;display:inline-grid;place-items:center;width:var(--v8-h-btn);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0;margin:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);cursor:pointer;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-ibt:hover{background:var(--v8-w4);color:var(--v8-t2)}
@media(pointer:coarse){html body.v8 :is(.v8-btn,.v8-tgl,.v8-ibt){min-height:var(--v8-h-touch);height:var(--v8-h-touch)}html body.v8 .v8-ibt{width:var(--v8-h-touch)}}
/* ---- вдавленное поле: фон темнее панели, внутренняя тень, без внешней рамки; фокус — внутренняя подсветка 6% ---- */
html body.v8 .v8-inp:not(#v8){min-height:var(--v8-h-inp);height:var(--v8-h-inp);width:100%;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font-family:var(--v8-sans);font-size:var(--v8-fs-13);outline:0;transition:box-shadow var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-inp:not(#v8)::placeholder{color:var(--v8-t3)}
html body.v8 .v8-inp:not(#v8):is(:focus,:focus-visible){box-shadow:var(--v8-deboss-f);outline:0}
html body.v8 select.v8-inp:not(#v8){appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a8f98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;cursor:pointer}
html body.v8 select.v8-inp:not(#v8) option{background:var(--v8-pop);color:var(--v8-t2)}
html body.v8 textarea.v8-inp:not(#v8){height:auto;padding:8px 10px;line-height:1.45;resize:vertical}
/* ---- сегмент (фильтр) и вкладки: без рамок, активный — светлее + линия снизу (красная — у переключателя клиента) ---- */
html body.v8 .v8-seg{position:relative;display:inline-flex;gap:var(--v8-g-2);flex:none;margin:0;padding:0;border:0}
html body.v8 .v8-seg>:is(button,label,a){position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 9px;margin:0;border:0;border-radius:var(--v8-r-6);background:none;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:500;cursor:pointer;white-space:nowrap;transition:color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-seg>:is(button,label,a):hover{color:var(--v8-t2);background:var(--v8-w3)}
html body.v8 .v8-seg>:is(button,label,a):is(.on,[aria-pressed=true],[aria-current],:has(input:checked)){color:var(--v8-t1)}
html body.v8 .v8-seg>label input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
html body.v8 .v8-seg>label:has(input:focus-visible){outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8 .v8-seg>:is(button,label,a)::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:0;transition:opacity var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-seg>:is(button,label,a):is(.on,[aria-pressed=true],[aria-current],:has(input:checked))::after{opacity:1}
html body.v8 .v8-seg.red>:is(button,label,a)::after{background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
html body.v8 .v8-seg .v8-seg-th{position:absolute;left:0;bottom:0;height:1px;width:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transition:transform var(--v8-slow) var(--v8-ease),width var(--v8-slow) var(--v8-ease);pointer-events:none}
html body.v8 .v8-seg.red .v8-seg-th{background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
html body.v8 .v8-seg:has(.v8-seg-th)>:is(button,label,a)::after{display:none}
html body.v8 .v8-tabs{position:relative;display:flex;gap:var(--v8-g-2);flex-wrap:wrap}
html body.v8 .v8-tabs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w5) 10%,var(--v8-w5) 90%,transparent)}
html body.v8 .v8-tabs a{position:relative;min-height:40px;padding:0 12px;display:inline-flex;align-items:center;gap:var(--v8-g-6);color:var(--v8-t3);font-size:var(--v8-fs-14);transition:color var(--v8-fast) var(--v8-ease);white-space:nowrap}
html body.v8 .v8-tabs a:hover{color:var(--v8-t2)}
html body.v8 .v8-tabs a[aria-current]{color:var(--v8-t1)}
html body.v8 .v8-tabs a[aria-current]::after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:1px;z-index:1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8 .v8-tabs a .n{font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t3)}
/* ---- факты: число 22/500 tabular, подпись капителью ---- */
html body.v8 .v8-facts{display:flex;gap:var(--v8-g-28);flex-wrap:wrap}
html body.v8 .v8-fact{display:grid;gap:4px}
html body.v8 .v8-fact b{display:flex;align-items:baseline;gap:8px;font:600 var(--v8-fs-26)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-fact b small{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-fact span{font-size:var(--v8-fs-13);font-weight:400;line-height:1.3;color:var(--v8-t3)}
html body.v8 .v8-fact span::first-letter{text-transform:uppercase}
/* герой v9: вопрос 14 · одно большое число 40/600 · строка фактов 13 с числами 500 */
html body.v8 .v8-hero9{position:relative;padding:22px 24px;border-radius:var(--v8-r-14);margin-bottom:8px}
html body.v8 .v8-hero9 .q{font:400 var(--v8-fs-14) var(--v8-sans);color:var(--v8-t3);margin-bottom:8px}
html body.v8 .v8-hero9 .big{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
html body.v8 .v8-hero9 .big b{font:600 var(--v8-fs-40)/1 var(--v8-sans);letter-spacing:-.025em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-hero9 .big b small{font:400 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t3);margin-left:4px}
html body.v8 .v8-hero9 .sub9{margin-top:10px;font-size:var(--v8-fs-13);color:var(--v8-t3);display:flex;gap:var(--v8-g-14);flex-wrap:wrap;align-items:center}
html body.v8 .v8-hero9 .sub9 b{font-weight:500;color:var(--v8-t2)}
html body.v8 .v8-hero9 .act{position:absolute;right:20px;top:20px;display:flex;gap:var(--v8-g-6);flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){html body.v8 .v8-hero9 .act{position:static;margin-top:12px;justify-content:flex-start}html body.v8 .v8-hero9 .big b{font-size:var(--v8-fs-32)}}
/* постепенное раскрытие: .v8-rows[data-collapse=N] прячет строки после N, кнопка «Ещё» (v8.js) */
html body.v8 .v8-rows[data-collapse] .v8-row.v8-hid{display:none}
html body.v8 .v8-more9{display:flex;align-items:center;gap:8px;padding:8px 10px 2px}
html body.v8 .v8-more9 .n9{font-size:var(--v8-fs-13);color:var(--v8-t3)}
/* ---- три обработки панели: a) кромка — без заливки, 1px линия тает; b) поднята светом — заливка, блик, тень, свет за курсором; c) окно — 4.5% → 0 вниз, граница тает ---- */
html body.v8 .v8-z{position:relative;border-radius:var(--v8-r-12)}
html body.v8 .v8-z-edge::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w8) 18%,var(--v8-w8) 82%,transparent);pointer-events:none}
html body.v8 .v8-z-edge.top::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w6) 18%,var(--v8-w6) 82%,transparent);pointer-events:none}
html body.v8 .v8-z-lift{background:radial-gradient(min(520px,85%) min(280px,85%) at 0 0,rgba(200,214,238,0.0500) 0%,rgba(200,214,238,0.0470) 11.7%,rgba(200,214,238,0.0392) 23.4%,rgba(200,214,238,0.0287) 35.1%,rgba(200,214,238,0.0176) 46.8%,rgba(200,214,238,0.0078) 58.5%,rgba(200,214,238,0.0014) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));border:1px solid rgba(255,255,255,.045);box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-z-lift::before{content:"";position:absolute;left:14px;right:14px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w10) 25%,var(--v8-w10) 75%,transparent);pointer-events:none;z-index:1}
html body.v8 .v8-z-lift::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(min(380px,70%) min(260px,70%) at var(--mx,30%) var(--my,30%),rgba(200,214,238,0.0400),transparent 70%);opacity:0;transition:opacity var(--v8-slow) var(--v8-ease);pointer-events:none}
html body.v8 .v8-z-lift:hover::after{opacity:1}
html body.v8 .v8-z-win::before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.016) 55%,transparent 100%);pointer-events:none}
html body.v8 .v8-z-win::after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;border:1px solid var(--v8-w10);pointer-events:none;-webkit-mask-image:radial-gradient(120% 95% at 50% 0%,#000 20%,transparent 72%);mask-image:radial-gradient(120% 95% at 50% 0%,#000 20%,transparent 72%)}
html body.v8 .v8-z-win>*{position:relative}
html body.v8 .v8-inner{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));border:1px solid var(--v8-w5);border-radius:var(--v8-r-10)}
html body.v8 .v8-inner::before{content:"";position:absolute;left:12px;right:12px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w8) 25%,var(--v8-w8) 75%,transparent);pointer-events:none}
html body.v8 .v8-ph{display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-ph);padding:4px 16px 0}
html body.v8 .v8-ph h3{font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-ph .n{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-ph .r{margin-left:auto;display:flex;gap:var(--v8-g-6);align-items:center}
html body.v8 .v8-pb{padding:4px 6px 6px}
/* ---- поповер / меню: непрозрачная поверхность, строки 32px, шорткат справа моно ---- */
html body.v8 .v8-ddw{position:relative;display:inline-block}
html body.v8 .v8-pop{position:absolute;top:calc(100% + 6px);left:0;min-width:216px;margin:0;padding:4px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top left;pointer-events:none;transition:opacity var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease);z-index:80;color:var(--v8-t2);text-align:left}
html body.v8 .v8-pop.rt{left:auto;right:0;transform-origin:top right}
html body.v8 .v8-pop.open,html body.v8 .v8-ddw[open]>.v8-pop{opacity:1;transform:none;pointer-events:auto}
html body.v8 .v8-pop .it,html body.v8 .v8-pop>a,html body.v8 .v8-pop>button{display:flex;align-items:center;gap:var(--v8-g-10);width:100%;min-height:var(--v8-h-it);height:var(--v8-h-it);padding:0 8px;margin:0;border:0;border-radius:var(--v8-r-5);background:none;box-shadow:none;color:var(--v8-t2);font-size:var(--v8-fs-13);font-weight:400;font-family:var(--v8-sans);text-align:left;cursor:pointer;white-space:nowrap;transition:background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-pop .it svg,html body.v8 .v8-pop>a svg,html body.v8 .v8-pop>button svg{color:var(--v8-t3);width:14px;height:14px;flex:none}
html body.v8 .v8-pop :is(.it,a,button):hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 .v8-pop .k{margin-left:auto;font-family:var(--v8-mono);font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-pop .sec2{padding:8px 8px 4px;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4)}
html body.v8 .v8-pop .danger{color:rgba(255,110,90,.85)}
html body.v8 .v8-ddw>summary{list-style:none}
html body.v8 .v8-ddw>summary::-webkit-details-marker{display:none}
/* ---- окно (dialog): свет снизу, 220 ms, с размытия 4px; тост — справа сверху ---- */
html body.v8 dialog.v8-dlg{width:420px;max-width:calc(100vw - 32px);padding:6px;margin:auto;border:0;border-radius:var(--v8-r-14);background:transparent;color:var(--v8-t2);box-shadow:var(--v8-sh-dlg);overflow:visible}
html body.v8 dialog.v8-dlg::backdrop{background:rgba(14,17,20,.62)}
html body.v8 dialog.v8-dlg[open]{animation:v8-dlg-in 220ms var(--v8-ease)}
@keyframes v8-dlg-in{from{opacity:0;transform:scale(.98) translateY(4px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
html body.v8 .v8-dlg .core{padding:16px;border-radius:var(--v8-r-10);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)),var(--v8-panel);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
html body.v8 .v8-dlg .f{display:grid;gap:12px;margin:16px 0 18px}
html body.v8 .v8-dlg label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-dlg .a{display:flex;justify-content:flex-end;gap:var(--v8-g-6)}
html body.v8 .v8-toast{position:fixed;right:20px;top:20px;display:flex;align-items:center;gap:var(--v8-g-10);padding:10px 12px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:0 8px 24px rgba(0,0,0,.4);color:var(--v8-t2);font-size:var(--v8-fs-13);opacity:0;transform:translateY(8px);transition:opacity var(--v8-slow) var(--v8-ease),transform var(--v8-slow) var(--v8-ease);z-index:120;pointer-events:none}
html body.v8 .v8-toast.show{opacity:1;transform:none;pointer-events:auto}
/* ---- скелет, линия прогресса (резкая у «сейчас»), аватар ---- */
html body.v8 .v8-sk{display:block;border-radius:var(--v8-r-4);background:linear-gradient(90deg,var(--v8-w3) 25%,var(--v8-w6) 50%,var(--v8-w3) 75%);background-size:200% 100%;animation:v8-sh 1.4s linear infinite}
@keyframes v8-sh{to{background-position:-200% 0}}
html body.v8 .v8-prog{position:relative;height:1px;background:var(--v8-w10);border-radius:var(--v8-r-1)}
html body.v8 .v8-prog i{position:absolute;left:0;top:0;height:1px;width:var(--p,0%);background:linear-gradient(90deg,transparent,rgba(255,80,0,.55) 60%,var(--v8-org))}
html body.v8 .v8-prog i::after{content:"";position:absolute;right:0;top:-2px;width:1px;height:5px;background:var(--v8-org)}
html body.v8 .v8-av{width:24px;height:24px;border-radius:50%;background:var(--v8-w6);color:var(--v8-t2);font-size:var(--v8-fs-10);font-weight:500;display:grid;place-items:center;flex:none;letter-spacing:.02em;overflow:hidden;position:relative}
html body.v8 .v8-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* ---- пустое состояние и служебные ---- */
html body.v8 .v8-empty{padding:10px 10px 12px;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* помощник-аватар (перетаскиваемый, у правого края) на телефоне закрывал последние кнопки: запас снизу, чтобы их можно было прокрутить из-под него */
@media(max-width:640px){html body.v8:has(.aid-pal) :is(body>main,body>.wrap){padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
/* переходный слой: цвета, вписанные прямо в правила старых тем (диаграмма Ганта, низ карточки клиента, поля ввода, заглушка обложки) */
html body.v8.aid-shell :is(.g-head,.g-corner){background:#181b1f}
html body.v8.aid-shell :is(.g-name,.g-bd em){background:#16191d;border-right-color:rgba(255,255,255,.07)}
html body.v8.aid-shell .g-name .m{color:var(--v8-t3)}
html body.v8.aid-shell .g-name a{color:var(--v8-t2)}
html body.v8.aid-shell :is(.client-order-content,.work-project .client-order-content,.project-card-body){background:linear-gradient(180deg,rgba(16,19,22,.1) 0,rgba(16,19,22,.92) 100%)}
html body.v8.aid-shell .poster-placeholder{background:radial-gradient(120% 90% at 30% 20%,#1f2227,#131619 72%)}
html body.v8.aid-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),textarea,select){background-color:var(--v8-field);border-color:rgba(255,255,255,.1)}
/* одна ширина рабочей области на всех разделах (владелец, 11.10.2026: шапки были разной длины — 1180 / во всю ширину / 1600) */
html body.v8 .v8-page{width:100%;max-width:var(--v8-page-max)}
html body.v8 :is(.v8-projects,.v8-files,.v8-storage){max-width:var(--v8-page-max)}
/* поля рабочей области (владелец 11.10): отступ от бокового меню и от правого края экрана одинаковый — примерно ширина слова «Сегодня»
   (136 px на 1920), на экранах уже — пропорционально меньше; все страницы держатся внутри этих полей */
html body.v8{--v8-gutter:clamp(24px,calc((100vw - 232px) * .08),136px)}
@media(min-width:901px){html body.v8.aid-shell>:is(main,.wrap){margin-left:0!important;margin-right:auto!important;padding-left:var(--v8-gutter)!important;padding-right:var(--v8-gutter)!important;max-width:calc(var(--v8-page-max) + var(--v8-gutter) * 2)!important;width:auto!important;box-sizing:border-box}}
/* Окно со своей прокруткой (владелец, раунд 2): высота — в пределах экрана от своего верха, а не на всю длину содержимого,
   чтобы окно было видно целиком: тогда колесо над окном крутит окно, а на его конце — страницу (_scroll_policy.html отдаёт
   колесо странице, пока окно видно меньше чем на 70 %). --v8-scroll-max ставит _v8_script.html элементу [data-v8-scroll]
   (наследуется детьми); без скрипта — экран минус поля. overscroll-behavior:auto — конец окна передаёт прокрутку странице
   и на телефоне. Применение: class="v8-scroll" на прокручиваемом элементе + data-v8-scroll на нём или на общем родителе. */
html body.v8 .v8-scroll{max-height:var(--v8-scroll-max,calc(100dvh - 2 * var(--v8-g-28)));overflow:auto;overscroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--v8-w10) transparent}
/* v8 (11.10.2026): оболочка — боковая панель варианта A (220 px, закладки-разделители со светом под ними, строки 36 px,
   моно-счётчики, активная строка подсвечена снизу + скользящая линия 2 px слева, блок пользователя внизу),
   на телефоне — верхняя полоса 56 px и выдвижное меню, как раньше (_linear_navigation.html + _sidebar_style.html).
   Селекторы с body.v8 весомее старых «html body.aid-shell>header.aid-nav.aid-nav» и стоят в сборке после них. */
html body.v8.aid-shell:has(>header.aid-nav.v8-nav){--sidebar-width:var(--v8-sidebar)}
html body.v8.aid-shell>header.aid-nav.v8-nav{width:var(--v8-sidebar);padding:22px 12px 12px;border:0;background:transparent;box-shadow:none;font-family:var(--v8-sans);color:var(--v8-t3)}
html body.v8.aid-shell>header.aid-nav.v8-nav::after{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;background:linear-gradient(180deg,transparent,var(--v8-w6) 12%,var(--v8-w6) 72%,transparent);pointer-events:none}
/* марка: AI Drama 16/500 + красная точка, подпись капителью */
html body.v8.aid-shell>header.aid-nav.v8-nav .brand{display:grid;gap:var(--v8-g-3);margin:0 0 6px;padding:0 10px;font:500 var(--v8-fs-16)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t2);white-space:nowrap}
html body.v8.aid-shell>header.aid-nav.v8-nav .brand .v8-wm{display:flex;align-items:center}
html body.v8.aid-shell>header.aid-nav.v8-nav .brand .brand-dot{display:block;position:static;width:6px;height:6px;margin:5px 0 0 4px;border-radius:50%;background:var(--v8-acc);box-shadow:none;animation:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .brand::after,html body.v8.aid-shell>header.aid-nav.v8-nav .brand span::after{display:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .brand small{display:block;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4);margin:0;line-height:1.2}
/* группы с закладками: тонкая скошенная линия и свет под ней */
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links{gap:0;padding:0 0 12px;overflow-x:hidden;overflow-y:auto}
@media(min-width:901px){html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links.v8-more-below{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 40px),transparent)}}
@media(min-width:901px){html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links{position:relative}}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-grp{position:relative;display:flex;flex-direction:column;gap:var(--v8-g-1);padding:4px 0 0;flex:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-bm{display:block;position:relative;height:10px;margin:0 2px 2px}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-bm::before{content:"";position:absolute;left:0;right:34%;top:6px;height:1px;background:linear-gradient(90deg,var(--v8-w14),var(--v8-w5) 70%,transparent);transform:skewY(-4deg);transform-origin:left center}
/* владелец 11.10: размытые пятна у разделителей и под активным пунктом — «непонятные пятна»; остались тонкая линия и ровная подложка пункта */
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-bm::after{display:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-lbl{display:block;padding:0 10px;margin:0 0 6px;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t3);line-height:1.3;text-transform:none;background:none;border:0;box-shadow:none;min-height:0;height:auto;text-align:left;font-family:var(--v8-sans)}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-sub{display:block;padding:0 10px;margin:6px 0 2px;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4);line-height:1.3}
/* строки: 36 px, Inter 14, без рамок; hover — фон 3%; активная — светлее, свет снизу */
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a{position:relative;display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);height:var(--v8-h-row);margin:0;padding:0 10px;border:0;border-radius:var(--v8-r-7);background:none;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-14);font-weight:400;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a span{min-width:0;overflow:hidden;text-overflow:ellipsis}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a svg{width:15px;height:15px;flex:none;color:inherit;opacity:.85;stroke-width:1.5}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a[aria-current=page]{color:var(--v8-t1);background:linear-gradient(90deg,rgba(200,214,238,.075),rgba(200,214,238,.04) 60%,rgba(200,214,238,.018));border:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.035);font-weight:400}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a[aria-current=page] svg{color:var(--v8-t1);opacity:1}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a::after,html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a::before{display:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links .nav-count{position:static;margin-left:auto;padding:0;background:none;color:var(--v8-t4);font:400 var(--v8-fs-11) var(--v8-mono);font-variant-numeric:tabular-nums;line-height:1}
html body.v8.aid-shell>header.aid-nav.v8-nav .v8-nbar{position:absolute;left:4px;top:0;width:2px;height:18px;border-radius:var(--v8-r-1);background:rgba(255,255,255,.32);opacity:0;transition:transform var(--v8-slow) var(--v8-ease),opacity var(--v8-mid) var(--v8-ease);pointer-events:none;z-index:1}
/* клиенты: заголовок-кнопка + «+», список внутри группы */
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--v8-g-2);margin:0;padding:0 2px 0 0;min-height:0}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-toggle{display:inline-flex;align-items:center;gap:var(--v8-g-6);cursor:pointer;color:var(--v8-t3);padding:0 10px;min-height:var(--v8-h-sm);margin:0}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-toggle:hover{color:var(--v8-t2)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-chevron{transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-toggle[aria-expanded=false] .nav-client-chevron{transform:rotate(-90deg)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-create{width:24px;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0;margin:0;color:var(--v8-t4)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-create:hover{color:var(--v8-t2);background:var(--v8-w4)}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-list{display:flex;flex-direction:column;gap:var(--v8-g-1);margin:0;padding:0}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-list.is-collapsed{display:none}
html body.v8.aid-shell>header.aid-nav.v8-nav .nav-client-list a{padding-left:10px}
/* блок пользователя внизу: аватар 24, имя, роль капителью; меню аккаунта — непрозрачный поповер */
html body.v8.aid-shell .v8-nav .global-account{margin-top:auto;padding:8px 0 0;border:0}
html body.v8.aid-shell .v8-nav .global-account>summary{display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);padding:0 10px;border-radius:var(--v8-r-7);color:var(--v8-t3);font-size:var(--v8-fs-13);font-family:var(--v8-sans);cursor:pointer}
html body.v8.aid-shell .v8-nav .global-account>summary:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8.aid-shell .v8-nav .global-account>summary::after{content:"";width:6px;height:6px;margin-left:auto;border-right:1px solid var(--v8-t4);border-bottom:1px solid var(--v8-t4);transform:rotate(-135deg);color:var(--v8-t4)}
html body.v8.aid-shell .v8-nav .global-account>summary .employee-avatar{width:24px;height:24px;min-width:24px;border-radius:50%;background:var(--v8-w6);color:var(--v8-t2);font-size:var(--v8-fs-10);font-weight:500}
html body.v8.aid-shell .v8-nav .global-account>summary>span:not(.employee-avatar){color:var(--v8-t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8.aid-shell .v8-nav .global-menu{width:272px;padding:10px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-10);background:var(--v8-pop);backdrop-filter:none;box-shadow:var(--v8-sh-pop);color:var(--v8-t2);font-family:var(--v8-sans);font-size:var(--v8-fs-13)}
html body.v8.aid-shell .v8-nav .nav-account{display:flex;flex-direction:column;align-items:stretch;gap:var(--v8-g-6);width:100%;margin:0;padding:0;border:0}
html body.v8.aid-shell .v8-nav .nav-account>:is(.role-preview-switch,.hide-names-switch,.language-switch,.nav-signout-form){margin:0;width:100%;max-width:100%;min-width:0;padding:0}
html body.v8.aid-shell .v8-nav .nav-identity{display:flex;align-items:center;gap:var(--v8-g-10);padding:2px 2px 10px;border-bottom:1px solid var(--v8-w6);border-radius:0;color:var(--v8-t2);white-space:normal}
html body.v8.aid-shell .v8-nav .nav-identity>div{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8.aid-shell .v8-nav .nav-identity b{font-size:var(--v8-fs-13);font-weight:500;color:var(--v8-t1);max-width:none}
html body.v8.aid-shell .v8-nav .nav-identity span{font-size:var(--v8-fs-11);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4);margin:0}
html body.v8.aid-shell .v8-nav .nav-identity .employee-avatar{width:28px;height:28px;min-width:28px;border-radius:50%;background:var(--v8-w6);font-size:var(--v8-fs-11)}
html body.v8.aid-shell .v8-nav .nav-account :is(.role-preview-switch label,.hide-names-switch label,.language-switch>span){font-size:var(--v8-fs-12);color:var(--v8-t3);line-height:1.3}
html body.v8.aid-shell .v8-nav .nav-account .role-preview-switch{display:grid;gap:var(--v8-g-5)}
html body.v8.aid-shell .v8-nav .nav-account .role-preview-switch :is(select,.aid-select-trigger):not(#v8){width:100%;max-width:none;min-height:var(--v8-h-inp);height:var(--v8-h-inp);padding:0 26px 0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font-size:var(--v8-fs-13);font-family:var(--v8-sans)}
html body.v8.aid-shell .v8-nav .nav-account .hide-names-switch label{display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-btn);margin:0;color:var(--v8-t3);cursor:pointer}
html body.v8.aid-shell .v8-nav .nav-account .hide-names-switch input{width:16px;height:16px;margin:0;accent-color:var(--v8-t2)}
html body.v8.aid-shell .v8-nav .nav-account .language-switch{display:flex;align-items:center;justify-content:space-between;gap:var(--v8-g-10);min-height:var(--v8-h-btn)}
html body.v8.aid-shell .v8-nav .nav-account .language-switch>div{flex:none;display:flex;gap:var(--v8-g-2);padding:0;border:0;border-radius:0}
html body.v8.aid-shell .v8-nav .nav-account .language-switch button{position:relative;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:none;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-12);font-weight:500;font-family:var(--v8-sans)}
html body.v8.aid-shell .v8-nav .nav-account .language-switch button:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8.aid-shell .v8-nav .nav-account .language-switch button[aria-pressed=true]{color:var(--v8-t1)}
html body.v8.aid-shell .v8-nav .nav-account .language-switch button[aria-pressed=true]::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8.aid-shell .v8-nav .nav-account .nav-signout-form{margin-top:4px}
html body.v8.aid-shell .v8-nav .nav-account .nav-signout{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:500;font-family:var(--v8-sans)}
html body.v8.aid-shell .v8-nav .nav-account .nav-signout:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8.aid-shell .v8-nav .nav-account .nav-signout::after{content:"";position:absolute;left:30%;right:30%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent)}
/* пропуск к содержимому */
html body.v8.aid-shell .skip-workspace{background:var(--v8-pop);color:var(--v8-t1);border:1px solid var(--v8-w8);border-radius:var(--v8-r-6);font-family:var(--v8-sans)}
/* телефон: верхняя полоса 56 px и выдвижное меню (геометрия — из _sidebar_style.html), цвета v8 */
@media(max-width:900px){
 /* без backdrop-filter: он делает шапку containing block для fixed-меню, и выдвижная панель схлопывается */
 html body.v8.aid-shell>header.aid-nav.v8-nav{width:100%;padding:6px 12px;background:rgba(16,19,22,.96);border-bottom:1px solid var(--v8-w6)}
 html body.v8.aid-shell>header.aid-nav.v8-nav::after{display:none}
 html body.v8.aid-shell>header.aid-nav.v8-nav .brand{margin:0;padding:0;flex:1;font-size:var(--v8-fs-16)}
 html body.v8.aid-shell>header.aid-nav.v8-nav .brand small{display:none}
 html body.v8.aid-shell>header.aid-nav.v8-nav .studio-menu-toggle{color:var(--v8-t2)}
 html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links{padding:12px 12px 24px;background:#13161a;border-right:1px solid var(--v8-w8);width:min(300px,85vw)}
 html body.v8.aid-shell>header.aid-nav.v8-nav .nav-links a{min-height:44px;height:44px}
 html body.v8.aid-shell>header.aid-nav.v8-nav .v8-nbar{display:none}
 html body.v8.aid-shell .v8-nav .global-account{margin:0;padding:0}
 html body.v8.aid-shell .v8-nav .global-account>summary{padding:0 6px}
 html body.v8.aid-shell .v8-nav .global-account>summary>span:not(.employee-avatar),html body.v8.aid-shell .v8-nav .global-account>summary::after{display:none}
 html body.v8.aid-shell .v8-nav .global-menu{width:min(300px,calc(100vw - 24px))}
 html body.v8.aid-shell .studio-nav-backdrop{background:rgba(14,17,20,.62)}
}
/* v8 (11.10.2026): экран «Проекты» — шапка, панель фильтров, плитки 9:16 (код первым, постер, стадия, старт → дедлайн,
   линия прогресса, серии точками), боковая панель действий по наведению/фокусу, таблица с теми же колонками,
   переключатель плитки/таблица без JS (:has). Размеры вне старой шкалы — токенами _v8_tokens.html. */
html body.v8 .v8-projects{max-width:none}
html body.v8 .v8-head{display:flex;align-items:flex-start;gap:var(--v8-g-36);flex-wrap:wrap;margin-bottom:16px}
html body.v8 .v8-head .v8-facts{margin-top:6px}
/* панель фильтров: слева поиск и состояние, справа сортировка, вид и действие; тающее правило снизу */
html body.v8 .v8-tb{display:grid;grid-template-columns:auto 1fr;gap:var(--v8-g-28);align-items:center;margin:0 0 20px;padding-bottom:12px;position:relative}
html body.v8 .v8-tb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w6),var(--v8-w4) 50%,transparent)}
html body.v8 .v8-tb .zn{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;min-width:0}
html body.v8 .v8-tb .zn.act{justify-content:flex-end}
html body.v8 .v8-tb .lb{margin-right:4px;opacity:.8}
html body.v8 .v8-search{position:relative;display:inline-flex;align-items:center;width:220px;max-width:100%;color:var(--v8-t3)}
html body.v8 .v8-search svg{position:absolute;left:9px;pointer-events:none}
html body.v8 .v8-search .v8-inp:not(#v8){padding-left:28px}
html body.v8 .v8-sort{display:inline-flex;align-items:center}
html body.v8 .v8-sort .v8-inp:not(#v8){width:auto;min-width:0;height:var(--v8-h-btn);min-height:var(--v8-h-btn);background-color:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-sort .v8-inp:not(#v8):hover{color:var(--v8-t2);background-color:var(--v8-w3)}
html body.v8 .v8-tb fieldset{margin:0;padding:0;border:0;min-width:0}
html body.v8 .v8-tb .v8-seg>label>span{display:inline-flex;align-items:center;gap:var(--v8-g-5)}
/* переключатель вида — без JS */
html body.v8 .v8-projects:has(input[name=v8_view][value=table]:checked) .v8-grid{display:none}
html body.v8 .v8-projects:not(:has(input[name=v8_view][value=table]:checked)) .v8-list{display:none}
/* сетка плиток */
html body.v8 .v8-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--v8-g-18)}
@media(min-width:1280px){html body.v8 .v8-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
html body.v8 .v8-card{position:relative;aspect-ratio:9/16;min-width:0;border-radius:var(--v8-r-12);overflow:hidden;isolation:isolate;background:radial-gradient(min(320px,60%) min(260px,60%) at 22% 8%,rgba(200,214,238,0.0700) 0%,rgba(200,214,238,0.0657) 11.7%,rgba(200,214,238,0.0549) 23.4%,rgba(200,214,238,0.0402) 35.1%,rgba(200,214,238,0.0246) 46.8%,rgba(200,214,238,0.0109) 58.5%,rgba(200,214,238,0.0020) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(170deg,#212429 0%,#171a1e 45%,#121518 100%);border:1px solid rgba(255,255,255,.045);box-shadow:var(--v8-sh-lift);transition:border-color var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease),box-shadow var(--v8-slow) var(--v8-ease)}
html body.v8 .v8-card.p2{background:radial-gradient(min(300px,30%) min(240px,30%) at 75% 10%,rgba(200,214,238,0.0600) 0%,rgba(200,214,238,0.0564) 11.7%,rgba(200,214,238,0.0470) 23.4%,rgba(200,214,238,0.0345) 35.1%,rgba(200,214,238,0.0211) 46.8%,rgba(200,214,238,0.0094) 58.5%,rgba(200,214,238,0.0017) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(200deg,#1f2227 0%,#16191d 50%,#121518 100%)}
html body.v8 .v8-card.p3{background:radial-gradient(min(280px,55%) min(300px,55%) at 50% 40%,rgba(200,214,238,0.0500) 0%,rgba(200,214,238,0.0470) 11.7%,rgba(200,214,238,0.0392) 23.4%,rgba(200,214,238,0.0287) 35.1%,rgba(200,214,238,0.0176) 46.8%,rgba(200,214,238,0.0078) 58.5%,rgba(200,214,238,0.0014) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,#1b1e22 0%,#14171b 60%,#111417 100%)}
html body.v8 .v8-card.p4{background:radial-gradient(min(260px,45%) min(220px,45%) at 10% 60%,rgba(255,140,80,0.0500) 0%,rgba(255,140,80,0.0470) 11.7%,rgba(255,140,80,0.0392) 23.4%,rgba(255,140,80,0.0287) 35.1%,rgba(255,140,80,0.0176) 46.8%,rgba(255,140,80,0.0078) 58.5%,rgba(255,140,80,0.0014) 70.2%,rgba(255,140,80,0) 78%),linear-gradient(160deg,#1d2025 0%,#14171b 55%,#111417 100%)}
html body.v8 .v8-card::before{content:"";position:absolute;left:14px;right:14px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w10) 25%,var(--v8-w10) 75%,transparent);z-index:3;pointer-events:none}
html body.v8 .v8-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(min(360px,70%) min(300px,70%) at var(--mx,40%) var(--my,30%),rgba(200,214,238,0.0600),transparent 70%);opacity:0;transition:opacity var(--v8-mid) var(--v8-ease);z-index:1}
html body.v8 .v8-card:hover,html body.v8 .v8-card:focus-within{border-color:var(--v8-w8);transform:translateY(-1px);box-shadow:var(--v8-sh-lift-h)}
html body.v8 .v8-card:hover::after{opacity:1}
html body.v8 .v8-card[hidden]{display:none}
html body.v8 .v8-card-link{position:absolute;inset:0;display:block;color:inherit;border-radius:inherit}
html body.v8 .v8-card-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.9}
/* R2 (владелец 11.10, «карточки стильнее»): подложки для читаемости на светлых обложках — плавные, без «лесенки»:
   сверху под кодом и названием, снизу под статусом, датами и прогрессом. Без обложки — прежний тёмный градиент. */
html body.v8 .v8-card-shade{position:absolute;left:0;right:0;top:0;height:42%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(13,15,18,.78) 0%,rgba(13,15,18,.66) 18%,rgba(13,15,18,.46) 38%,rgba(13,15,18,.26) 58%,rgba(13,15,18,.11) 78%,rgba(13,15,18,.03) 92%,rgba(13,15,18,0) 100%)}
html body.v8 .v8-card:not(:has(.v8-card-cover)) .v8-card-shade{display:none}
html body.v8 .v8-card-fade{position:absolute;left:0;right:0;bottom:0;height:56%;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(13,15,18,.9) 0%,rgba(13,15,18,.78) 20%,rgba(13,15,18,.56) 40%,rgba(13,15,18,.32) 60%,rgba(13,15,18,.13) 80%,rgba(13,15,18,0) 100%)}
html body.v8 .v8-card:has(.v8-card-cover) .v8-card-fade{height:62%;background:linear-gradient(0deg,rgba(13,15,18,.94) 0%,rgba(13,15,18,.84) 18%,rgba(13,15,18,.64) 36%,rgba(13,15,18,.4) 55%,rgba(13,15,18,.18) 75%,rgba(13,15,18,.05) 90%,rgba(13,15,18,0) 100%)}
/* иерархия: код → название → клиент; внизу статус → даты → прогресс */
html body.v8 .v8-card .top{position:absolute;left:16px;right:16px;top:14px;z-index:2;display:grid;gap:var(--v8-g-4);text-shadow:0 1px 2px rgba(0,0,0,.35)}
html body.v8 .v8-card .top .cd{font:600 var(--v8-fs-40)/1 var(--v8-cond);letter-spacing:.02em;color:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-card .top .cd.name{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.01em;white-space:normal;overflow-wrap:anywhere;color:var(--v8-t1)}
html body.v8 .v8-card .top .tt{color:var(--v8-t1);font:500 var(--v8-fs-14)/1.3 var(--v8-sans);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html body.v8 .v8-card .top .cl{font-size:var(--v8-fs-12);color:var(--v8-t2);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-card .lo{position:absolute;left:16px;right:16px;bottom:18px;z-index:2;display:grid;gap:var(--v8-g-8);text-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-card .stg{display:flex;align-items:center;gap:var(--v8-g-6);font:500 var(--v8-fs-14)/1.2 var(--v8-sans);color:var(--v8-t1);min-width:0}
html body.v8 .v8-card .stg .v8-st{display:inline-flex;flex:none}
html body.v8 .v8-card .stg .v8-st svg{width:18px;height:18px}
html body.v8 .v8-card .stg .stg-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body.v8 .v8-card .when{display:flex;align-items:baseline;gap:var(--v8-g-6);min-width:0;white-space:nowrap}
html body.v8 .v8-card .when b{font:500 var(--v8-fs-18)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-card .when b.over{color:var(--v8-late)}
html body.v8 .v8-card .when .arr{display:inline-flex;align-self:center;color:var(--v8-t3);opacity:.8}
html body.v8 .v8-card .when .lab{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-card .when .due{margin-left:auto;font-size:var(--v8-fs-12);color:var(--v8-t3);overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-card .when .due.soon{color:var(--v8-t2)}
html body.v8 .v8-card .when .due.over{color:var(--v8-late)}
html body.v8 .v8-card .bot{display:flex;align-items:baseline;gap:var(--v8-g-6);font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);font-variant-numeric:tabular-nums}
html body.v8 .v8-card .bot .eps{display:inline-flex;align-items:center;gap:var(--v8-g-5)}html body.v8 .v8-card .bot .eps svg{color:var(--v8-t3);align-self:center}
html body.v8 .v8-card .bot .pc{margin-left:auto;color:var(--v8-t2)}
html body.v8 .v8-card[data-urgency=late] .v8-prog i,html body.v8 .v8-card[data-urgency=late] .v8-prog i::after{background:var(--v8-late)}
/* меню действий: тонкая полоса тонированного стекла внизу карточки — значок + короткая подпись, тонкие разделители;
   по наведению/фокусу всплывает, нижний блок уезжает вверх (без перекрытия). На сенсорных — видна всегда. */
html body.v8 .v8-card{container-type:inline-size}
html body.v8 .v8-cm{position:absolute;left:10px;right:10px;bottom:10px;z-index:4;display:flex;align-items:stretch;height:var(--v8-h-row2);padding:0 2px;border:1px solid rgba(255,255,255,.07);border-radius:var(--v8-r-8);background:rgba(15,17,20,.58);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-cm a{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--v8-g-5);padding:0 4px;color:var(--v8-t2);font:500 var(--v8-fs-11)/1 var(--v8-sans);text-decoration:none;white-space:nowrap;transition:color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-cm a span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-cm a svg{flex:none;color:var(--v8-t3);transition:color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-cm a+a::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:1px;background:rgba(255,255,255,.08)}
html body.v8 .v8-cm a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:currentColor;opacity:0;transform:scaleX(.4);transition:opacity var(--v8-fast) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-cm a:is(:hover,:focus-visible){color:var(--v8-t1)}
html body.v8 .v8-cm a:is(:hover,:focus-visible) svg{color:var(--v8-t1)}
html body.v8 .v8-cm a:is(:hover,:focus-visible)::after{opacity:.55;transform:none}
html body.v8 .v8-cm a.pen{flex:0 0 40px;padding:0}
html body.v8 .v8-card:is(:hover,:focus-within) .v8-cm{opacity:1;transform:none;pointer-events:auto}
html body.v8 .v8-card:is(:hover,:focus-within) .lo{transform:translateY(-58px)}
@container (max-width:200px){html body.v8 .v8-cm a:not(.pen) span{display:none}}@container (max-width:260px){html body.v8 .v8-cm:has(a:nth-child(4)) a:not(.pen) span{display:none}}
@media(hover:none),(max-width:640px){html body.v8 .v8-cm{opacity:1;transform:none;pointer-events:auto}html body.v8 .v8-card .lo{transform:translateY(-58px)}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-cm,html body.v8 .v8-card .lo{transition:opacity var(--v8-fast) linear}html body.v8 .v8-cm{transform:none}html body.v8 .v8-cm a::after{transform:none}}
/* таблица: те же колонки, действия по наведению строки и по фокусу */
html body.v8 .v8-list .v8-rows{padding:6px}
html body.v8 .v8-prow{grid-template-columns:64px 88px minmax(0,1fr) 110px 120px 72px 48px auto}
html body.v8 .v8-prow.head{min-height:var(--v8-h-btn);height:var(--v8-h-btn);color:var(--v8-t4);font-size:var(--v8-fs-12)}
html body.v8 .v8-prow.head .c-code{font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4);letter-spacing:0}
html body.v8 .v8-prow.head:hover{background:none}
html body.v8 .v8-prow .c-st{display:inline-flex;align-items:center;gap:var(--v8-g-6);white-space:nowrap;overflow:hidden;min-width:0}
html body.v8 .v8-prow .c-st .c-stn{overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-prow .c-date.over{color:var(--v8-late)}
html body.v8 .v8-prow .c-acts{display:flex;gap:var(--v8-g-2);justify-content:flex-end;opacity:0;transition:opacity var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-prow:hover .c-acts,html body.v8 .v8-prow:focus-within .c-acts{opacity:1}
html body.v8 .v8-prow .c-acts .v8-ibt{width:var(--v8-h-sm);min-height:var(--v8-h-sm);height:var(--v8-h-sm)}
html body.v8 .v8-prow[hidden]{display:none}
@media(hover:none){html body.v8 .v8-prow .c-acts{opacity:1}}
@media(max-width:1100px){html body.v8 .v8-prow{grid-template-columns:64px 88px minmax(0,1fr) 110px 72px auto}html body.v8 .v8-prow :is(.c-client,.c-pc){display:none}html body.v8 .v8-tb{grid-template-columns:1fr;gap:var(--v8-g-10)}html body.v8 .v8-tb .zn.act{justify-content:flex-start}}
@media(max-width:640px){html body.v8 .v8-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}html body.v8 .v8-card .top .cd{font-size:var(--v8-fs-32)}html body.v8 .v8-card .top{right:16px}html body.v8 .v8-prow{grid-template-columns:64px 88px minmax(0,1fr) auto}html body.v8 .v8-prow :is(.c-st,.c-date){display:none}html body.v8 .v8-search{width:100%}html body.v8 .v8-tb .v8-seg{flex-wrap:nowrap;max-width:100%;flex:0 1 auto;overflow-x:auto;scrollbar-width:none}html body.v8 .v8-tb .v8-seg::-webkit-scrollbar{display:none}html body.v8 .v8-tb .v8-seg>label{flex:none}html body.v8 .v8-tb .zn{gap:var(--v8-g-6) var(--v8-g-2)}}
@media(max-width:420px){html body.v8 .v8-grid{grid-template-columns:1fr}}
/* таблица проектов на телефоне (≤640): название получает всю оставшуюся ширину, серии/стадия/дата — вторым рядом, действия — третьим (находка GPT В1, 11.10.2026) */
@media(max-width:640px){
 html body.v8 .v8-prow{grid-template-columns:88px minmax(0,1fr) auto;grid-auto-rows:auto;row-gap:6px;column-gap:10px;align-items:center;padding-block:10px}
 html body.v8 .v8-prow.head{display:none}
 html body.v8 .v8-prow>.c-code{grid-column:1;grid-row:1}
 html body.v8 .v8-prow>.c-title{grid-column:2 / 4;grid-row:1;min-width:0}
 html body.v8 .v8-prow>.v8-chip.fx{grid-column:1;grid-row:2;justify-self:start;min-width:0}
 html body.v8 .v8-prow>.c-st{display:flex;grid-column:2;grid-row:2;min-width:0}
 html body.v8 .v8-prow>.c-date{display:block;grid-column:3;grid-row:2;justify-self:end;text-align:right}
 html body.v8 .v8-prow>.c-acts{grid-column:1 / 4;grid-row:3;justify-content:flex-start;opacity:1}
 html body.v8 .v8-prow>:is(.c-client,.c-pc){display:none}
}
/* v10 (11.10.2026, владелец): главная в концепте «Сегодня» — шапка (заголовок, дата, сводка, действия), сетка «основная колонка + правая
   колонка 360 px». Слева: «Следующее действие» (одна карточка с постером 9:16 и действием), «Проекты» таблицей (обложка · название ·
   этап · серии полосой · передача), «Сегодня у команды» лентой. Справа: «Требует внимания» (свёрнутые группы), «Ближайшие сроки»
   (полоса недели + список). Размеры — токенами _v8_tokens.html.
   Раунд 2 (11.10.2026): плитки сводки — ссылки (стрелка проявляется по наведению), карусель «Следующее действие»
   (слайды в одной ячейке сетки, смена — прозрачность и сдвиг 200 мс, без движения при reduce), значки стадий вместо точек,
   «Ближайшие сроки» в рамке v8-inner, подсветка блока, к которому привела плитка. */
/* шапка */
html body.v8 .v8-h10 .h10-head{display:flex;align-items:flex-end;gap:var(--v8-g-20);flex-wrap:wrap;margin:0 0 20px}
html body.v8 .v8-h10 .h10-upd{font-size:var(--v8-fs-12);color:var(--v8-t4);margin-right:2px}
/* сводка ровными плитками: крупная цифра + подпись */
html body.v8 .v8-h10 .h10-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 32px}
html body.v8 .v8-h10 .h10-stats>a{position:relative;display:grid;align-content:start;gap:var(--v8-g-8);padding:16px 18px;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(26,30,35,.9),rgba(21,25,29,.95));color:var(--v8-t2);text-decoration:none;transition:border-color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-h10 .h10-stats>a:hover,html body.v8 .v8-h10 .h10-stats>a:focus-visible{border-color:rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(30,34,40,.92),rgba(23,27,32,.96))}
html body.v8 .v8-h10 .h10-stats b{font:600 var(--v8-fs-28)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-h10 .h10-stats span{font-size:var(--v8-fs-14);line-height:1.3;color:var(--v8-t2)}
html body.v8 .v8-h10 .h10-stats em{display:block;font-style:normal;color:var(--v8-late);white-space:nowrap}
html body.v8 .v8-h10 .h10-stats i{position:absolute;top:16px;right:16px;display:grid;color:var(--v8-t3);opacity:0;transform:translateX(-4px);transition:opacity var(--v8-fast) var(--v8-ease),transform var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-h10 .h10-stats>a:is(:hover,:focus-visible) i{opacity:1;transform:none}
/* блок, к которому привела плитка, коротко подсвечен (гаснет внутри своей рамки) */
html body.v8 .v8-h10 :is(.h10-attbox,.h10-dlbox,.h10-table,.v8-att).h10-ping{animation:h10-ping .9s var(--v8-ease)}
@keyframes h10-ping{0%,30%{box-shadow:inset 0 0 0 1px rgba(200,214,238,.22),inset 0 0 24px rgba(200,214,238,.06)}100%{box-shadow:inset 0 0 0 1px rgba(200,214,238,0),inset 0 0 24px rgba(200,214,238,0)}}
html body.v8 .v8-h10 .h10-title{min-width:0}
html body.v8 .v8-h10 .h10-title h1{margin:0;font:600 var(--v8-fs-32)/1.1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1)}
html body.v8 .v8-h10 .h10-title .v8-sub{display:flex;flex-wrap:wrap;gap:var(--v8-g-6) var(--v8-g-14);margin-top:8px;font-size:var(--v8-fs-14);color:var(--v8-t3)}
html body.v8 .v8-h10 .h10-head>.r{margin-left:auto;display:flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap}
/* сетка: основная колонка + правая */
html body.v8 .v8-h10 .h10-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-auto-flow:row dense;gap:var(--v8-g-36) var(--v8-g-28);align-items:start}
/* раунд 2, доп.: слева широкие списки (внимание, проекты, команда), справа компактные (следующее действие, сроки) */
html body.v8 .v8-h10 .h10-grid>:is(.h10-att,.h10-proj,.h10-team){grid-column:1}html body.v8 .v8-h10 .h10-grid>:is(.h10-next,.h10-dl){grid-column:2}
html body.v8 .v8-h10 .h10-grid>.h10-att{align-self:stretch;display:flex;flex-direction:column}
html body.v8 .v8-h10 .h10-att>.h10-attbox{flex:1}
html body.v8 .v8-h10 .h10-grid>.h10-next{align-self:start}
/* карусель: все слайды в одной ячейке, виден один */
html body.v8 .v8-h10 .h10-car{display:grid;touch-action:pan-y}
html body.v8 .v8-h10 .h10-car>.h10-hero{grid-template-columns:96px minmax(0,1fr);min-height:var(--v8-h-hero-m)}
html body.v8 .v8-h10 .h10-car .h10-body{padding:16px 18px;gap:var(--v8-g-6)}
html body.v8 .v8-h10 .h10-car .h10-name{font-size:20px}
html body.v8 .v8-h10 .h10-car .h10-meta{display:grid;gap:var(--v8-g-2);font-size:var(--v8-fs-13)}html body.v8 .v8-h10 .h10-car .h10-meta>*+*::before{content:none}
html body.v8 .v8-h10 .h10-car .h10-poster b{font-size:var(--v8-fs-16)}
html body.v8 .v8-h10 .h10-car>.h10-hero{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--v8-ease),transform .2s var(--v8-ease),visibility 0s linear .2s,border-color var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-h10 .h10-car>.h10-hero.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s var(--v8-ease),transform .2s var(--v8-ease),visibility 0s,border-color var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-h10 .h10-next .v8-sec .n{font-variant-numeric:tabular-nums}
html body.v8 .v8-h10 .h10-cnav{margin-left:auto;display:flex;gap:var(--v8-g-2)}
html body.v8 .v8-h10 .h10-cnav .v8-ibt:hover{background:var(--v8-w4);color:var(--v8-t1)}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-h10 .h10-car>.h10-hero{transition:none!important;transform:none!important}html body.v8 .v8-h10 :is(.h10-attbox,.h10-dlbox,.h10-table,.v8-att).h10-ping{animation:none}html body.v8 .v8-h10 .h10-stats i{transition:none}}
html body.v8 .v8-h10 .h10-attbox{margin:0}
html body.v8 .v8-h10 .v8-sec{margin:0 0 10px;min-height:var(--v8-h-btn);box-sizing:content-box;align-items:center}
/* следующее действие */
html body.v8 .v8-h10 .h10-hero{display:grid;grid-template-columns:150px minmax(0,1fr);min-height:var(--v8-h-hero);height:100%;overflow:hidden;color:var(--v8-t2);text-decoration:none;transition:border-color var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-h10 .h10-hero:hover{border-color:rgba(255,255,255,.09);box-shadow:var(--v8-sh-lift-h)}
html body.v8 .v8-h10 .h10-poster{position:relative;display:grid;place-items:center;background:linear-gradient(160deg,#1f2227,#15181c);border-right:1px solid var(--v8-w5)}
html body.v8 .v8-h10 .h10-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
html body.v8 .v8-h10 .h10-poster b{font:600 var(--v8-fs-22) var(--v8-mono);color:var(--v8-t4);letter-spacing:.02em}
html body.v8 .v8-h10 .h10-body{display:flex;flex-direction:column;gap:var(--v8-g-8);padding:24px 28px}
html body.v8 .v8-h10 .h10-st{display:inline-flex;align-items:center;gap:var(--v8-g-8);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-h10 .h10-st .ic{display:grid;color:var(--v8-t3)}
html body.v8 .v8-h10 .h10-st.t-accent .ic{color:var(--v8-org)}html body.v8 .v8-h10 .h10-st.t-urgent .ic{color:var(--v8-late)}
html body.v8 .v8-h10 .h10-name{font:600 var(--v8-fs-26)/1.15 var(--v8-sans);letter-spacing:-.015em;color:var(--v8-t1)}
html body.v8 .v8-h10 .h10-meta{display:flex;flex-wrap:wrap;gap:var(--v8-g-4) var(--v8-g-12);font-size:var(--v8-fs-14);color:var(--v8-t3)}
html body.v8 .v8-h10 .h10-meta>*+*::before{content:"·";margin-right:var(--v8-g-12);color:var(--v8-t4)}
html body.v8 .v8-h10 .h10-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--v8-g-12);margin-top:auto}
html body.v8 .v8-h10 .h10-foot progress{flex:1;max-width:240px;height:2px;appearance:none;border:0;background:var(--v8-w10)}
html body.v8 .v8-h10 .h10-foot progress::-webkit-progress-bar{background:var(--v8-w10)}html body.v8 .v8-h10 .h10-foot progress::-webkit-progress-value{background:var(--v8-org)}
html body.v8 .v8-h10 .h10-foot .v8-btn{pointer-events:none;font-size:var(--v8-fs-14)}
html body.v8 .v8-h10 .h10-hero:hover .h10-foot .v8-btn{background:var(--v8-w4);color:var(--v8-t1)}
/* проекты таблицей */
html body.v8 .v8-h10 .h10-prow{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr) 72px;align-items:center;gap:16px}
html body.v8 .v8-h10 .h10-prow.head{padding:0 10px 8px;border-bottom:1px solid var(--v8-w5);font-size:var(--v8-fs-12);color:var(--v8-t4)}
html body.v8 .v8-h10 .h10-table .v8-rows{padding:4px 0 0}
html body.v8 .v8-h10 .v8-row.h10-prow{min-height:var(--v8-h-row3);padding:8px 10px;color:var(--v8-t2)}
html body.v8 .v8-h10 .h10-pt{display:flex;align-items:center;gap:var(--v8-g-14);min-width:0}
html body.v8 .v8-h10 .h10-thumb{position:relative;flex:none;width:27px;height:48px;border-radius:var(--v8-r-4);overflow:hidden;display:grid;place-items:center;background:linear-gradient(160deg,#212429,#16191d);box-shadow:inset 0 0 0 1px var(--v8-w6)}
html body.v8 .v8-h10 .h10-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
html body.v8 .v8-h10 .h10-thumb b{font:500 var(--v8-fs-10) var(--v8-mono);color:var(--v8-t4);writing-mode:vertical-rl;transform:rotate(180deg)}
html body.v8 .v8-h10 .h10-pn{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8 .v8-h10 .h10-pn .c-title{font-size:var(--v8-fs-15);font-weight:500;color:var(--v8-t1);-webkit-mask-image:none;mask-image:none;text-overflow:ellipsis}
html body.v8 .v8-h10 :is(.h10-pn,.h10-fl) em{font-style:normal;font-size:var(--v8-fs-13);color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-h10 .h10-stage{display:inline-flex;align-items:center;gap:var(--v8-g-8);font-size:var(--v8-fs-13);color:var(--v8-t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-h10 .h10-stage .v8-st{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:var(--v8-r-8);background:var(--v8-w4)}
html body.v8 .v8-h10 .h10-stage .nm{min-width:0;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-h10 .h10-eps{display:flex;align-items:center;gap:var(--v8-g-10);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-h10 .h10-bar{position:relative;flex:none;width:56px;height:2px;border-radius:var(--v8-r-2);background:var(--v8-w10);overflow:hidden}
html body.v8 .v8-h10 .h10-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--v8-t1)}
html body.v8 .v8-h10 .h10-date{font-size:var(--v8-fs-13);color:var(--v8-t2)}
/* лента команды и список сроков */
html body.v8 .v8-h10 .h10-feed .v8-row{grid-template-columns:32px minmax(0,1fr) auto;min-height:var(--v8-h-row2)}
html body.v8 .v8-h10 .h10-feed .v8-av .employee-avatar{display:grid;place-items:center;width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--v8-w5);color:var(--v8-t2);font-size:var(--v8-fs-11);font-weight:500;overflow:hidden;position:relative}
html body.v8 .v8-h10 .h10-feed .v8-av .employee-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
html body.v8 .v8-h10 .h10-fl{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8 .v8-h10 .h10-fl .c-title{color:var(--v8-t1);font-size:var(--v8-fs-14)}
html body.v8 .v8-h10 .h10-dlist .v8-row{grid-template-columns:44px minmax(0,1fr) auto;min-height:var(--v8-h-row2)}
html body.v8 .v8-h10 .h10-dlist .c-m{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-h10 .h10-dlist .c-sa{color:var(--v8-t4)}
html body.v8 .v8-h10 .h10-dlist .v8-row:hover .c-sa{color:var(--v8-t1)}
html body.v8 .v8-h10 .h10-late{font-size:var(--v8-fs-12);white-space:nowrap;font-weight:500;color:var(--v8-late)}
html body.v8 .v8-h10 .v8-row.overdue .c-m{color:var(--v8-late)}
/* «Ближайшие сроки» — своя рамка, как у «Требует внимания» */
html body.v8 .v8-h10 .h10-dlbox{padding:8px 6px 6px}
html body.v8 .v8-h10 .h10-dlbox .h10-dlist{padding:0}
/* полоса недели */
html body.v8 .v8-h10 .h10-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--v8-g-4);margin:0 4px 6px;padding:0 0 8px;border-bottom:1px solid var(--v8-w5)}
html body.v8 .v8-h10 .h10-week>span{display:grid;justify-items:center;gap:var(--v8-g-4);padding:8px 0;border-radius:var(--v8-r-8);color:var(--v8-t3)}
html body.v8 .v8-h10 .h10-week small{font-size:var(--v8-fs-11);text-transform:uppercase;letter-spacing:.04em;color:var(--v8-t4)}
html body.v8 .v8-h10 .h10-week b{font:500 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t2);font-variant-numeric:tabular-nums}
html body.v8 .v8-h10 .h10-week i{width:4px;height:4px;border-radius:50%;background:transparent}
html body.v8 .v8-h10 .h10-week .has i{background:var(--v8-t2)}
html body.v8 .v8-h10 .h10-week .is-today{background:var(--v8-w5);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
html body.v8 .v8-h10 .h10-week .is-today :is(small,b){color:var(--v8-t1)}
/* «Требует внимания» справа: свёрнутые группы */
html body.v8 .v8-home .att details{margin:0}
html body.v8 .v8-home .att summary{list-style:none;grid-template-columns:18px minmax(0,1fr) auto;cursor:pointer}
html body.v8 .v8-home .att summary::-webkit-details-marker{display:none}
html body.v8 .v8-home .att summary::marker{content:""}
html body.v8 .v8-home .att .v8-row.item{grid-template-columns:18px minmax(120px,1.1fr) minmax(0,1.3fr) minmax(0,1fr) 16px;gap:var(--v8-g-14);padding-left:10px;color:var(--v8-t3)}
html body.v8 .v8-home .att .v8-row.item .pj{display:flex;align-items:baseline;gap:var(--v8-g-8);min-width:0;white-space:nowrap}
html body.v8 .v8-home .att .v8-row.item .pj b{flex:none;font-weight:500;font-size:var(--v8-fs-13);color:var(--v8-t1)}
html body.v8 .v8-home .att .v8-row.item .pt{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--v8-t2)}
html body.v8 .v8-home .att .v8-row.item .ep{min-width:0;color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-home .att .v8-row.item .dt{display:flex;align-items:center;min-width:0;color:var(--v8-t3);font-size:var(--v8-fs-13);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-home .att .v8-row.item .lb{color:var(--v8-t2)}
html body.v8 .v8-home .att .lb{color:var(--v8-t2);white-space:nowrap;overflow:hidden;min-width:0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);display:flex;align-items:center;gap:var(--v8-g-6)}
html body.v8 .v8-home .att .lb em{font-style:normal;color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html body.v8 .v8-home .att details:not(.has-items) summary .lb{color:var(--v8-t3)}
html body.v8 .v8-home .att .cnt{min-width:20px;height:20px;padding:0 6px;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono);display:inline-grid;place-items:center}
html body.v8 .v8-home .att details:not(.has-items) .cnt{background:transparent;color:var(--v8-t4)}
html body.v8 .v8-home .att details[open]>summary .lb{color:var(--v8-t1)}
html body.v8 .v8-home .att .c-sa{color:var(--v8-t4)}
html body.v8 .v8-home .att .v8-row.item:hover .c-sa{color:var(--v8-t2)}
html body.v8 .v8-home .att progress{display:block;width:120px;height:2px;margin-left:8px;flex:none;appearance:none;border:0;background:var(--v8-w10)}
html body.v8 .v8-home .att progress::-webkit-progress-bar{background:var(--v8-w10)}html body.v8 .v8-home .att progress::-webkit-progress-value{background:var(--v8-org)}html body.v8 .v8-home .att progress::-moz-progress-bar{background:var(--v8-org)}
html body.v8 .v8-home .att .v8-empty{padding:4px 10px 10px 38px}
html body.v8 .v8-h10 .h10-att{margin:0}
html body.v8 .v8-home .v8-rows .v8-empty{padding:8px 10px 10px}
/* фильтр проектов и поиск */
html body.v8 .v8-hfilter{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;margin:0}
html body.v8 .v8-pop.search{display:flex;gap:var(--v8-g-6);padding:8px;min-width:260px}
html body.v8 .v8-pop.search label{flex:1;min-width:0}
html body.v8 .v8-sec .r .v8-ddw>summary.v8-btn{display:inline-flex}
html body.v8 .v8-home .v8-sec .ui-info{margin:0}
html body.v8 .v8-home .v8-sec .ui-info>summary{width:var(--v8-h-btn);min-height:var(--v8-h-btn);border-radius:var(--v8-r-6);color:var(--v8-t3);background:none}
html body.v8 .v8-home .v8-sec .ui-info>summary:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-home .v8-sec .ui-info-body{background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);color:var(--v8-t2);font-family:var(--v8-sans);font-size:var(--v8-fs-13)}
/* узкие экраны */
html body.v8 .v8-h10 :is(.h10-grid,.h10-main,.h10-rail)>*{min-width:0}
/* фильтр проектов не помещается рядом с заголовком — уходит строкой ниже целиком, сегменты листаются вбок (заголовок
   «Проекты» остаётся на линии «Ближайших сроков») */
@media(max-width:1600px){html body.v8 .v8-h10 .h10-proj .v8-sec{flex-wrap:wrap;row-gap:var(--v8-g-8)}html body.v8 .v8-h10 .h10-proj .v8-sec>h2{min-height:var(--v8-h-btn);display:flex;align-items:center}html body.v8 .v8-h10 .h10-proj .v8-sec>.r{flex:1 0 100%;min-width:0;margin:0;flex-wrap:nowrap}
 html body.v8 .v8-h10 .h10-proj .v8-hfilter{flex-wrap:nowrap;min-width:0;flex:1}html body.v8 .v8-h10 .h10-proj .v8-seg{overflow-x:auto;scrollbar-width:none;min-width:0;flex:0 1 auto}}
@media(min-width:1181px) and (max-width:1480px){html body.v8 .v8-h10 .h10-proj .v8-seg{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}}
@media(max-width:1180px){html body.v8 .v8-h10 .h10-grid{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-h10 .h10-grid>*{grid-column:1!important}html body.v8 .v8-h10 .h10-next{order:1}html body.v8 .v8-h10 .h10-att{order:2}html body.v8 .v8-h10 .h10-dl{order:3}html body.v8 .v8-h10 .h10-proj{order:4}html body.v8 .v8-h10 .h10-team{order:5}}
@media(max-width:760px){
 html body.v8 .v8-h10 .h10-head>.r{margin-left:0}
 html body.v8 .v8-h10 .h10-title .v8-sub>*+*::before{content:none}
 html body.v8 .v8-h10 .h10-proj .v8-sec{flex-wrap:wrap}html body.v8 .v8-h10 .h10-proj .v8-sec>.r{flex:1 0 100%;min-width:0;margin:8px 0 0}
 html body.v8 .v8-h10 .h10-proj .v8-hfilter{flex-wrap:nowrap;min-width:0;max-width:100%}html body.v8 .v8-h10 .h10-proj .v8-seg{overflow-x:auto;scrollbar-width:none;min-width:0;flex:1}
 html body.v8 .v8-h10 .h10-meta{display:grid;gap:var(--v8-g-2)}html body.v8 .v8-h10 .h10-meta>*+*::before{content:none}
 html body.v8 .v8-h10 .h10-hero{grid-template-columns:96px minmax(0,1fr);min-height:var(--v8-h-hero-m)}
 html body.v8 .v8-h10 .h10-car{min-height:var(--v8-h-hero-m)}
 html body.v8 .v8-h10 .h10-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-8)}
 html body.v8 .v8-h10 .h10-stats>a{padding:12px 14px}
 html body.v8 .v8-h10 .h10-stats i{display:none}
 html body.v8 .v8-h10 .h10-stats>a:last-child:nth-child(odd){grid-column:1/-1}
 html body.v8 .v8-h10 .h10-body{padding:16px}
 html body.v8 .v8-h10 .h10-name{font-size:var(--v8-fs-18)}
 html body.v8 .v8-h10 .h10-prow{grid-template-columns:minmax(0,1fr) auto auto;gap:var(--v8-g-12)}
 html body.v8 .v8-home .att .v8-row.item{grid-template-columns:18px minmax(0,1fr) 16px;grid-template-areas:"i p a" ". e a" ". d a";row-gap:var(--v8-g-2);padding-top:8px;padding-bottom:8px}
 html body.v8 .v8-home .att .v8-row.item>.c-ic{grid-area:i}html body.v8 .v8-home .att .v8-row.item>.pj{grid-area:p}html body.v8 .v8-home .att .v8-row.item>.ep{grid-area:e}html body.v8 .v8-home .att .v8-row.item>.dt{grid-area:d;white-space:normal}html body.v8 .v8-home .att .v8-row.item>.c-sa{grid-area:a}
 html body.v8 .v8-h10 .h10-prow.head{display:none}
 html body.v8 .v8-h10 .h10-prow .h10-eps{display:none}
 html body.v8 .v8-h10 .h10-prow .h10-stage .nm{display:none}
}
/* v8, волна C (11.10.2026): общий слой разделов «Деньги», «Глобал», «Люди», «Настройки» по DESIGN_SPEC_v9.md.
   Шапка раздела (h1 30 + строка контекста 14 + чип роли), вкладки, плитки 28/13, карточки, строки «подпись — контроль»,
   тумблеры тонкой линией, плотные таблицы, hover-панель карточки поверх затемнения (п. 3.14) и перевод старых партиалов
   (finance-*, payroll-*, people-*, panel, fields, check, notice, dialog) на грамматику v8 без правки их разметки.
   Всё под body.v8 .v8-page.v8-wc; размеры — только токенами _v8_tokens.html. Собирается в v8.css (assets.py, блок wave C). */
/* ---- шапка раздела: h1 · контекст · чип роли · действия справа ---- */
html body.v8 .v8-wc{max-width:var(--v8-page-max)}
html body.v8 .v8-wc .v8-head{display:flex;align-items:flex-start;gap:var(--v8-g-28);margin-bottom:16px;min-width:0}
html body.v8 .v8-wc .v8-head>div:first-child{min-width:0}
html body.v8 .v8-wc .v8-head h1{overflow-wrap:anywhere}
html body.v8 .v8-wc .v8-ctx{margin-top:4px;font-size:var(--v8-fs-14);color:var(--v8-t3);line-height:1.4;display:flex;gap:var(--v8-g-6);flex-wrap:wrap;align-items:center}
html body.v8 .v8-wc .v8-head .r{margin-left:auto;display:flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:none;max-width:100%}
html body.v8 .v8-wc .v8-role{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--v8-r-4);font-size:var(--v8-fs-11);font-weight:500;color:var(--v8-t2);box-shadow:inset 0 0 0 1px var(--v8-w10);white-space:nowrap;text-transform:lowercase}
html body.v8 .v8-wc .v8-role.lock svg{width:11px;height:11px;color:var(--v8-t3)}
html body.v8 .v8-wc .v8-back{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);color:var(--v8-t3);font-size:var(--v8-fs-13);margin-bottom:8px}
html body.v8 .v8-wc .v8-back:hover{color:var(--v8-t2)}
html body.v8 .v8-wc .v8-back svg{transform:rotate(180deg)}
/* вкладки раздела: одна строка 36 px, на телефоне прокручиваются */
html body.v8 .v8-wc .v8-wc-tabs{margin:8px 0 20px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
html body.v8 .v8-wc .v8-wc-tabs::-webkit-scrollbar{display:none}
html body.v8 .v8-wc .v8-wc-tabs a{flex:none}
html body.v8 .v8-wc .v8-wc-tabs a[aria-current]::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent)}
html body.v8 .v8-wc .v8-wc-tabs.red a[aria-current]::after{background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
/* герой: число 40 + подпись 15/16 + ≤4 факта 13 + ≤1 действие */
html body.v8 .v8-wc .v8-hero9{margin-bottom:20px}
html body.v8 .v8-wc .v8-hero9 .big .lbl{font-size:var(--v8-fs-15);color:var(--v8-t2)}
html body.v8 .v8-wc .v8-hero9 .big b.warn{color:rgba(201,132,104,.95)}
html body.v8 .v8-wc .v8-hero9 .sub9 .warn{color:rgba(201,132,104,.95)}
/* ---- плитки статистики: число 28/600, подпись 13 обычным регистром в 4–6 px ---- */
html body.v8 .v8-wc .v8-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;margin:0 0 8px}
html body.v8 .v8-wc .v8-tile{display:grid;gap:var(--v8-g-6);padding:16px 20px 14px;align-content:start;min-width:0}
html body.v8 .v8-wc .v8-tile+.v8-tile{border-left:1px solid var(--v8-w4)}
html body.v8 .v8-wc .v8-tile b{font:600 var(--v8-fs-28)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
html body.v8 .v8-wc .v8-tile b small{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3);margin-left:4px}
html body.v8 .v8-wc .v8-tile span{font-size:var(--v8-fs-13);line-height:1.3;color:var(--v8-t3)}
html body.v8 .v8-wc .v8-tile .m{font-size:var(--v8-fs-12);color:var(--v8-t3);opacity:.85}
html body.v8 .v8-wc .v8-tile .warn{color:rgba(201,132,104,.95)}
@media(max-width:760px){html body.v8 .v8-wc .v8-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-wc .v8-tile+.v8-tile{border-left:0}html body.v8 .v8-wc .v8-tile{padding:12px 14px}}
/* ---- карточки: сетка 300 / 20, поднятая граница, шапка 36 + имя 15/600 + роль 13, одно число 32, строки «подпись — значение» ---- */
html body.v8 .v8-wc .v8-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--v8-g-20)}
html body.v8 .v8-wc .v8-cards>*{min-width:0}
html body.v8 .v8-wc .v8-card{position:relative;padding:18px 20px 16px;border-radius:var(--v8-r-14);min-width:0;background:radial-gradient(min(360px,85%) min(200px,85%) at 0 0,rgba(200,214,238,0.0500) 0%,rgba(200,214,238,0.0470) 11.7%,rgba(200,214,238,0.0392) 23.4%,rgba(200,214,238,0.0287) 35.1%,rgba(200,214,238,0.0176) 46.8%,rgba(200,214,238,0.0078) 58.5%,rgba(200,214,238,0.0014) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));border:1px solid var(--v8-w6);box-shadow:var(--v8-sh-lift);transition:border-color var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease);color:var(--v8-t3)}
html body.v8 .v8-wc .v8-card::before{content:"";position:absolute;left:16px;right:16px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w14) 25%,var(--v8-w14) 75%,transparent);pointer-events:none}
html body.v8 .v8-wc .v8-card:hover{border-color:var(--v8-w8);transform:translateY(-1px)}
html body.v8 .v8-wc .v8-card.on{border-color:var(--v8-w14)}
html body.v8 .v8-wc .v8-card .hd{display:flex;align-items:center;gap:var(--v8-g-10);margin-bottom:16px;min-width:0}
html body.v8 .v8-wc .v8-card .hd .v8-av,html body.v8 .v8-wc .v8-card .hd .employee-avatar{width:36px;height:36px;font-size:var(--v8-fs-12);flex:none}
html body.v8 .v8-wc .v8-card .hd>div{min-width:0}
html body.v8 .v8-wc .v8-card .hd .nm{font:600 var(--v8-fs-15)/1.2 var(--v8-sans);color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-wc .v8-card .hd .rl{font-size:var(--v8-fs-13);color:var(--v8-t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-wc .v8-card .hd .sa{margin-left:auto;flex:none}
html body.v8 .v8-wc .v8-card .one{display:grid;gap:4px;margin-bottom:16px}
html body.v8 .v8-wc .v8-card .one b{font:600 var(--v8-fs-32)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-wc .v8-card .one b.warn{color:rgba(201,132,104,.95)}
html body.v8 .v8-wc .v8-card .one span{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .v8-kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;font-size:var(--v8-fs-13);color:var(--v8-t3);align-items:baseline}
html body.v8 .v8-wc .v8-kv>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-wc .v8-kv b{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
html body.v8 .v8-wc .v8-kv b.warn{color:rgba(201,132,104,.95)}
html body.v8 .v8-wc .v8-kv b.pos{color:rgba(95,168,107,.9)}
html body.v8 .v8-wc .v8-card .ft{margin-top:14px;display:flex;gap:var(--v8-g-6);flex-wrap:wrap}
/* ---- hover-панель карточки (п. 3.14): вуаль 72 % + размытие 6 px поверх тела, шапка карточки остаётся видимой ---- */
html body.v8 .v8-wc .v8-hcard{position:relative;overflow:hidden}
html body.v8 .v8-wc .v8-hcard .veil{position:absolute;inset:0;z-index:3;border-radius:inherit;background:rgba(16,19,22,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity var(--v8-mid) var(--v8-ease);pointer-events:none}
html body.v8 .v8-wc .v8-hcard .sp{position:absolute;right:8px;top:10px;z-index:4;display:flex;flex-direction:column;gap:var(--v8-g-3);align-items:flex-end;pointer-events:none}
html body.v8 .v8-wc .v8-hcard .sp .vc{height:26px;min-width:96px;padding:0 10px;display:inline-flex;align-items:center;gap:var(--v8-g-6);border:0;border-radius:var(--v8-r-5);background:rgba(38,42,48,.96);color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans);cursor:pointer;opacity:0;transform:translateX(12px);transition:opacity var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease);transition-delay:calc(var(--k,0)*35ms);pointer-events:auto;white-space:nowrap}
html body.v8 .v8-wc .v8-hcard .sp .vc svg{width:12px;height:12px;color:var(--v8-t3)}
html body.v8 .v8-wc .v8-hcard:is(:hover,:focus-within,.open) .veil{opacity:1}
html body.v8 .v8-wc .v8-hcard:is(:hover,:focus-within,.open) .sp .vc{opacity:1;transform:none}
html body.v8 .v8-wc .v8-hcard .sp .vc:hover{color:var(--v8-t1);background:var(--v8-chip)}
html body.v8 .v8-wc .v8-hcard .sp .vc.danger{color:rgba(255,110,90,.85)}
html body.v8 .v8-wc .v8-hcard .hd{position:relative;z-index:5}
html body.v8 .v8-wc .v8-hcard .more{position:absolute;right:8px;top:10px;z-index:6;display:none}
@media(hover:none){html body.v8 .v8-wc .v8-hcard .veil{display:none}html body.v8 .v8-wc .v8-hcard .sp{display:none;position:static;flex-direction:row;flex-wrap:wrap;align-items:flex-start;padding:10px 0 0}html body.v8 .v8-wc .v8-hcard.open .sp{display:flex}html body.v8 .v8-wc .v8-hcard .sp .vc{opacity:1;transform:none}html body.v8 .v8-wc .v8-hcard .more{display:inline-grid}html body.v8 .v8-wc .v8-hcard .hd .sa{margin-right:36px}}
/* ---- строка «подпись слева — контроль справа» (редактор, настройки): 13 px, разделитель тает ---- */
html body.v8 .v8-wc .v8-frows{display:grid}
html body.v8 .v8-wc .v8-frow{position:relative;display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,1fr);gap:var(--v8-g-10) var(--v8-g-20);align-items:center;min-height:var(--v8-h-row);padding:6px 10px}
html body.v8 .v8-wc .v8-frows .v8-frow+.v8-frow::before{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-wc .v8-frow>.lb,html body.v8 .v8-wc .v8-frow>label:first-child{font-size:var(--v8-fs-13);color:var(--v8-t3);min-width:0;overflow-wrap:anywhere}
html body.v8 .v8-wc .v8-frow>.ct{min-width:0;display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;justify-content:flex-start}
html body.v8 .v8-wc .v8-frow>.ct.r{justify-content:flex-end}
html body.v8 .v8-wc .v8-frow .v8-inp:not(#v8){max-width:420px}
html body.v8 .v8-wc .v8-frow .v8-val{font-size:var(--v8-fs-13);color:var(--v8-t2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(max-width:600px){html body.v8 .v8-wc .v8-frow{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-5)}html body.v8 .v8-wc .v8-frow>.ct.r{justify-content:flex-start}}
/* ---- тумблер тонкой линией (п. 3.11): чекбокс 30×16, оранжевая линия под включённым, заблокированный полупрозрачный ---- */
html body.v8 .v8-wc input[type=checkbox].v8-sw,html body.v8 .v8-wc label.check>input[type=checkbox],html body.v8 .v8-wc .rights-matrix input[type=checkbox],html body.v8 .v8-wc .earnings-setting input[type=checkbox],html body.v8 .v8-wc .checks input[type=checkbox],html body.v8 .v8-wc .playlist-access input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;width:30px;height:16px;min-width:30px;margin:0;border:0;border-radius:var(--v8-r-pill,99px);background:var(--v8-field);box-shadow:var(--v8-deboss);cursor:pointer;flex:none;accent-color:auto;outline-offset:3px;transition:background var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc input[type=checkbox].v8-sw::before,html body.v8 .v8-wc label.check>input[type=checkbox]::before,html body.v8 .v8-wc .rights-matrix input[type=checkbox]::before,html body.v8 .v8-wc .earnings-setting input[type=checkbox]::before,html body.v8 .v8-wc .checks input[type=checkbox]::before,html body.v8 .v8-wc .playlist-access input[type=checkbox]::before{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--v8-t3);transition:transform var(--v8-mid) var(--v8-ease),background var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc input[type=checkbox].v8-sw:checked::before,html body.v8 .v8-wc label.check>input[type=checkbox]:checked::before,html body.v8 .v8-wc .rights-matrix input[type=checkbox]:checked::before,html body.v8 .v8-wc .earnings-setting input[type=checkbox]:checked::before,html body.v8 .v8-wc .checks input[type=checkbox]:checked::before,html body.v8 .v8-wc .playlist-access input[type=checkbox]:checked::before{transform:translateX(14px);background:var(--v8-t1)}
html body.v8 .v8-wc input[type=checkbox].v8-sw:checked::after,html body.v8 .v8-wc label.check>input[type=checkbox]:checked::after,html body.v8 .v8-wc .rights-matrix input[type=checkbox]:checked::after,html body.v8 .v8-wc .earnings-setting input[type=checkbox]:checked::after,html body.v8 .v8-wc .checks input[type=checkbox]:checked::after,html body.v8 .v8-wc .playlist-access input[type=checkbox]:checked::after{content:"";position:absolute;left:22%;right:22%;bottom:-3px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.9),transparent)}
html body.v8 .v8-wc input[type=checkbox]:disabled{opacity:.4;pointer-events:none}
html body.v8 .v8-wc label.check{display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);padding:0;margin:0;font-size:var(--v8-fs-13);color:var(--v8-t2);cursor:pointer;overflow-wrap:anywhere}
html body.v8 .v8-wc label.check:has(input:disabled){opacity:.6}
html body.v8 .v8-wc .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 var(--v8-g-20)}
/* ---- перевод старых элементов: кнопки — тонкая линия, поля — вдавленные, панели — поднятые ---- */
html body.v8 .v8-wc :is(button,.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.vc):not(.finance-x):not(.tg-bubble):not(.tg-chat):not(.tg-topic):not(.nav-signout):not(.v8-seg>*):not(.it):not([data-own-pick]):not(.finance-switch>*):not(.v8-swb){position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:auto;padding:4px 10px;margin:0;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-13)/1.2 var(--v8-sans);white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:var(--v8-sh-btn);transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc :is(button,.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.vc):not(.finance-x):not(.tg-bubble):not(.tg-chat):not(.tg-topic):not(.nav-signout):not(.v8-swb):hover{background:rgba(255,255,255,.07);transform:none}
html body.v8 .v8-wc :is(button,.button):not(.v8-btn):active{transform:scale(.97)}
html body.v8 .v8-wc :is(button,.button).secondary:not(.v8-btn),html body.v8 .v8-wc :is(button,.button).ghost:not(.v8-btn),html body.v8 .v8-wc button.text-link,html body.v8 .v8-wc .payroll-link{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-wc :is(button,.button).secondary:not(.v8-btn):hover,html body.v8 .v8-wc :is(button,.button).ghost:not(.v8-btn):hover,html body.v8 .v8-wc button.text-link:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-wc button:disabled,html body.v8 .v8-wc .button[aria-disabled=true]{opacity:.45;cursor:default;transform:none}
html body.v8 .v8-wc :is(button,.button) svg.aid-icon{width:14px;height:14px;color:var(--v8-t3)}
@media(pointer:coarse){html body.v8 .v8-wc :is(button,.button):not(.v8-btn):not(.vc):not(.finance-x):not(.v8-swb){min-height:var(--v8-h-touch)}}
html body.v8 .v8-wc :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select,textarea):not(.v8-inp){min-height:var(--v8-h-inp);height:var(--v8-h-inp);width:100%;max-width:100%;padding:0 10px;margin:0;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);outline:0;transition:box-shadow var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc :is(input,select,textarea):not(.v8-inp)::placeholder{color:var(--v8-t3)}
html body.v8 .v8-wc :is(input,select,textarea):not(.v8-inp):is(:focus,:focus-visible){box-shadow:var(--v8-deboss-f);outline:0}
html body.v8 .v8-wc input[readonly]:not(.v8-inp){color:var(--v8-t3)}
html body.v8 .v8-wc select:not(.v8-inp){appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a8f98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;cursor:pointer}
html body.v8 .v8-wc select:not(.v8-inp) option{background:var(--v8-pop);color:var(--v8-t2)}
html body.v8 .v8-wc textarea:not(.v8-inp){height:auto;min-height:calc(var(--v8-h-row) * 2);padding:8px 10px;line-height:1.45;resize:vertical}
html body.v8 .v8-wc input[type=file]{color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-wc label:not(.check):not(.v8-seg *){display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-wc .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--v8-g-14) var(--v8-g-20);margin:12px 0}
html body.v8 .v8-wc fieldset{border:0;padding:0;margin:20px 0}
html body.v8 .v8-wc legend{font-size:var(--v8-fs-13);font-weight:500;color:var(--v8-t2);margin-bottom:8px;padding:0}
html body.v8 .v8-wc .actions{display:flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap;margin-top:16px}
html body.v8 .v8-wc .actions form{margin:0}
/* панели: одна обработка — поднятая; без вложенных рамок */
html body.v8 .v8-wc :is(.panel,.finance-card,.payroll-project-picker,.waitlist-entry,.groups-row,.intern-report,.groups-text,.tg-browser){position:relative;background:radial-gradient(min(520px,85%) min(280px,85%) at 0 0,rgba(200,214,238,0.0500) 0%,rgba(200,214,238,0.0470) 11.7%,rgba(200,214,238,0.0392) 23.4%,rgba(200,214,238,0.0287) 35.1%,rgba(200,214,238,0.0176) 46.8%,rgba(200,214,238,0.0078) 58.5%,rgba(200,214,238,0.0014) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);box-shadow:var(--v8-sh-lift);padding:16px 20px;color:var(--v8-t3)}
html body.v8 .v8-wc :is(.panel,.finance-card) .panel,html body.v8 .v8-wc :is(.panel,.finance-card) .finance-card{background:none;border:0;box-shadow:none;padding:0;border-radius:0}
html body.v8 .v8-wc :is(.panel,.finance-card)>h2,html body.v8 .v8-wc .finance-card-head h2,html body.v8 .v8-wc .payroll-section-heading h2{font:600 var(--v8-fs-15)/1.3 var(--v8-sans);color:var(--v8-t1);letter-spacing:-.01em}
html body.v8 .v8-wc .finance-card-head{display:flex;align-items:flex-start;gap:var(--v8-g-10);margin-bottom:12px;min-width:0}
html body.v8 .v8-wc .finance-card-head>div{min-width:0}
html body.v8 .v8-wc .finance-card-head .finance-count,html body.v8 .v8-wc .finance-count{margin-left:auto;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);font-variant-numeric:tabular-nums;flex:none}
html body.v8 .v8-wc .finance-eyebrow,html body.v8 .v8-wc .eyebrow{display:block;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4);margin:0 0 2px}
html body.v8 .v8-wc .muted,html body.v8 .v8-wc .finance-note,html body.v8 .v8-wc .payroll-help,html body.v8 .v8-wc .vpn-meta,html body.v8 .v8-wc .person-muted{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-warn,html body.v8 .v8-wc .payroll-short,html body.v8 .v8-wc .is-due{color:rgba(201,132,104,.95)}
html body.v8 .v8-wc .finance-ok,html body.v8 .v8-wc .is-paid,html body.v8 .v8-wc .is-ok{color:rgba(95,168,107,.9)}
html body.v8 .v8-wc .notice{padding:10px 12px;border-radius:var(--v8-r-8);background:var(--v8-w3);border:1px solid var(--v8-w6);color:var(--v8-t2);font-size:var(--v8-fs-13);margin:12px 0}
html body.v8 .v8-wc .notice.error{background:rgba(255,80,60,.06);border-color:rgba(255,110,90,.25);color:rgba(255,150,135,.95)}
html body.v8 .v8-wc .notice[hidden]{display:none}
html body.v8 .v8-wc .finance-problem{padding:10px 12px;border-radius:var(--v8-r-8);background:rgba(255,80,60,.06);border:1px solid rgba(255,110,90,.25);color:rgba(255,150,135,.95);font-size:var(--v8-fs-13);display:grid;gap:4px;margin:10px 0}
html body.v8 .v8-wc .finance-tag,html body.v8 .v8-wc .groups-chip,html body.v8 .v8-wc .vpn-chip,html body.v8 .v8-wc .employee-status,html body.v8 .v8-wc .payroll-state{display:inline-flex;align-items:center;gap:var(--v8-g-5);height:20px;padding:0 6px;border-radius:var(--v8-r-4);background:transparent;box-shadow:inset 0 0 0 1px var(--v8-w8);color:var(--v8-t3);font:500 var(--v8-fs-11)/1 var(--v8-sans);white-space:nowrap}
html body.v8 .v8-wc .finance-tag.is-ok,html body.v8 .v8-wc .groups-chip.is-ok,html body.v8 .v8-wc .payroll-state.paid{color:rgba(95,168,107,.9)}
html body.v8 .v8-wc .payroll-state.reserved,html body.v8 .v8-wc .payroll-state.due,html body.v8 .v8-wc .groups-chip.is-warn{color:rgba(201,162,39,.85)}
html body.v8 .v8-wc .payroll-state.cancelled{color:var(--v8-t4);text-decoration:line-through}
html body.v8 .v8-wc a.text-link,html body.v8 .v8-wc .person-destination,html body.v8 .v8-wc .payroll-back,html body.v8 .v8-wc .people-back,html body.v8 .v8-wc .vpn-back,html body.v8 .v8-wc .access-back,html body.v8 .v8-wc .breadcrumb a{color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-wc a.text-link:hover,html body.v8 .v8-wc .breadcrumb a:hover{color:var(--v8-t2)}
html body.v8 .v8-wc .breadcrumb{display:none}
/* сворачиваемые блоки: заголовок 13 px, без треугольника, шеврон справа */
html body.v8 .v8-wc details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);color:var(--v8-t2);font-size:var(--v8-fs-13);font-weight:500}
html body.v8 .v8-wc details>summary::-webkit-details-marker{display:none}
html body.v8 .v8-wc details:not(.v8-ddw):not(.finance-pop):not(.finance-actions-menu)>summary::after{content:"";width:8px;height:8px;margin-left:auto;border-right:1.4px solid var(--v8-t3);border-bottom:1.4px solid var(--v8-t3);transform:rotate(45deg);flex:none;transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc details[open]>summary::after{transform:rotate(-135deg)}
html body.v8 .v8-wc details>summary>svg[data-icon=chevron-down]{display:none}
html body.v8 .v8-wc details>summary :is(h2,h3){font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2);display:inline-flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap}
html body.v8 .v8-wc details.v8-fold{padding:0 10px;border-radius:var(--v8-r-8)}
html body.v8 .v8-wc details.v8-fold[open]{background:var(--v8-w2)}
/* ---- плотная таблица: строки 36, зебра 2 %, заголовки столбцов 12/500 t4, числа вправо ---- */
html body.v8 .v8-wc table{width:100%;border-collapse:collapse;font-size:var(--v8-fs-13);color:var(--v8-t2);font-variant-numeric:tabular-nums}
html body.v8 .v8-wc table :is(th,td){height:var(--v8-h-row);padding:0 10px;text-align:left;vertical-align:middle;border:0;font-weight:400}
html body.v8 .v8-wc table thead th{height:28px;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4);white-space:nowrap}
html body.v8 .v8-wc table tbody tr:nth-child(even)>:is(td,th){background:var(--v8-w2)}
html body.v8 .v8-wc table tbody tr:hover>:is(td,th){background:var(--v8-w3)}
html body.v8 .v8-wc table tbody th[scope=row]{color:var(--v8-t2);font-weight:400}
html body.v8 .v8-wc table :is(td,th).num,html body.v8 .v8-wc table :is(td,th).payroll-num,html body.v8 .v8-wc table :is(td,th).c-amt{text-align:right;font-family:var(--v8-mono);white-space:nowrap}
html body.v8 .v8-wc table td small{display:block;font-size:var(--v8-fs-12);color:var(--v8-t3);font-family:var(--v8-sans);white-space:normal}
html body.v8 .v8-wc table td b{font-weight:500;color:var(--v8-t1)}
html body.v8 .v8-wc table td a{color:var(--v8-t2)}
html body.v8 .v8-wc table td a:hover{color:var(--v8-t1)}
html body.v8 .v8-wc table td :is(form,.fields){margin:0}
html body.v8 .v8-wc .finance-table-scroll,html body.v8 .v8-wc .payroll-table-wrap,html body.v8 .v8-wc .uj-wrap,html body.v8 .v8-wc .payroll-salary-scroll{overflow-x:auto}
/* плотные строки v8 внутри раздела */
html body.v8 .v8-wc .v8-rows.dense .v8-row{border-radius:0;height:auto;min-height:var(--v8-h-row)}
html body.v8 .v8-wc .v8-rows.dense .v8-row:nth-child(even):not(.head){background:var(--v8-w2)}
html body.v8 .v8-wc .v8-rows.dense .v8-row+.v8-row::before{display:none}
html body.v8 .v8-wc .v8-row.head{min-height:var(--v8-h-btn);font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4);pointer-events:none}
html body.v8 .v8-wc .v8-row.head:hover{background:none}
/* ---- окна: панель 14, свет снизу; тосты и прочее — из _v8_base ---- */
html body.v8 .v8-wc dialog:not(.v8-dlg),html body.v8 dialog.finance-dialog,html body.v8 dialog.person-dialog,html body.v8 dialog.tg-dialog{width:420px;max-width:calc(100vw - 32px);padding:16px;margin:auto;border:1px solid var(--v8-w8);border-radius:var(--v8-r-14);background:var(--v8-panel);color:var(--v8-t2);box-shadow:var(--v8-sh-dlg);font-family:var(--v8-sans);font-size:var(--v8-fs-13)}
html body.v8 dialog.finance-dialog.is-wide{width:720px}
html body.v8 :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog)::backdrop{background:rgba(14,17,20,.62)}
html body.v8 :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog)[open]{animation:v8-dlg-in 220ms var(--v8-ease)}
html body.v8 dialog.finance-dialog h2,html body.v8 dialog.person-dialog h2,html body.v8 dialog.tg-dialog h2{font:600 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 dialog.finance-dialog .finance-dialog-head{display:flex;align-items:flex-start;gap:var(--v8-g-10);margin-bottom:12px}
html body.v8 dialog.finance-dialog .finance-dialog-head>div{min-width:0;flex:1}
html body.v8 dialog.finance-dialog .finance-dialog-head p{display:none}
html body.v8 dialog.finance-dialog .finance-eyebrow:empty{display:none}
html body.v8 dialog.finance-dialog .finance-close{width:var(--v8-h-btn);min-height:var(--v8-h-btn);padding:0;background:transparent;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-16);border:0;border-radius:var(--v8-r-6);cursor:pointer}
html body.v8 dialog.finance-dialog .finance-close:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 dialog.finance-dialog .finance-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-10) var(--v8-g-14);margin:0 0 16px}
html body.v8 dialog.finance-dialog .finance-fields>.is-wide{grid-column:1/-1}
html body.v8 dialog.finance-dialog label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 dialog.finance-dialog :is(input:not([type=checkbox]):not([type=radio]),select){min-height:var(--v8-h-inp);height:var(--v8-h-inp);width:100%;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);outline:0}
html body.v8 dialog.finance-dialog :is(input,select):is(:focus,:focus-visible){box-shadow:var(--v8-deboss-f)}
html body.v8 dialog.finance-dialog select{appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a8f98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
html body.v8 dialog.finance-dialog .finance-amount-field{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:var(--v8-g-6)}
html body.v8 dialog.finance-dialog .finance-dialog-foot,html body.v8 dialog.person-dialog .actions{display:flex;justify-content:flex-end;gap:var(--v8-g-6);margin-top:12px}
html body.v8 :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog) :is(button,.button){display:inline-flex;align-items:center;justify-content:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:auto;padding:4px 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-13)/1.2 var(--v8-sans);cursor:pointer;box-shadow:var(--v8-sh-btn);white-space:nowrap}
html body.v8 :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog) :is(button,.button).secondary{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog) :is(button,.button):hover{background:rgba(255,255,255,.07)}
html body.v8 dialog.finance-dialog .finance-segment{display:inline-flex;gap:var(--v8-g-2)}
html body.v8 dialog.finance-dialog .finance-segment label{position:relative;display:inline-flex;align-items:center;min-height:var(--v8-h-btn);padding:0 9px;border-radius:var(--v8-r-6);color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:500;cursor:pointer}
html body.v8 dialog.finance-dialog .finance-segment label input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
html body.v8 dialog.finance-dialog .finance-segment label:has(input:checked){color:var(--v8-t1)}
html body.v8 dialog.finance-dialog .finance-segment label:has(input:checked)::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8 dialog.finance-dialog .finance-segment label:has(input:focus-visible){outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8 dialog.finance-dialog .finance-label{font-size:var(--v8-fs-12);color:var(--v8-t3);display:block;margin-bottom:4px}
html body.v8 dialog.finance-dialog .finance-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-6)}
html body.v8 dialog.finance-dialog .finance-plus{width:var(--v8-h-inp);min-height:var(--v8-h-inp);padding:0}
html body.v8 dialog.finance-dialog .finance-group{padding:6px 0;border-top:1px solid var(--v8-w4)}
html body.v8 dialog.finance-dialog .finance-group summary{display:flex;justify-content:space-between;gap:var(--v8-g-10);list-style:none;cursor:pointer;min-height:var(--v8-h-row);align-items:center;color:var(--v8-t2);font-size:var(--v8-fs-13)}
html body.v8 dialog.finance-dialog .finance-group summary::-webkit-details-marker{display:none}
html body.v8 dialog.finance-dialog .finance-group summary b{font-family:var(--v8-mono);font-weight:500;color:var(--v8-t1)}
html body.v8 dialog.finance-dialog .finance-lines{display:grid;gap:0;margin:4px 0 8px}
html body.v8 dialog.finance-dialog .finance-lines>div{display:flex;justify-content:space-between;gap:var(--v8-g-10);min-height:var(--v8-h-btn);align-items:center;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 dialog.finance-dialog .finance-lines>div dd{margin:0;font-family:var(--v8-mono);color:var(--v8-t2);font-variant-numeric:tabular-nums;text-align:right}
html body.v8 dialog.finance-dialog .finance-lines>div dt small{display:block;font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 dialog.finance-dialog .finance-rate{display:inline-flex;gap:var(--v8-g-6);align-items:center}
html body.v8 dialog.finance-dialog .finance-rate input{width:96px}
/* ---- строки «подпись — значение» в старых dl.finance-lines / finance-kv / preset-meta внутри раздела ---- */
html body.v8 .v8-wc dl{margin:0}
html body.v8 .v8-wc .finance-lines{display:grid;gap:0;margin:8px 0 0}
html body.v8 .v8-wc .finance-lines>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-10);min-height:var(--v8-h-btn);align-items:center;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-lines>div dt{min-width:0;overflow-wrap:anywhere;font:400 var(--v8-fs-13)/1.35 var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-lines>div dt small{display:block;font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-wc .finance-lines>div dd{margin:0;font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
html body.v8 .v8-wc .finance-lines>div.is-total dd{color:var(--v8-t1)}
html body.v8 .v8-wc .finance-lines>div.is-warn dd{color:rgba(201,132,104,.95)}
/* опасная зона: подтверждение имени */
html body.v8 .v8-wc .v8-danger{margin-top:40px;padding:16px 20px;border:1px solid rgba(255,110,90,.22);border-radius:var(--v8-r-12);background:rgba(255,80,60,.03)}
html body.v8 .v8-wc .v8-danger h2{font:600 var(--v8-fs-15) var(--v8-sans);color:rgba(255,150,135,.95);margin-bottom:12px}
html body.v8 .v8-wc .v8-danger .v8-frow>.lb{color:var(--v8-t3)}
html body.v8 .v8-wc .v8-danger :is(button,.button):not(.secondary){color:rgba(255,150,135,.95)}
/* сегмент фильтра в разделе: без рамки, активный — линия */
html body.v8 .v8-wc .v8-filter{display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap;margin:0 0 12px;min-width:0}
html body.v8 .v8-wc .v8-filter .v8-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
html body.v8 .v8-wc .v8-filter .v8-search{position:relative;display:flex;align-items:center;min-width:0;flex:1 1 180px;max-width:320px}
html body.v8 .v8-wc .v8-filter .v8-search svg{position:absolute;left:9px;color:var(--v8-t3);pointer-events:none}
html body.v8 .v8-wc .v8-filter .v8-search .v8-inp:not(#v8){padding-left:28px}
html body.v8 .v8-wc .v8-filter .n{margin-left:auto;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);font-variant-numeric:tabular-nums}
/* вторичные страницы раздела: прежний заголовок страницы — заголовок секции */
html body.v8 .v8-wc .v8-sub-h{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1);margin:0 0 12px;overflow-wrap:anywhere}
html body.v8 .v8-wc.v8-sub :is(.payroll-heading,.vpn-person-head,.page-heading){margin:0 0 12px}
html body.v8 .v8-people.v8-sub>.v8-wc-tabs{margin-top:0}
html body.v8 .v8-people.v8-sub h1{font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1);margin:0 0 8px;overflow-wrap:anywhere}
html body.v8 .v8-wc.v8-sub :is(.departure-screen,.payroll-screen,.vpn-screen){max-width:none;margin:0}
/* служебное */
html body.v8 .v8-wc [hidden]{display:none}
html body.v8 .v8-wc .v8-empty{padding:12px 10px;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-wc pre{font-family:var(--v8-mono);font-size:var(--v8-fs-12);color:var(--v8-t2);white-space:pre-wrap;overflow-wrap:anywhere}
html body.v8 .v8-wc code{font-family:var(--v8-mono);font-size:var(--v8-fs-12);color:var(--v8-t2);background:var(--v8-w4);padding:1px 5px;border-radius:var(--v8-r-4)}
html body.v8 .v8-wc .v8-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--v8-g-20);align-items:start}
@media(max-width:900px){html body.v8 .v8-wc .v8-two{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){html body.v8 .v8-wc .v8-head{flex-wrap:wrap;gap:var(--v8-g-10)}html body.v8 .v8-wc .v8-head .r{margin-left:0;justify-content:flex-start;width:100%}html body.v8 .v8-wc .v8-cards{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-wc :is(.panel,.finance-card){padding:14px 16px}html body.v8 .v8-wc .fields{grid-template-columns:minmax(0,1fr)}}
/* тумблер сильнее прежнего флажка из _depth_theme (там :is() с #id): двойной :not(#…) поднимает вес, галочка ::after снята */
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox]){appearance:none;-webkit-appearance:none;width:30px;height:16px;min-width:30px;margin:0;padding:0;display:inline-block;border:0;border-radius:var(--v8-r-pill,99px);background:var(--v8-field);box-shadow:var(--v8-deboss);accent-color:auto}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox]):is(:checked,:indeterminate){background:var(--v8-field);border:0}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox])::after{content:none;border:0;transform:none;width:auto;height:auto;margin:0}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox]):checked::after{content:"";position:absolute;left:22%;right:22%;bottom:-3px;top:auto;height:1px;width:auto;margin:0;border:0;transform:none;background:linear-gradient(90deg,transparent,rgba(255,80,0,.9),transparent)}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox])::before{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--v8-t3);transition:transform var(--v8-mid) var(--v8-ease),background var(--v8-mid) var(--v8-ease)}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox]):checked::before{transform:translateX(14px);background:var(--v8-t1)}
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(input[type=checkbox].v8-sw,label.check>input[type=checkbox],.rights-matrix input[type=checkbox],.earnings-setting input[type=checkbox],.checks input[type=checkbox],.playlist-access input[type=checkbox],.fields input[type=checkbox]):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:3px}
/* фокус с клавиатуры виден всегда (WCAG 2.4.7): вдавленные поля и тихие кнопки — светлое кольцо только при :focus-visible */
html body.v8:not(#v8a):not(#v8b) .v8-wc :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8:not(#v8a):not(#v8b) :is(dialog.finance-dialog,dialog.person-dialog,dialog.tg-dialog) :is(a,button,input,select,textarea):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
/* v8, волна C (11.10.2026): «Деньги» (/app/finance, /app/payroll, /app/earnings) и «Глобал» (/app/global…) поверх старых
   партиалов _finance_*, _bybit_*, _payroll_*: журнал — плотные строки с заголовками столбцов, свёрнут до 3 (v8.js);
   «Где деньги» — полосы; карточка «Карта студии»; плитки; таблицы зарплат; карточки партнёров и контрактов.
   Всё под body.v8 .v8-money / .v8-global; размеры — токенами. Собирается в v8.css (assets.py, блок wave C). */
/* шапка: период в строке действий */
html body.v8 .v8-money .v8-period,html body.v8 .v8-global .v8-period{display:inline-flex;align-items:center;gap:var(--v8-g-6);margin:0;flex-wrap:wrap}
html body.v8 .v8-money .v8-period select,html body.v8 .v8-global .v8-period select{width:auto;min-width:150px}
html body.v8 .v8-money .v8-period .finance-range,html body.v8 .v8-global .v8-period .finance-range{display:inline-flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
html body.v8 .v8-money .v8-period .finance-range[hidden]{display:none}
html body.v8 .v8-money .v8-period .finance-dates,html body.v8 .v8-global .v8-period .finance-dates{display:inline-flex;align-items:center;gap:var(--v8-g-6)}
html body.v8 .v8-money .v8-period input[type=date],html body.v8 .v8-global .v8-period input[type=date]{width:140px}
html body.v8 .v8-money .v8-period label,html body.v8 .v8-global .v8-period label{display:none}
/* старая обёртка: сетки/колонки отключены — компоновка v8 */
html body.v8 .finance-page.v8-wc{display:block;max-width:var(--v8-page-max);margin:0;padding:0;gap:0}
html body.v8 .finance-page.v8-wc .finance-top,html body.v8 .finance-page.v8-wc .finance-bar-row,html body.v8 .finance-page.v8-wc .finance-tabs{display:none}
html body.v8 .finance-page.v8-wc .finance-summary,html body.v8 .finance-page.v8-wc .finance-columns,html body.v8 .finance-page.v8-wc .finance-stack{display:contents}
/* плитки периода из dl.finance-flow-list / dl.finance-metrics */
html body.v8 .v8-wc .finance-flow-list,html body.v8 .v8-wc .finance-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;margin:0 0 24px;padding:0}
html body.v8 .v8-wc .finance-flow-list>div,html body.v8 .v8-wc .finance-metric{display:grid;gap:var(--v8-g-6);padding:14px 18px 12px;align-content:start;min-width:0;background:none;border:0;border-radius:0;box-shadow:none;position:relative}
html body.v8 .v8-wc .finance-flow-list>div,html body.v8 .v8-wc .finance-metric{grid-template-columns:none;border-top:0}
html body.v8 .v8-wc .finance-flow-list>div+div,html body.v8 .v8-wc .finance-metric+.finance-metric{border-left:1px solid var(--v8-w4)}
html body.v8 .v8-wc .finance-flow-list dt,html body.v8 .v8-wc .finance-metric dt{order:2;font:400 var(--v8-fs-13)/1.3 var(--v8-sans);color:var(--v8-t3);letter-spacing:0;text-transform:none;margin:0}
html body.v8 .v8-wc .finance-flow-list dd,html body.v8 .v8-wc .finance-metric dd{order:1;margin:0;font:600 var(--v8-fs-28)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
html body.v8 .v8-wc .finance-flow-list small,html body.v8 .v8-wc .finance-metric>small,html body.v8 .v8-wc .finance-metric>p{order:3;font-size:var(--v8-fs-12);color:var(--v8-t3);margin:0}
html body.v8 .v8-wc .finance-metric .finance-kv{order:3;display:grid;gap:4px;margin-top:4px}
html body.v8 .v8-wc .finance-metric .finance-kv>div{display:flex;justify-content:space-between;gap:var(--v8-g-10);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-metric .finance-kv b{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);font-variant-numeric:tabular-nums}
html body.v8 .v8-wc .finance-metric.is-main dd{color:var(--v8-t1)}
html body.v8 .v8-wc .finance-metric.is-click{cursor:pointer;border-radius:var(--v8-r-8)}
html body.v8 .v8-wc .finance-metric.is-click:hover{background:var(--v8-w3)}
html body.v8 .v8-wc .finance-metric .finance-more{color:var(--v8-t4)}
html body.v8 .v8-wc .finance-outs{order:4;display:flex;gap:var(--v8-g-10);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-outs .finance-out i{font-style:normal;color:var(--v8-t4);margin-right:4px}
@media(max-width:760px){html body.v8 .v8-wc .finance-flow-list,html body.v8 .v8-wc .finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-wc .finance-flow-list>div+div,html body.v8 .v8-wc .finance-metric+.finance-metric{border-left:0}}
/* карточка «Карта студии» */
html body.v8 .v8-money .finance-big{font:600 var(--v8-fs-28)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums;margin:0 0 6px}
html body.v8 .v8-money .finance-balance .finance-note{display:block;margin:0 0 4px}
html body.v8 .v8-money .finance-check{margin-top:10px;padding-top:8px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-money .finance-check>summary.is-ok{color:rgba(95,168,107,.9)}
html body.v8 .v8-money .finance-check>summary.is-off{color:rgba(201,132,104,.95)}
html body.v8 .v8-money .finance-usdt{margin-top:12px;padding-top:10px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-money .finance-usdt dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-10);margin:0 0 10px}
html body.v8 .v8-money .finance-usdt dl>div{display:grid;gap:4px}
html body.v8 .v8-money .finance-usdt dt{order:2;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-money .finance-usdt dd{order:1;margin:0;font:600 var(--v8-fs-22)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-money .finance-usdt dd small{display:block;font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3);margin-top:4px}
html body.v8 .v8-money .finance-usdt-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-10)}
html body.v8 .v8-money .finance-usdt-actions form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-6);margin:0;align-items:center}
html body.v8 .v8-money .finance-usdt-actions form .notice{grid-column:1/-1}
@media(max-width:600px){html body.v8 .v8-money .finance-usdt-actions{grid-template-columns:minmax(0,1fr)}}
/* «Где деньги»: полосы 36 px */
html body.v8 .v8-wc .finance-bars{display:grid;gap:0}
html body.v8 .v8-wc .finance-bar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-row);padding:0 10px;border-radius:var(--v8-r-8);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-wc .finance-bar:hover{background:var(--v8-w3)}
html body.v8 .v8-wc .finance-bar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}
html body.v8 .v8-wc .finance-bar b{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);font-variant-numeric:tabular-nums;position:relative;z-index:1}
html body.v8 .v8-wc .finance-bar i{position:absolute;left:10px;right:10px;bottom:4px;height:1px;background:var(--v8-w5);pointer-events:none;max-width:calc(100% - 20px)}
html body.v8 .v8-wc .finance-bar i::after{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,.12))}
html body.v8 .v8-wc .finance-bar.is-team i::after{background:linear-gradient(90deg,rgba(143,163,191,.8),rgba(143,163,191,.3))}
html body.v8 .v8-wc .finance-bar.is-unsorted{color:var(--v8-t3)}
html body.v8 .v8-wc .finance-bar.is-filler{visibility:hidden}
html body.v8 .v8-wc .finance-pager,html body.v8 .v8-wc .finance-months{display:flex;gap:var(--v8-g-2);flex-wrap:wrap;align-items:center;margin:8px 0 0;font-size:var(--v8-fs-12)}
html body.v8 .v8-wc .finance-pager a,html body.v8 .v8-wc .finance-months a{display:inline-flex;align-items:center;min-height:var(--v8-h-sm);padding:0 8px;border-radius:var(--v8-r-6);color:var(--v8-t3)}
html body.v8 .v8-wc .finance-pager a:hover,html body.v8 .v8-wc .finance-months a:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-wc .finance-pager a[aria-current]{color:var(--v8-t1);background:var(--v8-w5)}
/* журнал операций: плотные строки, столбцы — стрелка · что · дата · сумма · действия */
html body.v8 .v8-wc .finance-ops{list-style:none;margin:0;padding:0;display:grid;gap:0}
html body.v8 .v8-wc .finance-ops .finance-op,html body.v8 .v8-wc .finance-ops .finance-op-head{display:grid;grid-template-columns:18px minmax(0,1fr) 76px 104px minmax(0,auto);gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-row);padding:0 10px;margin:0;border:0;background:none;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-wc .finance-ops .finance-op-head{min-height:var(--v8-h-btn);font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-wc .finance-ops .finance-op>*,html body.v8 .v8-wc .finance-ops .finance-op-head>*{grid-column:auto;grid-row:auto;align-self:center}
html body.v8 .v8-wc .finance-ops .finance-op-head .c-m{text-align:right}
html body.v8 .v8-wc .finance-ops .finance-op:nth-child(even){background:var(--v8-w2)}
html body.v8 .v8-wc .finance-ops .finance-op:hover{background:var(--v8-w3)}
html body.v8 .v8-wc .finance-ops .finance-op.v8-hid{display:none}
html body.v8 .v8-wc .finance-op-arrow{color:var(--v8-t4);font-size:var(--v8-fs-12)}
html body.v8 .v8-wc .finance-op.is-in .finance-op-arrow{color:rgba(95,168,107,.8)}
html body.v8 .v8-wc .finance-op-main{display:grid;gap:var(--v8-g-1);min-width:0}
html body.v8 .v8-wc .finance-op-main b{font-weight:500;color:var(--v8-t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block}
html body.v8 .v8-wc .finance-op-main small{font-size:var(--v8-fs-12);color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block}
html body.v8 .v8-wc .finance-op.is-expanded .finance-op-main :is(b,small){white-space:normal}
html body.v8 .v8-wc .finance-op time{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
html body.v8 .v8-wc .finance-op-amount{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
html body.v8 .v8-wc .finance-op.is-in .finance-op-amount{color:rgba(95,168,107,.9)}
html body.v8 .v8-wc .finance-op-tools{display:flex;gap:var(--v8-g-2);justify-content:flex-end;align-items:center;min-width:0}
html body.v8 .v8-wc .finance-op-tools form{margin:0}
html body.v8 .v8-wc .finance-x{display:inline-grid;place-items:center;width:var(--v8-h-btn);height:var(--v8-h-btn);min-height:var(--v8-h-btn);padding:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);cursor:pointer;list-style:none;font-size:var(--v8-fs-13)}
html body.v8 .v8-wc .finance-x::-webkit-details-marker{display:none}
html body.v8 .v8-wc .finance-x:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-wc .finance-x svg{width:14px;height:14px}
html body.v8 .v8-wc .finance-pop{position:relative}
html body.v8 .v8-wc .finance-pop>summary::after{display:none}
html body.v8 .v8-wc .finance-pop-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:260px;padding:10px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);display:grid;gap:var(--v8-g-6);text-align:left}
html body.v8 .v8-wc .finance-pop-panel form{display:grid;gap:var(--v8-g-6);margin:0}
html body.v8 .v8-wc .finance-name-legal{font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-wc .finance-sync{margin-top:8px;font-size:var(--v8-fs-12);color:var(--v8-t3)}
/* фильтр журнала */
html body.v8 .v8-money .v8-ops-filter{margin:0 0 6px}
/* сортировка операций карты */
html body.v8 .v8-wc .finance-sort{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--v8-g-14);align-items:center;padding:8px 0;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-wc .finance-sort:first-of-type{border-top:0}
html body.v8 .v8-wc .finance-sort-what{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8 .v8-wc .finance-sort-what b{font-weight:500;color:var(--v8-t2);overflow-wrap:anywhere}
html body.v8 .v8-wc .finance-sort form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--v8-g-6);align-items:center;margin:0}
html body.v8 .v8-wc .finance-sort form .notice{grid-column:1/-1}
html body.v8 .v8-wc .finance-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-6)}
html body.v8 .v8-wc .finance-plus{width:var(--v8-h-inp);min-height:var(--v8-h-inp);padding:0}
@media(max-width:760px){html body.v8 .v8-wc .finance-sort{grid-template-columns:minmax(0,1fr)}}
/* настройки карты: свёрнутый блок */
html body.v8 .v8-money .finance-settings{margin-top:24px}
html body.v8 .v8-money .finance-settings>summary h2{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .v8-money .finance-key{padding:8px 0;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-money .finance-key form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--v8-g-10);align-items:end;margin:8px 0}
html body.v8 .v8-money .finance-key form .notice{grid-column:1/-1}
html body.v8 .v8-money .finance-steps{display:none}
/* телефон: журнал без даты в столбце (дата остаётся в подписи при раскрытии) */
@media(max-width:600px){html body.v8 .v8-wc .finance-ops .finance-op,html body.v8 .v8-wc .finance-ops .finance-op-head{grid-template-columns:14px minmax(0,1fr) 92px auto;gap:var(--v8-g-6);padding:0 6px}html body.v8 .v8-wc .finance-op time,html body.v8 .v8-wc .finance-op-head .c-date{display:none}}
/* ---- зарплаты: сегмент, таблицы, свёрнутые блоки ---- */
html body.v8 .payroll-screen.v8-wc{max-width:var(--v8-page-max);margin:0;padding:0;display:block}
html body.v8 .v8-money .payroll-nav,html body.v8 .v8-money .payroll-rate-strip,html body.v8 .v8-money .payroll-metrics,html body.v8 .v8-money .payroll-reserved{display:none}
html body.v8 .v8-money .payroll-section{margin:0;padding:0;border:0;background:none;box-shadow:none}
html body.v8 .v8-money .payroll-section-heading{display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;padding-bottom:10px;position:relative;flex-wrap:wrap}
html body.v8 .v8-money .payroll-section-heading::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8 .v8-money .payroll-section-heading h2{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1)}
html body.v8 .v8-money .payroll-section-heading>span{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-section-heading form{margin-left:auto}
html body.v8 .v8-money .payroll-section-heading select{width:auto;min-width:180px}
html body.v8 .v8-money .payroll-section.first .payroll-section-heading{margin-top:0}
html body.v8 .v8-money .payroll-table .pc-mobile{display:none}
html body.v8 .v8-money .payroll-table td.pc-main{min-width:0}
html body.v8 .v8-money .payroll-table td.pc-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
html body.v8 .v8-money .payroll-group-head th{height:28px;padding-top:12px;background:none;color:var(--v8-t3);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .v8-money .payroll-group-line{display:flex;justify-content:space-between;gap:var(--v8-g-10)}
html body.v8 .v8-money .payroll-group-line span:last-child{font-family:var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-others,html body.v8 .v8-money .payroll-holidays{margin-top:12px;padding:0 10px;border-radius:var(--v8-r-8)}
html body.v8 .v8-money .payroll-others-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 var(--v8-g-14);padding-bottom:8px}
html body.v8 .v8-money .payroll-others-list a{display:flex;flex-direction:column;gap:var(--v8-g-1);min-height:var(--v8-h-row);justify-content:center;color:var(--v8-t2);font-size:var(--v8-fs-13);padding:4px 0;border-bottom:1px solid var(--v8-w4)}
html body.v8 .v8-money .payroll-others-list a small{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-holiday-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:0}
html body.v8 .v8-money .payroll-holiday-list li{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-row);border-top:1px solid var(--v8-w4);padding:0;font-variant-numeric:tabular-nums;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-money .payroll-holiday-list li+li{padding-top:0}
html body.v8 .v8-money .payroll-holiday-name{color:var(--v8-t3)}
html body.v8 .v8-money .payroll-holidays form .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
html body.v8 .v8-money .payroll-attention{margin:0 0 16px}
html body.v8 .v8-money .payroll-attention ul{margin:6px 0 0;padding-left:18px}
html body.v8 .v8-money .payroll-help{font-size:var(--v8-fs-12);color:var(--v8-t3);margin:6px 0}
html body.v8 .v8-money .payroll-empty{padding:10px;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-money .payroll-empty strong{display:block;color:var(--v8-t2);font-weight:500}
html body.v8 .v8-money .payroll-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--v8-g-20);margin-top:24px}
html body.v8 .v8-money .payroll-columns>details.panel{align-self:start}
html body.v8 .v8-money .payroll-columns>details.panel>summary{min-height:var(--v8-h-btn)}
html body.v8 .v8-money .payroll-columns>details.panel>summary h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .v8-money .payroll-salary{grid-column:1/-1}
html body.v8 .v8-money .payroll-filters{display:flex;gap:var(--v8-g-10);flex-wrap:wrap;align-items:center;margin:24px 0 0}
html body.v8 .v8-money .payroll-filter select{width:auto;min-width:160px}
html body.v8 .v8-money .payroll-filter-reset{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-summary{display:flex;gap:var(--v8-g-14);flex-wrap:wrap;margin:12px 0 0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-summary b{font-family:var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-money .payroll-months{display:grid;gap:4px}
html body.v8 .v8-money .payroll-month{padding:0 10px;border-radius:var(--v8-r-8)}
html body.v8 .v8-money .payroll-month[open]{background:var(--v8-w2);padding-bottom:10px}
html body.v8 .v8-money .payroll-month>summary{flex-wrap:wrap}
html body.v8 .v8-money .payroll-month-name{color:var(--v8-t1)}
html body.v8 .v8-money .payroll-month-totals{display:flex;gap:var(--v8-g-14);flex-wrap:wrap;font-size:var(--v8-fs-12);color:var(--v8-t3);font-weight:400}
html body.v8 .v8-money .payroll-month-totals strong{font:500 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-money .payroll-month-payouts{margin-top:10px}
html body.v8 .v8-money .payroll-month-payouts h3{display:flex;justify-content:space-between;gap:var(--v8-g-10);font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3);margin:0 0 4px;padding:0 10px}
html body.v8 .v8-money .payroll-payout{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-10);align-items:start;min-height:var(--v8-h-row);padding:6px 10px;border-top:1px solid var(--v8-w4);font-size:var(--v8-fs-13)}
html body.v8 .v8-money .payroll-payout>div{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8 .v8-money .payroll-payout small{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-money .payroll-payout>strong{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);white-space:nowrap}
html body.v8 .v8-money .payroll-fix{margin-top:4px}
html body.v8 .v8-money .payroll-fix>summary{min-height:var(--v8-h-sm);font-size:var(--v8-fs-12);color:var(--v8-t3);font-weight:400}
html body.v8 .v8-money .payroll-fix form{display:grid;gap:var(--v8-g-6);margin:6px 0;max-width:420px}
html body.v8 .v8-money .payroll-pick{display:flex;align-items:center;gap:var(--v8-g-10);cursor:pointer}
html body.v8 .v8-money .payroll-pick input[type=checkbox]{width:16px;height:16px;min-width:16px;appearance:auto;accent-color:var(--v8-t1);box-shadow:none;background:none}
html body.v8 .v8-money .payroll-pick input[type=checkbox]::before,html body.v8 .v8-money .payroll-pick input[type=checkbox]::after{display:none}
html body.v8 .v8-money .payroll-markbar{position:sticky;bottom:12px;z-index:5;margin-top:16px;padding:12px 16px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-12);box-shadow:var(--v8-sh-pop)}
html body.v8 .v8-money .payroll-markbar-head{display:flex;justify-content:space-between;gap:var(--v8-g-10);align-items:center;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-money .payroll-more-months{display:inline-flex;align-items:center;min-height:var(--v8-h-btn);padding:0 10px;margin-top:8px;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-money .payroll-back{display:inline-flex;align-items:center;min-height:var(--v8-h-btn);margin-bottom:8px;color:var(--v8-t3)}
html body.v8 .v8-money .payroll-salary-months{margin-top:12px}
html body.v8 .v8-money .payroll-salary-days{display:flex;align-items:center;justify-content:flex-end;gap:var(--v8-g-6);white-space:nowrap}
html body.v8 .v8-money .payroll-salary-days input{width:56px;text-align:right}
html body.v8 .v8-money .payroll-salary-days-form{margin:0}
html body.v8 .v8-money .payroll-salary h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2);margin:12px 0 6px}
html body.v8 .v8-money .payroll-salary form+form{margin-top:12px;padding-top:12px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-money .payroll-project-picker{padding:12px 16px;margin:0 0 16px}
html body.v8 .v8-money .payroll-project-picker .fields{margin:0}
@media(max-width:760px){html body.v8 .v8-money .payroll-table .pc-desktop{display:none}html body.v8 .v8-money .payroll-table .pc-mobile{display:block}html body.v8 .v8-money .payroll-table thead{display:none}html body.v8 .v8-money .payroll-table td.pc-amount{text-align:right}html body.v8 .v8-money .payroll-holiday-list li{grid-template-columns:90px minmax(0,1fr)}html body.v8 .v8-money .payroll-holiday-list li form{grid-column:1/-1}}
/* ---- глобал: карточки партнёров, «что нужно скоро», контракты ---- */
html body.v8 .v8-global .finance-settle{display:block;padding:0;background:none;border:0;box-shadow:none}
html body.v8 .v8-global .finance-settle-side{display:block}
html body.v8 .v8-global .finance-partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--v8-g-20);margin:0}
html body.v8 .v8-global .finance-partner{position:relative;padding:18px 20px 16px;border-radius:var(--v8-r-14);min-width:0;background:radial-gradient(min(360px,85%) min(200px,85%) at 0 0,rgba(200,214,238,0.0500) 0%,rgba(200,214,238,0.0470) 11.7%,rgba(200,214,238,0.0392) 23.4%,rgba(200,214,238,0.0287) 35.1%,rgba(200,214,238,0.0176) 46.8%,rgba(200,214,238,0.0078) 58.5%,rgba(200,214,238,0.0014) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));border:1px solid var(--v8-w6);box-shadow:var(--v8-sh-lift);display:grid;gap:0;align-content:start}
html body.v8 .v8-global .finance-partner::before{content:"";position:absolute;left:16px;right:16px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w14) 25%,var(--v8-w14) 75%,transparent)}
html body.v8 .v8-global .finance-partner-head{display:flex;align-items:baseline;gap:var(--v8-g-10);margin-bottom:14px;min-width:0}
html body.v8 .v8-global .finance-partner-head h3{font:600 var(--v8-fs-15)/1.2 var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-global .finance-partner-head small{margin-left:auto;font-size:var(--v8-fs-12);color:var(--v8-t3);white-space:nowrap}
html body.v8 .v8-global .finance-partner>.finance-note{font-size:var(--v8-fs-13);color:var(--v8-t3);order:2}
html body.v8 .v8-global .finance-partner .finance-big{order:1;font:600 var(--v8-fs-32)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums;margin:0 0 4px}
html body.v8 .v8-global .finance-partner .finance-big.finance-warn{color:rgba(201,132,104,.95)}
html body.v8 .v8-global .finance-partner .finance-lines{order:4;margin-top:14px}
html body.v8 .v8-global .finance-partner .finance-debt{order:3;margin:8px 0 0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-global .finance-partner .finance-debt b{font-family:var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-global .finance-partner>p.finance-note.finance-warn{order:3;margin-top:6px}
html body.v8 .v8-global .v8-soon{display:grid;gap:0;align-content:start}
html body.v8 .v8-global .v8-soon .one{margin-bottom:10px}
html body.v8 .v8-global .finance-own-tabs{display:inline-flex;gap:var(--v8-g-2);flex-wrap:wrap;margin:0 0 8px}
html body.v8 .v8-global .finance-own-tabs button{position:relative;background:transparent;box-shadow:none;color:var(--v8-t3);min-height:var(--v8-h-btn)}
html body.v8 .v8-global .finance-own-tabs button[aria-pressed=true]{color:var(--v8-t1)}
html body.v8 .v8-global .finance-own-tabs button[aria-pressed=true]::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8 .v8-global .finance-own{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-14);margin:0}
html body.v8 .v8-global .finance-own>div{display:grid;gap:4px}
html body.v8 .v8-global .finance-own dt{order:2;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-global .finance-own dd{order:1;margin:0;font:600 var(--v8-fs-22)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-global .finance-own small{order:3;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-global .finance-actions-menu{position:relative;display:inline-block}
html body.v8 .v8-global .finance-actions-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);padding:0 12px;border-radius:var(--v8-r-6);color:var(--v8-t2);font-size:var(--v8-fs-13);font-weight:500;cursor:pointer;position:relative;--lc:rgba(255,80,0,.95)}
html body.v8 .v8-global .finance-actions-menu>summary::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;margin:0;border:0;transform:none;width:auto;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.v8 .v8-global .finance-actions-menu>summary:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .v8-global .finance-actions-menu>summary svg[data-icon=chevron-down]{display:inline;width:12px;height:12px}
html body.v8 .v8-global .finance-actions-menu>div{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:216px;padding:4px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);display:grid;gap:0}
html body.v8 .v8-global .finance-actions-menu>div button{justify-content:flex-start;background:none;box-shadow:none;color:var(--v8-t2);font-weight:400;width:100%;min-height:var(--v8-h-it)}
html body.v8 .v8-global .finance-actions-menu>div button:hover{background:var(--v8-w5);color:var(--v8-t1)}
/* контракты: карточки */
html body.v8 .v8-global .contract-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--v8-g-20);margin-top:16px}
html body.v8 .v8-global .contract-tile{display:grid;align-content:start;gap:0;color:var(--v8-t3)}
html body.v8 .v8-global .contract-tile-head{display:flex;align-items:flex-start;gap:var(--v8-g-10);margin-bottom:12px;min-width:0}
html body.v8 .v8-global .contract-tile-head>div{min-width:0}
html body.v8 .v8-global .contract-tile-head h2{font:600 var(--v8-fs-15)/1.2 var(--v8-sans);color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global .contract-tile-head .finance-tag{margin-left:auto;flex:none}
html body.v8 .v8-global .contract-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-14) var(--v8-g-14);margin:0}
html body.v8 .v8-global .contract-figures>div{display:grid;gap:4px;min-width:0}
html body.v8 .v8-global .contract-figures>div.is-wide{grid-column:1/-1}
html body.v8 .v8-global .contract-figures dt{font-size:var(--v8-fs-13);color:var(--v8-t3);order:2}
html body.v8 .v8-global .contract-figures dd{margin:0;order:1;font:600 var(--v8-fs-22)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-global .contract-figures dd.is-text{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .v8-global .contract-figures dd.finance-warn{color:rgba(201,132,104,.95)}
html body.v8 .v8-global .contract-figures small{font-size:var(--v8-fs-12);color:var(--v8-t3);order:3}
html body.v8 .v8-global .contract-figures dd small{font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-global .contract-plan-row{display:flex;align-items:center;gap:var(--v8-g-10);order:1}
html body.v8 .v8-global .contract-plan-row dd{margin:0}
html body.v8 .v8-global .contract-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--v8-g-10);order:3;margin:6px 0 0}
html body.v8 .v8-global .contract-breakdown dd{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);order:1}
html body.v8 .v8-global .contract-breakdown dt{font-size:var(--v8-fs-12);order:2}
html body.v8 .v8-global .contract-breakdown small{font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-global .contract-progress{position:relative;height:1px;background:var(--v8-w8);border-radius:var(--v8-r-1);order:2;margin:4px 0}
html body.v8 .v8-global .contract-figures .contract-progress i{position:absolute;left:0;top:0;height:1px;background:linear-gradient(90deg,rgba(255,80,0,.55),var(--v8-org))}
html body.v8 .v8-global .contract-lines{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:var(--v8-g-2);order:3;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-global .contract-lines li{display:flex;justify-content:space-between;gap:var(--v8-g-10)}
html body.v8 .v8-global .contract-lines b{font:500 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-global .contract-clients-list{display:grid;gap:var(--v8-g-14)}
html body.v8 .v8-global .contract-client-head{display:flex;align-items:baseline;gap:var(--v8-g-10);flex-wrap:wrap;margin-bottom:4px}
html body.v8 .v8-global .contract-client-head h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-global .contract-client-head p{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-global .contract-client .contract-progress{height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-row);padding:0 10px 6px;background:none;border-radius:0;margin:0;position:relative}
html body.v8 .v8-global .contract-client .contract-progress a{color:var(--v8-t2);font-size:var(--v8-fs-13);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global .contract-client .contract-progress span{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);white-space:nowrap}
html body.v8 .v8-global .contract-client .contract-progress i{position:absolute;left:10px;right:10px;bottom:3px;height:1px;background:var(--v8-w6)}
html body.v8 .v8-global .contract-client .contract-progress i b{position:absolute;left:0;top:0;height:1px;background:linear-gradient(90deg,rgba(255,80,0,.55),var(--v8-org))}
html body.v8 .v8-global .contract-client .contract-progress.is-closed{opacity:.6}
/* себестоимость */
html body.v8 .v8-global .finance-switch{display:inline-flex;gap:var(--v8-g-2);margin-left:auto}
html body.v8 .v8-global .finance-switch button{position:relative;background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-global .finance-switch button span{margin-left:6px;font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-global .finance-switch button[aria-selected=true]{color:var(--v8-t1)}
html body.v8 .v8-global .finance-switch button[aria-selected=true]::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8 .v8-global .finance-expand{background:none;box-shadow:none;padding:0;min-height:0;color:var(--v8-t2);font-weight:400;gap:var(--v8-g-6);justify-content:flex-start;white-space:normal;text-align:left}
html body.v8 .v8-global .finance-expand svg{width:12px;height:12px}
html body.v8 .v8-global .finance-count-phone{display:none}
html body.v8 .v8-global .finance-ch-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:middle}
html body.v8 .v8-global .finance-channels{display:block;font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-global .finance-legend{display:none}
html body.v8 .v8-global .finance-providers{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--v8-g-20);margin:12px 0 0}
html body.v8 .v8-global .finance-provider{padding:14px 16px;border:1px solid var(--v8-w6);border-radius:var(--v8-r-12);background:var(--v8-w2);display:grid;gap:4px;align-content:start}
html body.v8 .v8-global .finance-provider-head h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
html body.v8 .v8-global .finance-provider-head p{display:grid;gap:var(--v8-g-2);margin:6px 0 0}
html body.v8 .v8-global .finance-provider-head p b{font:600 var(--v8-fs-22)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-global .finance-balance-form{display:grid;gap:var(--v8-g-6);margin:6px 0 0}
html body.v8 .v8-global .finance-balance-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--v8-g-6)}
html body.v8 .v8-global .finance-subsection{margin-top:24px;padding-top:12px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-global .finance-subhead{display:flex;align-items:baseline;gap:var(--v8-g-10);margin-bottom:8px}
html body.v8 .v8-global .finance-subhead h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-global .finance-tests-total{margin-left:auto;font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-global .finance-tests-projects{display:flex;flex-wrap:wrap;gap:var(--v8-g-6);align-items:center;margin-top:8px}
html body.v8 .v8-global .finance-chip-form{display:inline-flex;align-items:center;gap:var(--v8-g-2);margin:0}
html body.v8 .v8-global .finance-tests-add{display:inline-flex;gap:var(--v8-g-6);align-items:center;margin:0}
html body.v8 .v8-global .finance-tests-add select{width:auto;min-width:180px}
html body.v8 .v8-global .finance-map-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-row);padding:4px 0;border-top:1px solid var(--v8-w4);margin:0}
html body.v8 .v8-global .finance-map-row>div{display:grid;gap:var(--v8-g-1);min-width:0}
html body.v8 .v8-global .finance-map-row b{font-weight:500;color:var(--v8-t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global .finance-map-row small{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-global .finance-map-row .notice{grid-column:1/-1}
html body.v8 .v8-global .finance-mapping h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2);margin:12px 0 4px}
html body.v8 .v8-global .finance-episodes caption{text-align:left;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3);padding:8px 10px 4px}
html body.v8 .v8-global .finance-expansion{display:grid;gap:var(--v8-g-14)}
html body.v8 .v8-global tr.is-unmapped td{color:var(--v8-t3)}
@media(max-width:760px){html body.v8 .v8-global .finance-map-row{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-global .contract-breakdown{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-global .finance-own{grid-template-columns:minmax(0,1fr)}}
html body.v8 .v8-money .v8-two>*{grid-column:auto;order:0;margin:0;min-width:0}
html body.v8 .v8-money .v8-two{margin-bottom:20px}
html body.v8 .v8-wc .finance-flow-list dd,html body.v8 .v8-wc .finance-metric dd{text-align:left}
html body.v8 .v8-wc .v8-ops-filter .finance-months{margin:0}
html body.v8 .v8-wc .v8-ops-filter .finance-months a{border:0;background:none;box-shadow:none}
html body.v8 .v8-global .v8-soon{cursor:pointer;transition:border-color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-global .v8-soon:hover{border-color:var(--v8-w10)}
html body.v8 .v8-global .v8-soon .finance-more{color:var(--v8-t3);margin-left:auto}
html body.v8 .v8-global .finance-switch{border:0;background:none;box-shadow:none;padding:0}
html body.v8 .v8-global .finance-switch button{border:0;background:transparent;box-shadow:none;min-height:var(--v8-h-btn);padding:0 9px;font:500 var(--v8-fs-13) var(--v8-sans);border-radius:var(--v8-r-6)}
html body.v8 .v8-global .finance-provider .finance-lines>div :is(dt,dd){font-size:var(--v8-fs-13)}
html body.v8 .v8-global .finance-provider .finance-lines>div dt{font-weight:400;color:var(--v8-t3)}
html body.v8 .v8-global .finance-empty{font-size:var(--v8-fs-13);color:var(--v8-t3)}
/* телефон: строка журнала в две строки — что/подпись переносятся, суммы справа, действия под строкой; ничего не обрезается */
@media(max-width:600px){html body.v8 .v8-wc .finance-ops .finance-op{grid-template-columns:14px minmax(0,1fr) auto;row-gap:var(--v8-g-2);padding:6px}
html body.v8 .v8-wc .finance-ops .finance-op-head{display:none}
html body.v8 .v8-wc .finance-op-main :is(b,small){white-space:normal;overflow:visible;text-overflow:clip}
html body.v8 .v8-wc .finance-ops .finance-op .finance-op-tools{grid-column:2/-1;justify-content:flex-start}
html body.v8 .v8-money .payroll-table td.pc-main small{white-space:normal;max-width:none}
html body.v8 .v8-money .payroll-table :is(td,th){height:auto;padding-top:6px;padding-bottom:6px}
html body.v8 .v8-money .payroll-table td.pc-line a{display:inline-block;margin:2px 10px 2px 0;line-height:1.5}
html body.v8 .v8-money .payroll-table td.pc-line br{display:none}}
/* r2 п.14 (11.10.2026): «Карта студии» и «Где деньги» — одна линия сверху, одна высота, заголовки на одной линии.
   Старое правило finance.css «section + section {margin-top:16px}» той же специфичности грузится позже — поднимаем. */
html body.v8 .v8-money .v8-two{align-items:stretch}
html body.v8 .v8-money .v8-two>section.finance-card{margin:0}
html body.v8 .v8-money .v8-two>.finance-card>.finance-card-head{min-height:var(--v8-h-btn);align-items:center}
/* счётчик в заголовке карточки — тихая подпись, не серая плашка 36 px (иначе заголовки соседних карточек на разной высоте) */
html body.v8 .v8-wc .finance-card-head .finance-count{min-width:0;min-height:0;padding:0;background:none;border-radius:0}
/* r2 п.15–16 (11.10.2026): «Движение денег» — строки одной высоты и одной сетки (действия — колонка постоянной ширины, иначе
   дата и сумма гуляют по строкам), на широком экране «что» и подпись — в одну строку двумя колонками (нет пустоты посередине);
   ровные плитки периода — одним рядом; блок при переключении не меняет высоту (пустые места страницы добиты) */
html body.v8 .v8-money .finance-flow-list{grid-template-columns:repeat(6,minmax(0,1fr))}
html body.v8 .v8-money .finance-flow-list dd{font-size:var(--v8-fs-26)}
@media(max-width:1500px){html body.v8 .v8-money .finance-flow-list dd{font-size:var(--v8-fs-22)}html body.v8 .v8-money .finance-flow-list>div{padding:12px 14px 10px}}
@media(max-width:1100px){html body.v8 .v8-money .finance-flow-list{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--v8-g-8)}html body.v8 .v8-money .finance-flow-list>div:nth-child(3n+1){border-left:0}}
@media(max-width:760px){html body.v8 .v8-money .finance-flow-list{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-money .finance-flow-list>div:nth-child(n){border-left:0}html body.v8 .v8-money .finance-flow-list>div:nth-child(2n){border-left:1px solid var(--v8-w4)}html body.v8 .v8-money .finance-flow-list dd{font-size:var(--v8-fs-18)}}
html body.v8 .v8-wc .finance-ops .finance-op,html body.v8 .v8-wc .finance-ops .finance-op-head{grid-template-columns:18px minmax(0,1fr) 76px 112px 64px}
html body.v8 .v8-wc .finance-ops .finance-op{min-height:var(--v8-h-row2)}
html body.v8 .v8-wc .finance-op-main b{font:500 var(--v8-fs-13)/1.35 var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-wc .finance-op-main small{line-height:1.35}
html body.v8 .v8-wc .finance-ops .finance-op-filler{list-style:none;min-height:var(--v8-h-row2);visibility:hidden}
html body.v8 .v8-wc .finance-ops .finance-op-head>span:nth-child(2){padding-left:0}
@media(min-width:1280px){
 html body.v8 .v8-wc .finance-ops .finance-op{min-height:var(--v8-h-row)}
 html body.v8 .v8-wc .finance-ops .finance-op-filler{min-height:var(--v8-h-row)}
 html body.v8 .v8-wc .finance-op-main{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);column-gap:var(--v8-g-20);align-items:baseline}
}
html body.v8 .v8-money .v8-ops-filter{display:flex;align-items:center;gap:var(--v8-g-14);flex-wrap:wrap;margin:0 0 8px}
html body.v8 .v8-money .v8-ops-filter .finance-months{margin-left:auto}
html body.v8 .v8-wc .v8-seg>a{text-decoration:none}
html body.v8 .v8-money .finance-journal-foot{display:flex;align-items:center;gap:var(--v8-g-14);flex-wrap:wrap;margin-top:8px;min-height:var(--v8-h-btn)}
html body.v8 .v8-money .finance-journal-foot .finance-pager{margin:0}
html body.v8 .v8-money :is(.finance-pager,.finance-months) a{font:500 var(--v8-fs-13)/1 var(--v8-sans);min-width:var(--v8-h-btn);justify-content:center}
html body.v8 .v8-money .finance-journal-foot .finance-sync{margin:0 0 0 auto}
html body.v8 .v8-wc [data-ops-box] .finance-ops,html body.v8 .v8-wc [data-ops-box] .finance-bars{transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-wc [data-ops-box][aria-busy=true] :is(.finance-ops,.finance-bars){opacity:.5}
html body.v8 .v8-money #payroll-employees .payroll-table-wrap{transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-money #payroll-employees[aria-busy=true] .payroll-table-wrap{opacity:.5}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-wc [data-ops-box] :is(.finance-ops,.finance-bars){transition:none}}
/* r2 доп. (11.10.2026): «Глобал → Партнёры» — структура боевой вкладки в облике v8. Четыре ровные плитки-квадратика
   (лёгкое стекло, тонкая линия), «Баланс партнёров»: слева «Сколько можно забрать» и «Свои деньги», справа две карточки
   партнёров — ссылки на отчёт партнёра. */
html body.v8 .v8-global .finance-metrics.global-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--v8-g-20);margin:0 0 20px}
html body.v8 .v8-global .global-tiles>.finance-metric{padding:16px 20px 14px;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:radial-gradient(min(320px,85%) min(180px,85%) at 0 0,rgba(200,214,238,.045) 0%,rgba(200,214,238,.030) 25%,rgba(200,214,238,.012) 55%,rgba(200,214,238,0) 80%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift);transition:border-color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-global .global-tiles>.finance-metric+.finance-metric{border-left:1px solid rgba(255,255,255,.05)}
html body.v8 .v8-global .global-tiles>.finance-metric::before{display:none}
html body.v8 .v8-global .global-tiles dt{order:2;display:flex;align-items:center;gap:var(--v8-g-6);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-global .global-tiles dd{order:1;font-size:var(--v8-fs-28)}
html body.v8 .v8-global .global-tiles dt{flex-wrap:wrap;row-gap:2px}
html body.v8 .v8-global .global-tiles dt small{order:3;flex:1 0 100%;font-size:var(--v8-fs-12);color:var(--v8-t3);white-space:nowrap}
html body.v8 .v8-global .global-tiles .finance-outs{flex-wrap:wrap;gap:var(--v8-g-6)}
html body.v8 .v8-global .global-tiles .finance-kv{order:4;margin-top:8px;padding-top:8px;border-top:1px solid var(--v8-w4);gap:var(--v8-g-6)}
html body.v8 .v8-global .global-tiles .finance-outs{order:5;margin-top:8px}
html body.v8 .v8-global .global-tiles .is-click{cursor:pointer}
html body.v8 .v8-global .global-tiles .is-click:hover{background:radial-gradient(min(320px,85%) min(180px,85%) at 0 0,rgba(200,214,238,.06) 0%,rgba(200,214,238,.04) 25%,rgba(200,214,238,.016) 55%,rgba(200,214,238,0) 80%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));border-color:rgba(255,255,255,.10)}
html body.v8 .v8-global .global-tiles .is-click:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8 .v8-global .global-tiles .finance-more{position:absolute;right:16px;top:14px;color:var(--v8-t3);font-size:var(--v8-fs-16);transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-global .global-tiles .is-click:hover .finance-more{transform:translateX(2px);color:var(--v8-t1)}
html body.v8 .v8-global section.finance-settle{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,2fr);gap:var(--v8-g-20);align-items:stretch;margin:0 0 20px;padding:0;background:none;border:0;box-shadow:none}
html body.v8 .v8-global section.finance-settle::before,html body.v8 .v8-global section.finance-settle::after{display:none}
html body.v8 .v8-global .finance-settle>.finance-settle-side{display:grid;align-content:start;gap:var(--v8-g-14);padding:18px 20px 16px;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-14);background:linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-global .finance-settle-intro{display:grid;gap:4px}
html body.v8 .v8-global .finance-settle-intro .finance-eyebrow{font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-global .finance-settle-intro h2{font:600 var(--v8-fs-18)/1.25 var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-global .finance-own-block{display:grid;gap:var(--v8-g-8);padding-top:12px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-global .finance-own-block h3{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2);margin:0}
html body.v8 .v8-global .finance-settle-side .finance-own-tabs{display:flex;flex-wrap:wrap;gap:var(--v8-g-2) var(--v8-g-10);width:auto;padding:0;margin:0;background:none;border:0;box-shadow:none;border-radius:0}
html body.v8 .v8-global .finance-settle-side .finance-own-tabs button{min-height:var(--v8-h-sm);padding:0 0 2px;border-radius:0;font:500 var(--v8-fs-12)/1.2 var(--v8-sans);white-space:normal;text-align:left}
html body.v8 .v8-global .finance-settle-side .finance-own-tabs button:hover{color:var(--v8-t2);background:none}
html body.v8 .v8-global .finance-settle-side .finance-own-tabs button[aria-pressed=true]::after{left:0;right:0}
html body.v8 .v8-global .finance-settle-side .finance-own{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-8)}
html body.v8 .v8-global .finance-settle-side .finance-own>div{display:grid;gap:4px;padding:10px 12px;border-radius:var(--v8-r-8);background:var(--v8-w3);box-shadow:inset 0 0 0 1px var(--v8-w4)}
html body.v8 .v8-global .finance-settle-side .finance-own dt{order:2;font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-global .finance-settle-side .finance-own dd{order:1;margin:0;font:600 var(--v8-fs-18)/1.1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-global .finance-settle-side .finance-own small{order:3;font-size:var(--v8-fs-11);color:var(--v8-t3);line-height:1.3}
html body.v8 .v8-global .finance-settle>.finance-partners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-20);margin:0}
html body.v8 .v8-global .finance-partner{transition:border-color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-global .finance-partner:has(.finance-partner-link):hover{border-color:var(--v8-w10)}
html body.v8 .v8-global .finance-partner-head .finance-more{font-size:var(--v8-fs-16);color:var(--v8-t3);transition:transform var(--v8-mid) var(--v8-ease),color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-global .finance-partner:hover .finance-partner-head .finance-more{transform:translateX(2px);color:var(--v8-t1)}
html body.v8 .v8-global .finance-partner-head small{margin-left:auto}
html body.v8 .v8-global .finance-partner-link{color:inherit;text-decoration:none}
html body.v8 .v8-global .finance-partner-link::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1}
html body.v8 .v8-global .finance-partner-link:focus-visible{outline:0}
html body.v8 .v8-global .finance-partner:has(.finance-partner-link:focus-visible){outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8 .v8-global .finance-partner .finance-note{order:1}
html body.v8 .v8-global .finance-partner .finance-big{order:2;margin:2px 0 0}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-global :is(.finance-more,.finance-partner,.global-tiles>.finance-metric){transition:none}html body.v8 .v8-global :is(.is-click:hover,.finance-partner:hover) .finance-more{transform:none}}
@media(max-width:1400px){html body.v8 .v8-global .finance-metrics.global-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-global section.finance-settle{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){html body.v8 .v8-global .finance-metrics.global-tiles,html body.v8 .v8-global .finance-settle>.finance-partners{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-global .global-tiles>.finance-metric+.finance-metric{border-left:1px solid rgba(255,255,255,.05)}}
/* r2 п.19 (11.10.2026): «Глобал → Контракты». Слева — контракты широкими низкими карточками (сетка 4 колонки: сумма ·
   получим · план ×2 / готово ×2 · получено · прибыль сейчас — порядок чтения тот же), справа — «Готовый хронометраж» узкой
   колонкой. Карточки одна под другой — вся карточка видна без прокрутки. */
html body.v8 .v8-global .contract-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v8-g-20);align-items:start;margin-top:12px}
html body.v8 .v8-global .contract-layout.has-side{grid-template-columns:minmax(0,1fr) clamp(260px,22vw,340px)}
html body.v8 .v8-global .contract-layout>.contract-list{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-14);margin:0}
html body.v8 .v8-global .contract-layout>.contract-clients{position:sticky;top:16px;margin:0}
html body.v8 .v8-global .contract-tile{padding:16px 20px}
html body.v8 .v8-global .contract-tile-head{margin-bottom:14px;align-items:center}
html body.v8 .v8-global .contract-tile-head>div{display:flex;align-items:baseline;gap:var(--v8-g-10);flex-wrap:wrap}
html body.v8 .v8-global .contract-tile-head h2{order:1}
html body.v8 .v8-global .contract-tile-head .finance-eyebrow{order:2;margin:0}
html body.v8 .v8-global .contract-tile .contract-figures{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch}
html body.v8 .v8-global .contract-tile .contract-figures>div{padding:0 16px;border-top:0;border-left:1px solid var(--v8-w4);align-content:start}
html body.v8 .v8-global .contract-tile .contract-figures>div:nth-child(1),html body.v8 .v8-global .contract-tile .contract-figures>div.is-wide:nth-child(4){border-left:0;padding-left:0}
html body.v8 .v8-global .contract-tile .contract-figures>div.is-wide{grid-column:span 2}
html body.v8 .v8-global .contract-tile .contract-figures>div:nth-child(n+4){margin-top:14px;padding-top:14px;position:relative}
html body.v8 .v8-global .contract-tile .contract-figures>div:nth-child(n+4)::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--v8-w4)}
html body.v8 .v8-global .contract-tile .contract-figures>div.is-footer{grid-column:span 2;margin:0;padding-top:0}
html body.v8 .v8-global .contract-tile .contract-figures>div.is-footer::after{display:none}
html body.v8 .v8-global .contract-tile .contract-plan-row{justify-content:space-between}
html body.v8 .v8-global .contract-tile .contract-breakdown{margin-top:8px}
html body.v8 .v8-global .contract-clients .finance-card-head{margin-bottom:8px}
html body.v8 .v8-global .contract-clients .contract-client-head{display:grid;gap:var(--v8-g-2)}
html body.v8 .v8-global .contract-clients .contract-client .contract-progress{padding:0 0 6px;grid-template-columns:minmax(0,1fr)}
html body.v8 .v8-global .contract-clients .contract-client .contract-progress i{left:0;right:0}
@media(max-width:1300px){html body.v8 .v8-global .contract-layout.has-side{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-global .contract-layout>.contract-clients{position:static}}
@media(max-width:900px){html body.v8 .v8-global .contract-tile .contract-figures{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-global .contract-tile .contract-figures>div{border-left:0;padding:0 12px 0 0}html body.v8 .v8-global .contract-tile .contract-figures>div.is-wide{grid-column:1/-1}html body.v8 .v8-global .contract-tile .contract-figures>div:nth-child(n+3){margin-top:14px;padding-top:14px;position:relative}html body.v8 .v8-global .contract-tile .contract-figures>div:nth-child(n+3)::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--v8-w4)}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-global .v8-soon>.finance-more{transition:none}html body.v8 .v8-global .v8-soon:hover>.finance-more{transform:none}}
@media(max-width:600px){html body.v8 .v8-wc .finance-ops .finance-op{grid-template-columns:14px minmax(0,1fr) auto}html body.v8 .v8-money .v8-ops-filter .finance-months{margin-left:0}html body.v8 .v8-money .finance-journal-foot .finance-sync{margin-left:0}}
/* r2 доп. (11.10.2026): возврат в проект у заголовка — тем же языком, что «← Все проекты», но заметнее */
html body.v8 :is(.v8-money,.v8-global) .v8-back{gap:var(--v8-g-8);min-height:var(--v8-h-it);margin:0 0 4px;font:500 var(--v8-fs-15)/1.2 var(--v8-sans);color:var(--v8-t2);transition:color var(--v8-fast) var(--v8-ease)}
html body.v8 :is(.v8-money,.v8-global) .v8-back:hover{color:var(--v8-t1)}
html body.v8 :is(.v8-money,.v8-global) .v8-back svg{width:16px;height:16px;transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 :is(.v8-money,.v8-global) .v8-back.v8-back-project svg{transform:none}
html body.v8 :is(.v8-money,.v8-global) .v8-back.v8-back-project:hover svg{transform:translateX(-2px)}
@media(prefers-reduced-motion:reduce){html body.v8 :is(.v8-money,.v8-global) .v8-back.v8-back-project:hover svg{transform:none}}
/* r2 доп.: «Участие в работах» — по шагам. Строка «проект · закрыть без оплаты · + добавить работу», герой, свёрнутая форма,
   главный список «Согласованные работы» компактными строками. */
html body.v8 .v8-money.payroll-work-screen .payroll-work-bar{display:flex;align-items:center;gap:var(--v8-g-12);flex-wrap:wrap;margin:0 0 16px}
html body.v8 .v8-money.payroll-work-screen .payroll-work-bar .payroll-project-picker{display:flex;align-items:center;gap:var(--v8-g-8);margin:0;padding:0;background:none;border:0;box-shadow:none}
html body.v8 .v8-money.payroll-work-screen .payroll-work-bar .payroll-project-picker select{width:280px;max-width:100%}
html body.v8 .v8-money.payroll-work-screen .payroll-work-acts{display:flex;align-items:center;gap:var(--v8-g-6);margin-left:auto}
html body.v8 .v8-money.payroll-work-screen .payroll-work-hero{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:var(--v8-g-20) var(--v8-g-28)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-hero .big{display:grid;gap:var(--v8-g-6)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin:0}
html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles>div{display:grid;gap:4px;padding:2px 18px;border-left:1px solid var(--v8-w5);min-width:0}
html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles dt{order:2;font-size:var(--v8-fs-13);color:var(--v8-t3);margin:0}
html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles dd{order:1;margin:0;font:600 var(--v8-fs-22)/1.1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums;white-space:nowrap}
/* форма: свёрнутая панель */
html body.v8 .v8-money.payroll-work-screen .payroll-work-panel{position:relative;margin:0 0 24px;padding:16px 20px;border:1px solid rgba(255,255,255,.06);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-panel[hidden]{display:none}
html body.v8 .v8-money.payroll-work-screen .payroll-work-panel-head{display:flex;align-items:center;gap:var(--v8-g-10);margin:0 0 14px}
html body.v8 .v8-money.payroll-work-screen .payroll-work-panel-head h2{font:600 var(--v8-fs-15)/1.3 var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-money.payroll-work-screen .payroll-work-panel-head .v8-ibt{margin-left:auto}
html body.v8 .v8-money.payroll-work-screen #payroll-work-form{display:grid;gap:var(--v8-g-14);margin:0}
html body.v8 .v8-money.payroll-work-screen .payroll-work-row{display:flex;flex-wrap:wrap;align-items:end;gap:var(--v8-g-12) var(--v8-g-20)}
html body.v8 .v8-money.payroll-work-screen .pw-f{display:grid;gap:4px;margin:0;font:400 var(--v8-fs-12)/1.3 var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-money.payroll-work-screen .pw-f>:is(select,input,textarea){width:220px;max-width:100%;margin:0}
html body.v8 .v8-money.payroll-work-screen .pw-person{display:flex;align-items:end;gap:var(--v8-g-8)}
html body.v8 .v8-money.payroll-work-screen .pw-share>input{width:84px;text-align:right;font-variant-numeric:tabular-nums}
html body.v8 .v8-money.payroll-work-screen .pw-note>textarea{width:100%;min-height:var(--v8-h-inp);resize:vertical}
/* серии — чипы */
html body.v8 .v8-money.payroll-work-screen .payroll-episode-picker{margin:0}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar{justify-content:flex-start;gap:var(--v8-g-14);margin:0 0 8px;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar strong{font-weight:400;color:var(--v8-t3)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar [data-episode-count]{color:var(--v8-t1);font:500 var(--v8-fs-12) var(--v8-mono)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar>div{gap:var(--v8-g-2)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar button{min-height:var(--v8-h-sm);padding:0 8px;background:none;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar button:hover:not(:disabled){color:var(--v8-t1);background:var(--v8-w4)}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-toolbar button:disabled{opacity:.4}
html body.v8 .v8-money.payroll-work-screen .payroll-episode-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--v8-g-6);max-height:none;overflow:visible;padding:0;border:0;background:none}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice{display:grid;justify-items:center;gap:4px;min-height:0;padding:0;margin:0;background:none;border-radius:0;outline:0}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice>label{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;height:var(--v8-h-it);padding:0 10px;border-radius:var(--v8-r-8);box-shadow:inset 0 0 0 1px var(--v8-w8);background:var(--v8-w2);color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-mono);cursor:pointer;transition:background var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice>label:hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice:has(:checked)>label{background:rgba(200,214,238,.12);box-shadow:inset 0 0 0 1px rgba(200,214,238,.5);color:var(--v8-t1)}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice:has(:focus-visible)>label{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice[data-unavailable]>label{background:none;box-shadow:inset 0 0 0 1px var(--v8-w4);color:var(--v8-t4);cursor:default;text-decoration:line-through}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice:hover,html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice:has(:checked){background:none}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice small{max-width:96px;margin:0;font-size:var(--v8-fs-11);line-height:1.2;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice small a{color:var(--v8-t3)}
html body.v8.aid-shell .v8-money.payroll-work-screen .payroll-episode-choice small a:hover{color:var(--v8-t1)}
/* расчёт рядом с сохранением */
html body.v8 .v8-money.payroll-work-screen .payroll-work-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--v8-g-20);padding-top:12px;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-preview{margin:0;padding:0;border:0;font-size:var(--v8-fs-13)}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-basis{margin:0 0 4px;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-person{padding-block:4px;gap:var(--v8-g-14);justify-content:flex-start}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-person>strong{margin-left:auto;font:600 var(--v8-fs-14) var(--v8-mono);color:var(--v8-t1)}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-person small{margin-top:2px;font-size:var(--v8-fs-12)}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-total{margin-top:4px;max-width:560px}
html body.v8 .v8-money.payroll-work-screen .payroll-preview-total>strong{font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-save{display:grid;justify-items:end;gap:var(--v8-g-6)}
html body.v8 .v8-money.payroll-work-screen .payroll-work-save .actions{margin:0;display:flex;gap:var(--v8-g-6)}
/* «Согласованные работы»: строки 36 px, повтор одной работы (второй исполнитель) — без подписи серии */
html body.v8 .v8-money.payroll-work-screen .payroll-agreed .payroll-section-heading{margin-top:8px}
html body.v8 .v8-money.payroll-work-screen .pw-list{padding:4px 8px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96))}
html body.v8 .v8-money.payroll-work-screen .pw-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(0,1.4fr) 64px 132px 140px 96px;gap:var(--v8-g-14);align-items:center;min-height:var(--v8-h-row);padding:0 10px;border-top:1px solid var(--v8-w4);font-size:var(--v8-fs-13);color:var(--v8-t2);border-radius:var(--v8-r-6)}
html body.v8 .v8-money.payroll-work-screen .pw-row.pw-head>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-money.payroll-work-screen .pw-row.pw-head{border-top:0;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-money.payroll-work-screen .pw-row.is-cont{border-top-color:transparent}
html body.v8 .v8-money.payroll-work-screen .pw-row:not(.pw-head):hover{background:var(--v8-w3)}
html body.v8 .v8-money.payroll-work-screen .pw-row>*{min-width:0}
html body.v8 .v8-money.payroll-work-screen .pw-row .n{text-align:right;font:500 var(--v8-fs-13) var(--v8-mono);font-variant-numeric:tabular-nums}
html body.v8 .v8-money.payroll-work-screen .pw-row.pw-head .n{font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .v8-money.payroll-work-screen .pw-row i{font-style:normal;color:var(--v8-t4)}
html body.v8 .v8-money.payroll-work-screen .pw-work{display:flex;align-items:baseline;gap:var(--v8-g-8);white-space:nowrap;overflow:hidden}
html body.v8 .v8-money.payroll-work-screen .pw-work b{font-weight:500;color:var(--v8-t1)}
html body.v8 .v8-money.payroll-work-screen .pw-work small{font-size:var(--v8-fs-12);color:var(--v8-t3);overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-money.payroll-work-screen .pw-who a{display:block;color:var(--v8-t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-money.payroll-work-screen .pw-who a:hover{color:var(--v8-t1)}
html body.v8 .v8-money.payroll-work-screen .pw-group-head{display:flex;align-items:center;min-height:var(--v8-h-row);padding:8px 10px 0;font:600 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-money.payroll-work-screen .pw-acts{display:flex;justify-content:flex-end;gap:var(--v8-g-2)}
html body.v8 .v8-money.payroll-work-screen .pw-acts form{margin:0;display:contents}
html body.v8 .v8-money.payroll-work-screen .pw-acts .notice{display:none}
html body.v8 .v8-money.payroll-work-screen .pw-act{display:inline-grid;place-items:center;width:var(--v8-h-btn);height:var(--v8-h-btn);min-height:0;padding:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);opacity:0;transition:opacity var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-money.payroll-work-screen .pw-act svg{width:14px;height:14px}
html body.v8 .v8-money.payroll-work-screen .pw-act:hover{background:var(--v8-w6);color:var(--v8-t1)}
html body.v8 .v8-money.payroll-work-screen .pw-row:is(:hover,:focus-within) .pw-act{opacity:1}
@media(hover:none){html body.v8 .v8-money.payroll-work-screen .pw-act{opacity:1}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-money.payroll-work-screen .pw-act{transition:none}}
@media(max-width:1250px){html body.v8 .v8-money.payroll-work-screen .payroll-work-hero{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles>div:first-child{border-left:0;padding-left:0}}
@media(max-width:900px){html body.v8 .v8-money.payroll-work-screen .pw-row{grid-template-columns:minmax(0,1fr) auto auto;row-gap:2px;padding:6px 8px}
 html body.v8 .v8-money.payroll-work-screen .pw-row.pw-head{display:none}
 html body.v8 .v8-money.payroll-work-screen .pw-row>.pw-work{grid-column:1/-1}
 html body.v8 .v8-money.payroll-work-screen .pw-row.is-cont>.pw-work{display:none}
 html body.v8 .v8-money.payroll-work-screen .pw-row>.pw-who{grid-column:1}
 html body.v8 .v8-money.payroll-work-screen .pw-row>:nth-child(5){grid-column:1}html body.v8 .v8-money.payroll-work-screen .pw-row>.pw-acts{grid-column:2/-1}
 html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--v8-g-14)}html body.v8 .v8-money.payroll-work-screen .payroll-work-tiles>div{border-left:0;padding-left:0}
 html body.v8 .v8-money.payroll-work-screen .payroll-work-foot{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-money.payroll-work-screen .payroll-work-save{justify-items:start}
 html body.v8 .v8-money.payroll-work-screen .payroll-work-acts{margin-left:0}
 html body.v8 .v8-money.payroll-work-screen .pw-f>:is(select,input,textarea){width:100%}html body.v8 .v8-money.payroll-work-screen .pw-person{width:100%}html body.v8 .v8-money.payroll-work-screen .pw-person>.pw-f:first-child{flex:1}html body.v8 .v8-money.payroll-work-screen .payroll-work-row>.pw-f{width:100%}}
/* r2 доп. (11.10.2026): отчёт партнёра — сверху крупно «получено от клиентов» и доля партнёра, плитки итогов, списки
   «лично оплатил / выводы / займы» с датами, по месяцам и свои деньги по контрактам. */
html body.v8 .v8-global.partner-report .partner-hero{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:var(--v8-g-20) var(--v8-g-28)}
html body.v8 .v8-global.partner-report .partner-hero .big{display:grid;gap:var(--v8-g-6)}
html body.v8 .v8-global.partner-report .partner-hero-tiles{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin:0}
html body.v8 .v8-global.partner-report .partner-hero-tiles>div{display:grid;gap:4px;padding:2px 18px;border-left:1px solid var(--v8-w5);min-width:0}
html body.v8 .v8-global.partner-report .partner-hero-tiles dt{order:2;font-size:var(--v8-fs-13);color:var(--v8-t3);margin:0}
html body.v8 .v8-global.partner-report .partner-hero-tiles dd{order:1;margin:0;font:600 var(--v8-fs-22)/1.1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums;white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-hero-tiles .is-own dt{color:var(--v8-t2)}
html body.v8 .v8-global.partner-report .partner-tiles{grid-template-columns:repeat(5,minmax(0,1fr));margin:0 0 20px}
html body.v8 .v8-global.partner-report .partner-tiles .finance-metric>p{order:3;margin:0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-global.partner-report .partner-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--v8-g-20);align-items:start;margin:0 0 20px}
html body.v8 .v8-global.partner-report .partner-side{display:grid;gap:var(--v8-g-20)}
html body.v8 .v8-global.partner-report .partner-list{margin:0}
html body.v8 .v8-global.partner-report .partner-rows{list-style:none;margin:0;padding:0;display:grid}
html body.v8 .v8-global.partner-report .partner-rows li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--v8-g-12);align-items:center;min-height:var(--v8-h-row);padding:4px 0;border-top:1px solid var(--v8-w4);font-size:var(--v8-fs-13)}
html body.v8 .v8-global.partner-report .partner-rows li:first-child{border-top:0}
html body.v8 .v8-global.partner-report .partner-rows time{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-rows .w{display:grid;min-width:0}
html body.v8 .v8-global.partner-report .partner-rows .w b{font-weight:500;color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-rows .w small{font-size:var(--v8-fs-12);color:var(--v8-t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-rows strong{font:500 var(--v8-fs-13) var(--v8-mono);color:var(--v8-t2);white-space:nowrap;font-variant-numeric:tabular-nums}
html body.v8 .v8-global.partner-report .partner-rows strong.is-in{color:rgba(95,168,107,.9)}
html body.v8 .v8-global.partner-report .partner-table{width:100%;border-collapse:collapse;font-size:var(--v8-fs-13)}
html body.v8 .v8-global.partner-report .partner-table :is(th,td){height:var(--v8-h-row);padding:0 8px;border-top:1px solid var(--v8-w4);text-align:left;color:var(--v8-t2);font-weight:400}
html body.v8 .v8-global.partner-report .partner-table thead th{border-top:0;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-global.partner-report .partner-table .n{text-align:right;font-family:var(--v8-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-table thead .n{font-family:var(--v8-sans)}
html body.v8 .v8-global.partner-report .partner-table tfoot :is(th,td){color:var(--v8-t1);font-weight:600;border-top:1px solid var(--v8-w8)}
@media(max-width:1400px){html body.v8 .v8-global.partner-report .partner-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1250px){html body.v8 .v8-global.partner-report .partner-hero{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-global.partner-report .partner-hero-tiles>div:first-child{border-left:0;padding-left:0}}
@media(max-width:1000px){html body.v8 .v8-global.partner-report .partner-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){html body.v8 .v8-global.partner-report .partner-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}html body.v8 .v8-global.partner-report .partner-hero-tiles{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--v8-g-14)}html body.v8 .v8-global.partner-report .partner-hero-tiles>div{border-left:0;padding-left:0}html body.v8 .v8-global.partner-report .partner-rows li{grid-template-columns:52px minmax(0,1fr) auto;gap:var(--v8-g-8)}html body.v8 .v8-global.partner-report .partner-table :is(th,td){padding:0 4px;font-size:var(--v8-fs-12)}html body.v8 .v8-global.partner-report .partner-table{display:block;overflow-x:auto;max-width:100%}html body.v8 .v8-global.partner-report .partner-tiles dd{font-size:var(--v8-fs-18)}html body.v8 .v8-global.partner-report .partner-tiles .finance-metric{padding:10px 12px 8px}html body.v8 .v8-global.partner-report .partner-tiles .finance-metric:nth-child(2n+1){border-left:0}}
/* отчёт партнёра (owner, 2026-10-11 «выровнять окошки»): плитки героя и ряда под ним — одна сетка из пяти колонок;
   окна в рядах одной высоты; «Оплачено лично» с расшифровкой из таблицы «Траты» — разворачивается */
html body.v8 .v8-global.partner-report .partner-hero{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;align-items:end}
html body.v8 .v8-global.partner-report .partner-hero .big{padding-right:18px}
html body.v8 .v8-global.partner-report .partner-hero-tiles{display:contents}
html body.v8 .v8-global.partner-report .partner-grid{align-items:stretch}
html body.v8 .v8-global.partner-report .partner-side{display:flex;flex-direction:column}
html body.v8 .v8-global.partner-report .partner-side>.finance-card:last-child{flex:1}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines{display:block;padding:0}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines summary{display:grid;grid-template-columns:64px minmax(0,1fr) auto 14px;gap:var(--v8-g-12);align-items:center;min-height:var(--v8-h-row);padding:4px 0;list-style:none;cursor:pointer}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines summary::-webkit-details-marker{display:none}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines summary svg{color:var(--v8-t4);transition:transform var(--v8-mid) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines summary:hover svg{color:var(--v8-t2)}
html body.v8 .v8-global.partner-report .partner-rows li.has-lines details[open] summary svg{transform:rotate(180deg)}
html body.v8 .v8-global.partner-report .partner-rows .partner-n{margin-left:var(--v8-g-8);font:400 var(--v8-fs-11) var(--v8-mono);font-style:normal;color:var(--v8-t4)}
html body.v8 .v8-global.partner-report .partner-sub{list-style:none;margin:0 0 8px 76px;padding:0 26px 0 0;border-left:1px solid var(--v8-w5)}
html body.v8 .v8-global.partner-report .partner-sub li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--v8-g-12);align-items:center;min-height:var(--v8-h-it);padding:0 0 0 14px;border-top:0;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-global.partner-report .partner-sub li:hover{background:var(--v8-w2)}
html body.v8 .v8-global.partner-report .partner-sub span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-global.partner-report .partner-sub strong{font-size:var(--v8-fs-12);color:var(--v8-t3)}
@media(max-width:1250px){html body.v8 .v8-global.partner-report .partner-hero{grid-template-columns:repeat(4,minmax(0,1fr))}html body.v8 .v8-global.partner-report .partner-hero .big{grid-column:1/-1;padding:0 0 14px}}
@media(max-width:700px){html body.v8 .v8-global.partner-report .partner-hero{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--v8-g-14)}html body.v8 .v8-global.partner-report .partner-sub{margin-left:0}html body.v8 .v8-global.partner-report .partner-sub li{grid-template-columns:52px minmax(0,1fr) auto;gap:var(--v8-g-8)}html body.v8 .v8-global.partner-report .partner-rows li.has-lines summary{grid-template-columns:52px minmax(0,1fr) auto 14px;gap:var(--v8-g-8)}}
html body.v8 .v8-global.partner-report .partner-tiles{padding-inline:24px}
html body.v8 .v8-global.partner-report .partner-rows:has(.has-lines)>li:not(.has-lines){grid-template-columns:64px minmax(0,1fr) auto 14px}
@media(max-width:700px){html body.v8 .v8-global.partner-report .partner-tiles{padding-inline:0}html body.v8 .v8-global.partner-report .partner-rows:has(.has-lines)>li:not(.has-lines){grid-template-columns:52px minmax(0,1fr) auto 14px}}
/* v8, волна C (11.10.2026): экран «Люди» — карточки людей (п. 3.7 + hover-панель п. 3.14), редактор человека (шапка —
   своя строка, поля «подпись слева — контроль справа», вдавленные поля, savebar), матрица прав тонкими тумблерами,
   пресеты, Telegram, VPN, лист ожидания — поверх прежних партиалов без правки их разметки. Под body.v8 .v8-people.
   Собирается в v8.css (assets.py, блок wave C). */
/* старые обёртки: ширину и отступы задаёт раздел */
html body.v8 .people-screen:has(.v8-people){max-width:var(--v8-page-max);margin:0}
html body.v8 .people-screen .v8-people .page-heading{display:none}
/* карточка человека: обёртка держит a.employee-row; скрытая строка прячет всю карточку — сетка не теряет форму */
html body.v8 .v8-people .employee-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--v8-g-20);margin:0}
html body.v8 .v8-people .v8-pcard{padding:0;aspect-ratio:auto;display:block;height:auto;min-height:calc(var(--v8-h-row) * 6 + 8px)}
html body.v8 .v8-people .v8-pcard .sp{top:64px}
@media(hover:none){html body.v8 .v8-people .v8-pcard .hd .v8-sa{margin-right:36px}html body.v8 .v8-people .v8-pcard{min-height:0}html body.v8 .v8-people .v8-pcard .sp{padding:0 20px 14px}}
html body.v8 .v8-people .v8-pcard:has(>.employee-row[hidden]){display:none}
html body.v8 .v8-people .v8-pcard>.employee-row{display:block;min-height:0;padding:18px 20px 16px;margin:0;border:0;background:none;color:var(--v8-t3);border-radius:inherit;gap:0}
html body.v8 .v8-people .v8-pcard>.employee-row:hover{background:none}
html body.v8 .v8-people .v8-pcard>.employee-row:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:-2px}
html body.v8 .v8-people .v8-pcard .hd{display:flex;align-items:center;gap:var(--v8-g-10);margin-bottom:16px;min-width:0;position:relative;z-index:5}
html body.v8 .v8-people .v8-pcard .hd .employee-avatar{width:36px;height:36px;min-width:36px;font-size:var(--v8-fs-12);flex:none}
html body.v8 .v8-people .v8-pcard .who{display:grid;gap:var(--v8-g-2);min-width:0;flex:1}
html body.v8 .v8-people .v8-pcard .nm{font:600 var(--v8-fs-15)/1.2 var(--v8-sans);color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-people .v8-pcard .rl{font-size:var(--v8-fs-13);color:var(--v8-t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-people .v8-pcard .v8-kv{display:grid}
html body.v8 .v8-people .v8-pcard .v8-kv b.t{font-family:var(--v8-sans);font-weight:400;max-width:180px;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-people .v8-pcard .sp .vc{text-decoration:none}
html body.v8 .v8-people .v8-pcard .more{right:8px;top:14px}
html body.v8 .v8-people #people-more{margin-top:12px}
html body.v8 .v8-people .people-tools{margin:0 0 16px}
html body.v8 .v8-people .people-tools a#people-scope{margin:0}
html body.v8 .v8-people #people-results{padding:0 0 8px}
html body.v8 .v8-people .v8-hero9 .sub9 a{color:var(--v8-t3)}
html body.v8 .v8-people .v8-hero9 .sub9 a b{color:rgba(201,162,39,.9);font-weight:500}
/* ---- редактор человека: шапка — своя строка, вкладки, секции с полями «подпись слева — контроль справа» ---- */
html body.v8 .v8-person .person-card{max-width:880px}
html body.v8 .v8-person .people-back{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);margin:0 0 8px;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-person .person-identity{display:flex;align-items:center;gap:var(--v8-g-14);padding:0 0 16px;margin:0 0 4px;position:relative}
html body.v8 .v8-person .person-identity::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8 .v8-person .person-identity>.employee-avatar{width:40px;height:40px}
html body.v8 .v8-person .person-identity h1{font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1);margin:0}
html body.v8 .v8-person .person-identity p{font-size:var(--v8-fs-14);color:var(--v8-t3);margin:4px 0 0}
html body.v8 .v8-person .person-state{font-size:var(--v8-fs-11);font-family:var(--v8-mono);letter-spacing:.06em;color:var(--v8-t3);height:20px;padding:0 7px;border-radius:var(--v8-r-4);box-shadow:inset 0 0 0 1px var(--v8-w10)}
html body.v8 .v8-person .person-state::before{width:5px;height:5px}
html body.v8 .v8-person .person-navigation{background:var(--v8-bg);padding-top:4px;margin-bottom:20px}
html body.v8 .v8-person .person-tabs{gap:var(--v8-g-2);border-bottom:0;position:relative;margin:0}
html body.v8 .v8-person .person-tabs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w5) 10%,var(--v8-w5) 90%,transparent)}
html body.v8 .v8-person .person-tabs a{position:relative;min-height:var(--v8-h-row);padding:0 10px;border:0;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-person .person-tabs a[aria-current]{color:var(--v8-t1);border:0}
html body.v8 .v8-person .person-tabs a[aria-current]::after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:1px;z-index:1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent)}
html body.v8 .v8-person .person-nav-context strong{font-size:var(--v8-fs-13);color:var(--v8-t1)}
html body.v8 .v8-person .person-nav-context span{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-person .person-section{position:relative;padding:16px 20px;margin:0 0 20px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:radial-gradient(min(520px,85%) min(280px,85%) at 0 0,rgba(200,214,238,0.0400) 0%,rgba(200,214,238,0.0376) 11.7%,rgba(200,214,238,0.0314) 23.4%,rgba(200,214,238,0.0230) 35.1%,rgba(200,214,238,0.0141) 46.8%,rgba(200,214,238,0.0063) 58.5%,rgba(200,214,238,0.0011) 70.2%,rgba(200,214,238,0.0000) 78%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-person .person-section>h2{font:600 var(--v8-fs-15)/1.3 var(--v8-sans);color:var(--v8-t1);margin:0 0 10px}
html body.v8 .v8-person .person-section .fields,html body.v8 .v8-person .access-extra .fields{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:none;margin:0 0 8px}
html body.v8 .v8-person :is(.person-section,.person-fold) .fields>label,html body.v8 .v8-person .person-section>form>label:not(.check){display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,1fr);align-items:center;gap:var(--v8-g-10) var(--v8-g-20);min-height:var(--v8-h-row);padding:6px 0;font-size:var(--v8-fs-13);color:var(--v8-t3);position:relative}
html body.v8 .v8-person :is(.person-section,.person-fold) .fields>label+label::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-person :is(.person-section,.person-fold) .fields>label>:is(input,select,textarea){max-width:420px}
html body.v8 .v8-person .person-savebar{padding:12px 0 0;margin-top:12px;border-top:1px solid var(--v8-w4);font-size:var(--v8-fs-13)}
html body.v8 .v8-person .person-savebar>div{gap:var(--v8-g-6)}
html body.v8 .v8-person .person-savebar button[type=submit]{position:relative;background:transparent;box-shadow:none;color:var(--v8-t2)}
html body.v8 .v8-person .person-savebar button[type=submit]::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.v8 .v8-person .person-savebar button[type=submit]:disabled::after{opacity:.25}
html body.v8 .v8-person .person-fold{padding:4px 0;border-top:1px solid var(--v8-w4)}
html body.v8 .v8-person .person-links{gap:var(--v8-g-6);margin-top:12px}
html body.v8 .v8-person .person-destination{display:flex;align-items:center;justify-content:space-between;min-height:var(--v8-h-row);padding:6px 10px;margin:0 0 12px;border:0;border-radius:var(--v8-r-8);background:var(--v8-w2);font-weight:500;color:var(--v8-t2)}
html body.v8 .v8-person .person-destination:hover{background:var(--v8-w3)}
html body.v8 .v8-person .person-danger{margin-top:24px;padding:4px 12px;border:1px solid rgba(255,110,90,.22);border-radius:var(--v8-r-8)}
html body.v8 .v8-person .person-danger>summary{color:rgba(255,150,135,.95)}
html body.v8 .v8-person .people-more{border-top:1px solid var(--v8-w4);padding:4px 0;margin-top:8px}
html body.v8 .v8-person #telegram-contact{max-width:none}
html body.v8 .v8-person .person-dialog{background:var(--v8-panel)}
@media(max-width:600px){html body.v8 .v8-person :is(.person-section,.person-fold) .fields>label,html body.v8 .v8-person .person-section>form>label:not(.check){grid-template-columns:minmax(0,1fr);gap:var(--v8-g-5)}html body.v8 .v8-person .person-section{padding:14px}html body.v8 .v8-person .person-identity h1{font-size:var(--v8-fs-22)}}
/* ---- доступ: шаблон и матрица прав (строки разделов × права), тумблеры тонкой линией ---- */
html body.v8 .v8-wc .access-panel{display:grid;gap:var(--v8-g-14);margin:0}
html body.v8 .v8-wc .access-template{padding:16px 20px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-wc .access-template-row{display:flex;align-items:center;gap:var(--v8-g-14);flex-wrap:wrap}
html body.v8 .v8-wc .access-template-pick{display:grid;grid-template-columns:auto minmax(200px,320px);align-items:center;gap:var(--v8-g-10);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .access-total{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-wc .access-note{display:none}
html body.v8 .v8-wc .access-diff{margin:8px 0 0;font-size:var(--v8-fs-12);color:var(--v8-t3);display:grid;gap:var(--v8-g-2)}
html body.v8 .v8-wc .access-diff .on{color:rgba(95,168,107,.9)}html body.v8 .v8-wc .access-diff .off{color:rgba(201,132,104,.95)}
html body.v8 .v8-wc .rights{display:grid;gap:var(--v8-g-14)}
html body.v8 .v8-wc .rights-section{padding:12px 20px 10px;margin:0;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-person .person-card .rights-section{border:1px solid rgba(255,255,255,.045);padding:12px 20px 10px}
html body.v8 .v8-wc .rights-head{display:flex;align-items:baseline;gap:var(--v8-g-10);margin:0 0 6px}
html body.v8 .v8-wc .rights-head h3{font:600 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-wc .rights-head p{display:none}
html body.v8 .v8-wc .rights-count{margin-left:auto;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-wc .rights-row{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:var(--v8-g-14);min-height:var(--v8-h-row);padding:4px 0;border-top:1px solid var(--v8-w3)}
html body.v8 .v8-wc .rights-row:first-of-type{border-top:0}
html body.v8 .v8-wc .rights-text{display:grid;gap:var(--v8-g-1);min-width:0}
html body.v8 .v8-wc .rights-label{font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-wc .rights-text small{display:none}
html body.v8 .v8-wc .rights-matrix{margin:4px 0 8px}
html body.v8 .v8-wc .rights-matrix :is(th,td){height:var(--v8-h-row)}
html body.v8 .v8-wc .rights-matrix td{text-align:center;width:120px}
html body.v8 .v8-wc .rights-matrix td label.check{justify-content:center;min-height:0}
html body.v8 .v8-wc .rights-none{color:var(--v8-t4)}
/* пресеты: список слева, шаблон справа */
html body.v8 .access-settings.v8-wc{max-width:var(--v8-page-max);margin:0}
html body.v8 .access-settings.v8-wc .page-heading,html body.v8 .access-settings.v8-wc .access-back{display:none}
html body.v8 .v8-wc .preset-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--v8-g-20);align-items:start}
html body.v8 .v8-wc .preset-list{display:grid;gap:var(--v8-g-14);position:sticky;top:16px}
html body.v8 .v8-wc .preset-group h2{font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4);margin:0 0 4px;padding:0 10px}
html body.v8 .v8-wc .preset-item{display:grid;gap:var(--v8-g-1);min-height:var(--v8-h-row);padding:6px 10px;border-radius:var(--v8-r-8);color:var(--v8-t2);font-size:var(--v8-fs-13);position:relative;border:0;background:none}
html body.v8 .v8-wc .preset-item small{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-wc .preset-item:hover{background:var(--v8-w3)}
html body.v8 .v8-wc .preset-item[aria-current]{background:var(--v8-w4);color:var(--v8-t1)}
html body.v8 .v8-wc .preset-item[aria-current]::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:var(--v8-red)}
html body.v8 .v8-wc .preset-item.preset-new{color:var(--v8-t3)}
html body.v8 .v8-wc .preset-form{min-width:0;margin:0}
html body.v8 .v8-wc .preset-meta{display:grid;gap:4px;margin:10px 0 0;font-size:var(--v8-fs-13)}
html body.v8 .v8-wc .preset-meta>div{display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,1fr);gap:var(--v8-g-20)}
html body.v8 .v8-wc .preset-meta dt{color:var(--v8-t3)}html body.v8 .v8-wc .preset-meta dd{margin:0;color:var(--v8-t2)}
html body.v8 .v8-wc .preset-meta dd .muted{display:none}
html body.v8 .v8-wc .access-block{margin-top:24px;padding:16px 20px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-wc .access-block>h2{font:600 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1);margin:0 0 10px}
html body.v8 .v8-wc .access-block>p.muted{display:none}
html body.v8 .v8-wc .role-defaults{display:grid;gap:0}
html body.v8 .v8-wc .role-default-row{display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,320px);align-items:center;gap:var(--v8-g-20);min-height:var(--v8-h-row);padding:4px 0;border-top:1px solid var(--v8-w3);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .role-default-row:first-child{border-top:0}
@media(max-width:900px){html body.v8 .v8-wc .preset-layout{grid-template-columns:minmax(0,1fr)}html body.v8 .v8-wc .preset-list{position:static}html body.v8 .v8-wc .role-default-row,html body.v8 .v8-wc .preset-meta>div,html body.v8 .v8-wc .access-template-pick{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-5)}}
/* VPN, Telegram, лист ожидания: старые экраны в шапке раздела */
html body.v8 .vpn-screen.v8-wc,html body.v8 .waitlist-screen.v8-wc{max-width:var(--v8-page-max);margin:0}
html body.v8 .v8-wc .vpn-back,html body.v8 .v8-wc .vpn-head h1,html body.v8 .waitlist-screen.v8-wc>.people-back,html body.v8 .waitlist-screen.v8-wc>.page-heading{display:none}
html body.v8 .v8-wc .vpn-head{display:flex;align-items:center;gap:var(--v8-g-14);flex-wrap:wrap;margin:0 0 12px}
html body.v8 .v8-wc .vpn-head-side{margin-left:auto;display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap}
html body.v8 .v8-wc .vpn-server{font-size:var(--v8-fs-13);color:var(--v8-t3);display:inline-flex;align-items:center;gap:var(--v8-g-6)}
html body.v8 .v8-wc .vpn-list{display:grid;gap:0}
html body.v8 .v8-wc .vpn-row{display:grid;grid-template-columns:36px minmax(0,1.2fr) minmax(0,1fr) auto;gap:var(--v8-g-14);align-items:center;min-height:calc(var(--v8-h-row) + 16px);padding:6px 10px;border:0;border-top:1px solid var(--v8-w4);border-radius:0;background:none}
html body.v8 .v8-wc .vpn-row:first-child{border-top:0}
html body.v8 .v8-wc .vpn-row:hover{background:var(--v8-w2)}
html body.v8 .v8-wc .vpn-who{display:grid;gap:var(--v8-g-1);min-width:0}
html body.v8 .v8-wc .vpn-who strong{font-weight:500;color:var(--v8-t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-wc .vpn-who small,html body.v8 .v8-wc .vpn-state small{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-wc .vpn-state{display:grid;gap:var(--v8-g-2);min-width:0}
html body.v8 .v8-wc .vpn-acts{display:flex;gap:var(--v8-g-6);align-items:center;justify-content:flex-end;flex-wrap:wrap}
html body.v8 .v8-wc .vpn-acts form{margin:0}
html body.v8 .v8-wc .vpn-open{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-wc .vpn-guests{margin-top:32px}
html body.v8 .v8-wc .vpn-guests>h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1);margin:0 0 12px}
html body.v8 .v8-wc .vpn-guests>.vpn-meta{display:none}
html body.v8 .v8-wc .vpn-guest-new{display:flex;gap:var(--v8-g-6);align-items:center;flex-wrap:wrap;margin:0 0 12px;max-width:520px}
html body.v8 .v8-wc .vpn-guest-new input{flex:1 1 200px}
html body.v8 .v8-wc .vpn-picker{position:relative}
html body.v8 .v8-wc .vpn-picker>summary.button{list-style:none;background:transparent;box-shadow:none;color:var(--v8-t2);position:relative}
html body.v8 .v8-wc .vpn-picker>summary.button::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;width:auto;margin:0;border:0;transform:none;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.v8 .v8-wc .vpn-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:216px;padding:4px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop)}
html body.v8 .v8-wc .vpn-menu p{font-size:var(--v8-fs-12);color:var(--v8-t4);padding:6px 8px 2px;margin:0}
html body.v8 .v8-wc .vpn-menu form{margin:0}
html body.v8 .v8-wc .vpn-menu button{width:100%;justify-content:flex-start;background:none;box-shadow:none;color:var(--v8-t2);font-weight:400}
@media(max-width:700px){html body.v8 .v8-wc .vpn-row{grid-template-columns:36px minmax(0,1fr)}html body.v8 .v8-wc .vpn-state,html body.v8 .v8-wc .vpn-acts{grid-column:2}html body.v8 .v8-wc .vpn-acts{justify-content:flex-start}}
html body.v8 .v8-wc .waitlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--v8-g-20)}
html body.v8 .v8-wc .waitlist-entry{display:grid;gap:var(--v8-g-14)}
html body.v8 .v8-wc .waitlist-form{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-10)}
html body.v8 .v8-wc .waitlist-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-6)}
html body.v8 .v8-wc .waitlist-empty{padding:12px 0;color:var(--v8-t3)}
html body.v8 .v8-wc .waitlist-done h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-wc .waitlist-done-row{font-size:var(--v8-fs-13);border-bottom:1px solid var(--v8-w4)}
html body.v8 .v8-wc.v8-tg .tg-heading{display:none}
html body.v8 .v8-wc.v8-tg .tg-browser{padding:0;overflow:hidden}
/* длинные имена: две строки вместо обрезки (п. 2.10) */
html body.v8 .v8-wc.v8-people .v8-pcard .hd .nm{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;text-overflow:clip}
html body.v8 .v8-wc.v8-people .v8-pcard .hd .rl{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
html body.v8 .v8-wc .vpn-who strong{white-space:normal;overflow-wrap:anywhere}
/* r2 п.13 (11.10.2026): Telegram — шарики. Круг с тихим стеклом и тонкой линией (цвет роли — едва), аватарка из Telegram
   на весь внутренний круг; выбранный — мягкое холодное кольцо вместо белой квадратной рамки; фокус с клавиатуры — круглый. */
html body.v8 .v8-wc.v8-tg .tg-bubble-field{background:radial-gradient(ellipse 60% 55% at 50% 50%,rgba(200,214,238,.035) 0%,rgba(200,214,238,.024) 30%,rgba(200,214,238,.010) 60%,rgba(200,214,238,0) 85%)}
html body.v8 .v8-wc.v8-tg .tg-bubble{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--v8-g-6);padding:8px;border:0;border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(200,214,238,.075),rgba(22,25,29,.55) 72%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bubble-color) 22%,rgba(255,255,255,.06));color:var(--v8-t2);outline:0;transition:box-shadow var(--v8-mid) var(--v8-ease),background var(--v8-mid) var(--v8-ease),opacity var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-wc.v8-tg .tg-bubble:hover{background:radial-gradient(circle at 35% 25%,rgba(200,214,238,.11),rgba(22,25,29,.55) 72%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bubble-color) 35%,rgba(255,255,255,.10))}
html body.v8 .v8-wc.v8-tg .tg-bubble[aria-pressed=true]{z-index:5;border:0;background:radial-gradient(circle at 35% 25%,rgba(200,214,238,.13),rgba(22,25,29,.6) 72%);box-shadow:inset 0 0 0 1px rgba(200,214,238,.5),0 0 0 4px rgba(200,214,238,.07),0 0 28px rgba(200,214,238,.10)}
html body.v8 .v8-wc.v8-tg .tg-bubble:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:3px}
html body.v8 .v8-wc.v8-tg .tg-bubble .tg-avatar{width:52%;height:auto;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.04);color:var(--bubble-color);font:500 var(--v8-fs-16) var(--v8-sans)}
html body.v8 .v8-wc.v8-tg .tg-bubble .bubble-name{color:var(--v8-t2);font-weight:500}
html body.v8 .v8-wc.v8-tg .tg-chat .tg-avatar{width:36px;height:36px;background:rgba(255,255,255,.05);color:var(--v8-t2)}
html body.v8 .v8-wc.v8-tg .tg-chat.tg-unrelated{opacity:.45}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-wc.v8-tg .tg-bubble{transition:none}}
/* r2 п.17 (11.10.2026): «Сотрудники» — один список строками. Подписи столбцов — один раз; строка 52 px: имя 14 px,
   под ним логин и роль; шаблон, сериалы, ставка, Telegram, VPN, статус; действия — значки в конце строки при наведении. */
html body.v8 .v8-people .people-table{--pcols:minmax(240px,1.6fr) minmax(0,1fr) 128px 112px minmax(0,1fr) 52px 44px;display:block;padding:6px 8px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-people .people-thead{display:grid;grid-template-columns:var(--pcols) 124px;gap:var(--v8-g-14);align-items:center;min-height:var(--v8-h-row);padding:0 12px;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-people .people-thead>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-people .people-thead .n,html body.v8 .v8-people .people-row .c-num{text-align:right}
html body.v8 .v8-people .people-thead>span:nth-child(5),html body.v8 .v8-wc.v8-people .people-table .people-row .c-tg{padding-left:12px}
html body.v8 .v8-wc.v8-people .people-table .people-row{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:var(--v8-g-14);align-items:center;min-height:var(--v8-h-row2);height:auto;aspect-ratio:auto;padding:0 12px;margin:0;border:0;border-top:1px solid var(--v8-w4);border-radius:var(--v8-r-8);background:none;box-shadow:none;overflow:visible;transition:background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-wc.v8-people .people-table .people-row:has(>.employee-row[hidden]){display:none}
html body.v8 .v8-wc.v8-people .people-table .people-row::before,html body.v8 .v8-wc.v8-people .people-table .people-row::after{display:none}
html body.v8 .v8-wc.v8-people .people-table .people-row:hover,html body.v8 .v8-wc.v8-people .people-table .people-row:focus-within{background:var(--v8-w3)}
html body.v8 .v8-wc.v8-people .people-table .people-row>.employee-row{display:grid;grid-template-columns:var(--pcols);gap:var(--v8-g-14);align-items:center;min-height:var(--v8-h-row2);padding:0;color:var(--v8-t2);font-size:var(--v8-fs-13)}
html body.v8 .v8-wc.v8-people .people-table .people-row>.employee-row:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px;border-radius:var(--v8-r-6)}
html body.v8 .v8-wc.v8-people .people-table .people-row .hd{margin:0;gap:var(--v8-g-12)}
html body.v8 .v8-wc.v8-people .people-table .people-row .hd .employee-avatar{width:32px;height:32px;min-width:32px}
html body.v8 .v8-wc.v8-people .people-table .people-row .hd .nm{display:block;font:500 var(--v8-fs-14)/1.3 var(--v8-sans);color:var(--v8-t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}
html body.v8 .v8-wc.v8-people .people-table .people-row .hd .rl{font:400 var(--v8-fs-12)/1.3 var(--v8-sans);color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .v8-wc.v8-people .people-table .people-row .hd .rl .ro{color:var(--v8-t2)}
html body.v8 .v8-wc.v8-people .people-table .people-row .c{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--v8-t2)}
html body.v8 .v8-wc.v8-people .people-table .people-row .c-num{font:500 var(--v8-fs-13) var(--v8-mono);font-variant-numeric:tabular-nums}
html body.v8 .v8-wc.v8-people .people-table .people-row .c-tg{color:var(--v8-t3)}
html body.v8 .v8-wc.v8-people .people-table .people-row .c i{font-style:normal;color:var(--v8-t4)}
html body.v8 .v8-wc.v8-people .people-table .people-row .v8-sa{justify-self:end}
html body.v8 .v8-wc.v8-people .people-table .people-row.is-off .employee-row{opacity:.55}
html body.v8 .v8-wc.v8-people .people-table .people-row .veil{display:none}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp{position:static;display:flex;flex-direction:row;justify-content:flex-end;gap:var(--v8-g-2);pointer-events:auto;top:auto;right:auto;padding:0}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc{width:var(--v8-h-btn);min-width:0;height:var(--v8-h-btn);padding:0;justify-content:center;background:transparent;border-radius:var(--v8-r-6);color:var(--v8-t3);opacity:0;transform:translateX(6px);transition:opacity var(--v8-fast) var(--v8-ease),transform var(--v8-mid) var(--v8-ease),background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease);transition-delay:calc(var(--k,0)*25ms)}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc svg{width:14px;height:14px;color:currentColor}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc .vl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc:hover{background:var(--v8-w6);color:var(--v8-t1)}
html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc.danger:hover{color:rgba(255,130,110,.95)}
html body.v8 .v8-wc.v8-people .people-table .people-row:is(:hover,:focus-within,.open) .sp .vc{opacity:1;transform:none}
html body.v8 .v8-wc.v8-people .people-table .people-row .more{display:none}
@media(hover:none){html body.v8 .v8-wc.v8-people .people-table .people-row .sp{display:flex}html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-wc.v8-people .people-table .people-row .sp .vc{transform:none;transition:opacity var(--v8-fast) linear}}
@media(max-width:1600px){html body.v8 .v8-people .people-table{--pcols:minmax(220px,1.5fr) minmax(0,1fr) 128px 104px minmax(0,1fr) 44px}html body.v8 .v8-people .people-thead>span:nth-child(6),html body.v8 .v8-wc.v8-people .people-table .people-row .c-vpn{display:none}}
@media(max-width:1180px){html body.v8 .v8-people .people-table{--pcols:minmax(200px,1.5fr) minmax(0,1fr) 120px minmax(0,1fr) 44px}html body.v8 .v8-people .people-thead>span:nth-child(4),html body.v8 .v8-wc.v8-people .people-table .people-row .c-num+.c-num{display:none}html body.v8 .v8-people .people-thead>span:nth-child(5),html body.v8 .v8-wc.v8-people .people-table .people-row .c-tg{padding-left:0}}
/* телефон: строка — имя/роль и статус, ниже — заполненные поля одной строкой (подпись мелко), действия значками */
@media(max-width:900px){html body.v8 .v8-people .people-thead{display:none}html body.v8 .v8-people .people-table{padding:4px 6px}
 html body.v8 .v8-wc.v8-people .people-table .people-row{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-4);padding:10px 8px}
 html body.v8 .v8-wc.v8-people .people-table .people-row>.employee-row{display:flex;flex-wrap:wrap;gap:var(--v8-g-4) var(--v8-g-12);min-height:0}
 html body.v8 .v8-wc.v8-people .people-table .people-row .hd{flex:1 1 calc(100% - 60px);min-width:0}
 html body.v8 .v8-wc.v8-people .people-table .people-row .v8-sa{order:1;align-self:center}
 html body.v8 .v8-wc.v8-people .people-table .people-row .c{order:2;display:inline-flex;gap:var(--v8-g-4);align-items:baseline;padding:0;font-size:var(--v8-fs-12);color:var(--v8-t2)}
 html body.v8 .v8-wc.v8-people .people-table .people-row .c.is-empty{display:none}
 html body.v8 .v8-wc.v8-people .people-table .people-row .c-num::before{content:attr(data-l);color:var(--v8-t3);font:400 var(--v8-fs-12) var(--v8-sans)}
 html body.v8 .v8-wc.v8-people .people-table .people-row .c-num+.c-num{display:inline-flex}
 html body.v8 .v8-wc.v8-people .people-table .people-row .sp{justify-content:flex-start;padding-left:38px}}
/* v8, волна C (11.10.2026): экран «Настройки» — левая навигация групп 200 px, строки «подпись слева — контроль справа»,
   тумблер-кнопка тонкой линией для прежних форм вкл/выкл, опасная зона; страницы-интеграции (Диск, Telegram-бот, рабочий
   аккаунт, Апскейл, ИИ-стажёр, Группы, журнал, цвета, аккаунт, вход) — в правой колонке без правки их форм.
   Собирается в v8.css (assets.py, блок wave C). */
html body.v8 .wrap:has(.v8-settings),html body.v8 main:has(.v8-settings){max-width:none}
html body.v8 .v8-settings{max-width:var(--v8-page-max)}
html body.v8 .v8-settings .v8-set{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--v8-g-28);align-items:start}
html body.v8 .v8-settings .v8-set-nav{position:sticky;top:16px;display:grid;gap:var(--v8-g-14)}
html body.v8 .v8-settings .v8-set-nav .grp{display:grid;gap:var(--v8-g-1)}
html body.v8 .v8-settings .v8-set-nav .v8-cap{padding:0 10px 4px;color:var(--v8-t3)}
html body.v8 .v8-settings .v8-set-nav a{position:relative;display:flex;align-items:center;min-height:var(--v8-h-it);padding:0 10px;border-radius:var(--v8-r-6);color:var(--v8-t3);font-size:var(--v8-fs-13);transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-settings .v8-set-nav a:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8 .v8-settings .v8-set-nav a[aria-current]{color:var(--v8-t1);background:var(--v8-w4)}
html body.v8 .v8-settings .v8-set-nav a[aria-current]::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:var(--v8-red)}
html body.v8 .v8-settings .v8-set-main{min-width:0;display:block}
html body.v8 .v8-settings .v8-set-main>.v8-frows,html body.v8 .v8-settings .v8-set-main>.v8-hero9{margin-bottom:8px}
html body.v8 .v8-settings .v8-set-main .v8-frows{padding:4px 10px}
html body.v8 .v8-settings .v8-set-h{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1);margin:0 0 12px}
html body.v8 .v8-settings .v8-set-main :is(section.panel,.panel){max-width:none;margin:0 0 16px}
html body.v8 .v8-settings .v8-set-main .page-heading{display:block;margin:0}
html body.v8 .v8-settings .v8-set-main .page-heading .actions{margin-top:0}
html body.v8 .v8-settings .v8-set-main .card{max-width:none;padding:16px 20px;border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-settings .v8-set-main .card .sec h2{font:600 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-settings .v8-set-main form[action="/app/account/password"] label{display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,1fr);align-items:center;gap:var(--v8-g-20)}
html body.v8 .v8-settings .v8-set-main .language-switch{display:inline-flex;align-items:center;gap:var(--v8-g-6);margin:0}
html body.v8 .v8-settings .v8-set-main .language-switch>span{display:none}
html body.v8 .v8-settings .v8-set-main .language-switch [role=group]{display:inline-flex;gap:var(--v8-g-2)}
html body.v8 .v8-settings .v8-set-main .language-switch button{background:transparent;box-shadow:none;color:var(--v8-t3);position:relative}
html body.v8 .v8-settings .v8-set-main .language-switch button[aria-pressed=true]{color:var(--v8-t1)}
html body.v8 .v8-settings .v8-set-main .language-switch button[aria-pressed=true]::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
html body.v8 .v8-settings .v8-frow form{margin:0}
/* тумблер-кнопка (прежние формы вкл/выкл): 30×16, вдавленная дорожка, оранжевая линия под включённым */
html body.v8 .v8-settings button.v8-swb{position:relative;width:30px;min-width:30px;height:16px;min-height:0;padding:0;border:0;border-radius:var(--v8-r-pill,99px);background:var(--v8-field);box-shadow:var(--v8-deboss);cursor:pointer}
html body.v8 .v8-settings button.v8-swb i{position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--v8-t3);transition:transform var(--v8-mid) var(--v8-ease),background var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-settings button.v8-swb.on i{transform:translateX(14px);background:var(--v8-t1)}
html body.v8 .v8-settings button.v8-swb.on::after{content:"";position:absolute;left:22%;right:22%;bottom:-3px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.9),transparent)}
html body.v8 .v8-settings button.v8-swb:hover{background:var(--v8-field)}
html body.v8 .v8-settings .v8-danger .v8-frow{padding:6px 0}
html body.v8 .v8-settings .v8-danger .v8-inp:not(#v8){max-width:200px}
html body.v8 .v8-settings .v8-danger button.v8-btn.danger{color:rgba(255,150,135,.95)}
/* страницы ИИ-стажёра, групп, журнала: их собственные сетки — в правой колонке */
html body.v8 .v8-settings :is(.intern,.groups,.uj){max-width:none}
html body.v8 .v8-settings :is(.intern,.groups,.uj) .page-heading{display:flex;align-items:center;gap:var(--v8-g-14);flex-wrap:wrap;margin:0 0 12px}
html body.v8 .v8-settings :is(.intern,.groups,.uj) .page-heading .v8-set-h{margin:0}
html body.v8 .v8-settings .clr-row{display:flex;align-items:center;gap:var(--v8-g-14);min-height:var(--v8-h-row);padding:6px 0;border-bottom:1px solid var(--v8-w4)}
html body.v8 .v8-settings .clr-lbl{font:400 var(--v8-fs-13) var(--v8-sans);min-width:150px;color:var(--v8-t2)}
html body.v8 .v8-settings .clr-hex:not(#v8){width:104px}
html body.v8 .v8-settings .pn,html body.v8 .v8-settings .legend-prev{border-radius:var(--v8-r-12)}
@media(max-width:900px){html body.v8 .v8-settings .v8-set{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-14)}html body.v8 .v8-settings .v8-set-nav{position:static;display:flex;gap:var(--v8-g-2);overflow-x:auto;scrollbar-width:none;padding-bottom:4px}html body.v8 .v8-settings .v8-set-nav .grp{display:flex;gap:var(--v8-g-2);flex:none}html body.v8 .v8-settings .v8-set-nav .v8-cap{display:none}html body.v8 .v8-settings .v8-set-nav a{white-space:nowrap;flex:none}html body.v8 .v8-settings .v8-set-nav a[aria-current]::before{left:20%;right:20%;top:auto;bottom:0;width:auto;height:1px}}
@media(max-width:600px){html body.v8 .v8-settings .v8-set-main form[action="/app/account/password"] label{grid-template-columns:minmax(0,1fr);gap:var(--v8-g-5)}}
/* v8, волна D (11.10.2026): «Файлы» — рабочие папки (/files, _v8_files.html) и «Финалы» (/materials). Шапка = проект +
   корень, три корня вкладками, навигация как в проводнике: крошки над сеткой, папки — плитки 2:1 в той же сетке,
   файлы — квадратные плитки (видео в финальных папках 9:16), выделение → липкая панель действий СВЕРХУ сетки,
   действия файла — «⋯» на плитке и правый клик (v8.js, _v8_files_js.html), загрузка — вдавленная зона.
   Разметка и JS рабочих файлов (_file_browser_js.html) и финалов (materials.html) прежние: все id и data-атрибуты на месте,
   здесь только вид. Размеры вне старой шкалы — токенами _v8_tokens.html. */
html body.v8 .v8-files{max-width:none;position:relative;isolation:isolate;scroll-margin-top:20px}
/* шапка: имя проекта (переключатель — поповер), строка контекста «корень · папка», действия справа */
html body.v8 .v8-fhead{display:flex;align-items:flex-start;gap:var(--v8-g-20);flex-wrap:wrap;margin:0 0 14px}
html body.v8 .v8-fhead .r{margin-left:auto;display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
html body.v8 .v8-pswitch>summary{display:inline-flex;align-items:center;gap:var(--v8-g-6);cursor:pointer;border-radius:var(--v8-r-8);padding:0 6px 0 0;margin-left:-2px;color:var(--v8-t3)}
html body.v8 .v8-pswitch>summary:hover{background:var(--v8-w3)}
html body.v8 .v8-pswitch>summary h1{display:inline;padding-left:2px}
html body.v8 .v8-pswitch>summary svg{margin-top:6px;flex:none}
html body.v8 .v8-pswitch .v8-pop{max-height:min(60vh,420px);overflow:auto;min-width:260px}
html body.v8 .v8-pswitch .v8-pop a{overflow:hidden;text-overflow:ellipsis;display:flex}
html body.v8 .v8-pswitch .v8-pop a[aria-current]{color:var(--v8-t1);background:var(--v8-w4)}
html body.v8 .v8-pswitch .v8-pop a[aria-current]::after{content:"";margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--v8-red);flex:none}
html body.v8 .v8-roots{margin:0 0 14px;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
html body.v8 .v8-roots::-webkit-scrollbar{display:none}
html body.v8 .v8-roots a{flex:none}
html body.v8 .v8-roots a svg{color:var(--v8-t3)}
html body.v8 .v8-roots a[aria-current] svg{color:var(--v8-t2)}
/* строка состояния загрузки (progress + сообщение + «скачать по одному») */
html body.v8 .v8-fstatus{display:flex;align-items:center;gap:var(--v8-g-10);margin:0 0 6px;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-fstatus p{margin:0;min-width:0;overflow-wrap:anywhere}
html body.v8 .v8-fstatus p:empty,html body.v8 .v8-fstatus [hidden]{display:none}
html body.v8 .v8-fstatus p:not(:empty){min-height:var(--v8-h-sm);display:flex;align-items:center}
html body.v8 .v8-fstatus p[role=alert]{color:var(--v8-late)}
html body.v8 .v8-fstatus progress{flex:0 0 160px;height:2px;appearance:none;border:0;background:var(--v8-w10);border-radius:var(--v8-r-1);accent-color:var(--v8-org)}
html body.v8 .v8-fstatus progress::-webkit-progress-bar{background:var(--v8-w10);border-radius:var(--v8-r-1)}
html body.v8 .v8-fstatus progress::-webkit-progress-value{background:var(--v8-org)}
html body.v8 .v8-fstatus progress::-moz-progress-bar{background:var(--v8-org)}
html body.v8 .v8-fdl{position:relative;font-size:var(--v8-fs-12)}
html body.v8 .v8-fdl>summary{list-style:none;cursor:pointer;color:var(--v8-t2);min-height:var(--v8-h-sm);display:inline-flex;align-items:center;padding:0 6px;border-radius:var(--v8-r-6)}
html body.v8 .v8-fdl>summary::-webkit-details-marker{display:none}
html body.v8 .v8-fdl>summary:hover{background:var(--v8-w4)}
html body.v8 .v8-fdl>div{position:absolute;top:100%;left:0;z-index:40;margin-top:4px;display:grid;gap:var(--v8-g-2);min-width:260px;max-width:min(520px,90vw);max-height:240px;overflow:auto;padding:4px;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop)}
html body.v8 .v8-fdl>div a{display:flex;align-items:center;min-height:var(--v8-h-it);padding:0 8px;border-radius:var(--v8-r-5);color:var(--v8-t2);overflow-wrap:anywhere}
html body.v8 .v8-fdl>div a:hover{background:var(--v8-w5);color:var(--v8-t1)}
/* панель над сеткой: липкая; слева крошки, справа фильтры; при выделении фильтры уступают место действиям */
html body.v8 .v8-ftool{position:sticky;top:var(--v8-stick,0px);z-index:6;display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap;min-height:var(--v8-h-ph);padding:6px 0;margin:0 0 10px;background:rgba(16,19,22,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
html body.v8 .v8-ftool::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
@media(max-width:900px){html body.v8 .v8-ftool{--v8-stick:56px}}
html body.v8 .v8-ftool .v8-selall{display:inline-flex;align-items:center;justify-content:center;width:var(--v8-h-btn);height:var(--v8-h-btn);margin:0;cursor:pointer;flex:none}
html body.v8 .v8-ftool .v8-selall input{width:15px;height:15px;margin:0;accent-color:var(--v8-t1);cursor:pointer}
html body.v8 .v8-ftool .v8-selall input:disabled{opacity:.35;cursor:default}
html body.v8 .v8-crumbs{display:flex;align-items:center;gap:var(--v8-g-2);flex-wrap:wrap;min-width:0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-crumbs button,html body.v8 .v8-crumbs a{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 8px;margin:0;border:0;border-radius:var(--v8-r-6);background:none;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);cursor:pointer;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
html body.v8 .v8-crumbs :is(button,a):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 .v8-crumbs [aria-current]{color:var(--v8-t1)}
html body.v8 .v8-crumbs i{color:var(--v8-t4);font-style:normal;flex:none}
html body.v8 .v8-crumbs .n{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4);margin-left:4px}
html body.v8 .v8-files #file-breadcrumbs,html body.v8 .v8-files #file-folder-title,html body.v8 .v8-files #file-folder-hint{display:none}
html body.v8 .v8-ffilters{margin-left:auto;display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
/* r3 (11.10): «плитки / список» прижаты к правому краю — пустая панель выделения не делит с ними свободное место */
html body.v8 .v8-files:not(.has-selection) .v8-ffilters~.v8-fsel{margin-left:0}
html body.v8 #final-selection:not(.has-items):has(>#final-selection-status:empty){display:none}
html body.v8 .v8-files.has-selection .v8-ffilters,html body.v8 .v8-files.is-root .v8-ffilters .v8-only-folder{display:none}
html body.v8 .v8-files.is-root .v8-ftool .v8-selall{visibility:hidden}
html body.v8 .v8-ffilters .v8-inp:not(#v8){width:auto;height:var(--v8-h-btn);min-height:var(--v8-h-btn);background-color:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-ffilters .v8-inp:not(#v8):hover{color:var(--v8-t2);background-color:var(--v8-w3)}
html body.v8 .v8-ffilters label.v8-chk{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);padding:0 8px;border-radius:var(--v8-r-6);font-size:var(--v8-fs-13);color:var(--v8-t3);cursor:pointer}
html body.v8 .v8-ffilters label.v8-chk:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8 .v8-ffilters label.v8-chk input{width:14px;height:14px;margin:0;accent-color:var(--v8-t1)}
/* панель выделения: счётчик + кнопки тонкой линией; «Удалить» — тихо-красная */
html body.v8 .v8-fsel{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;margin-left:auto;padding:0;background:none;border:0}
html body.v8 .v8-fsel>strong{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);margin-right:6px;white-space:nowrap}
html body.v8 .v8-fsel>strong:empty{display:none}
html body.v8 .v8-fsel .v8-btn.danger{color:var(--v8-late)}
html body.v8 .v8-fsel .v8-btn.danger:hover{background:rgba(255,110,90,.08)}
html body.v8 .v8-fsel .v8-ibt{font-size:var(--v8-fs-16)}
html body.v8 .v8-fsel #final-selection-status{flex:1 1 200px;min-width:0;margin:0;font-size:var(--v8-fs-12);color:var(--v8-t3);overflow-wrap:anywhere}
html body.v8 .v8-fsel #final-selection-status:empty{display:none}
html body.v8 .v8-fsel #final-selection-status[role=alert]{color:var(--v8-late)}
/* новая папка — строка-форма под панелью */
html body.v8 .v8-fform{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border-radius:var(--v8-r-10);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5)}
html body.v8 .v8-fform label{display:flex;align-items:center;gap:var(--v8-g-10);flex:1 1 220px;min-width:0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-fform label .v8-inp:not(#v8){flex:1}
html body.v8 .v8-fform p[role=alert]{flex-basis:100%;margin:0;font-size:var(--v8-fs-12);color:var(--v8-late)}
html body.v8 .v8-fform p[role=alert]:empty{display:none}
/* вдавленная зона загрузки: кнопки «Файлы» «Папка» «Новая папка» + серия (финалы) */
html body.v8 .v8-upzone{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap;min-height:var(--v8-h-ph);padding:6px 8px 6px 12px;margin:0 0 12px;border-radius:var(--v8-r-10);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t3);font-size:var(--v8-fs-12);transition:box-shadow var(--v8-mid) var(--v8-ease),background var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-upzone svg{color:var(--v8-t3)}
html body.v8 .v8-upzone .v8-btn{box-shadow:var(--v8-sh-btn)}
html body.v8 .v8-upzone .sp{flex:1}
html body.v8 .v8-upzone .v8-upsel{display:inline-flex;align-items:center;gap:var(--v8-g-6)}
html body.v8 .v8-upzone .v8-upsel .v8-inp:not(#v8){width:auto;height:var(--v8-h-btn);min-height:var(--v8-h-btn);background-color:rgba(0,0,0,.18)}
html body.v8 .v8-upzone .upload-label{position:relative;overflow:hidden}
html body.v8 .v8-upzone .upload-label input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}
html body.v8 .v8-upzone .upload-label[aria-disabled=true]{opacity:.45}
html body.v8 .v8-upzone .upload-label[aria-disabled=true] input{cursor:not-allowed}
html body.v8 .v8-files.is-file-drag .v8-upzone,html body.v8 .v8-files.drag-over .v8-upzone{box-shadow:var(--v8-deboss-f),0 0 0 1px rgba(255,80,0,.5);background:rgba(255,80,0,.04)}
html body.v8 .v8-upzone .v8-prow{display:flex;align-items:center;gap:var(--v8-g-10);flex-basis:100%;min-width:0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-upzone .v8-prow progress{flex:1;height:2px;appearance:none;border:0;background:var(--v8-w10);accent-color:var(--v8-org)}
html body.v8 .v8-upzone .v8-prow progress::-webkit-progress-bar{background:var(--v8-w10)}
html body.v8 .v8-upzone .v8-prow progress::-webkit-progress-value{background:var(--v8-org)}
html body.v8 .v8-upzone .v8-prow progress::-moz-progress-bar{background:var(--v8-org)}
html body.v8 .v8-upzone .v8-prow span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
html body.v8 .v8-files #upload-progress:empty{display:none}
html body.v8 .v8-files .progress-row{display:flex;align-items:center;gap:var(--v8-g-10);flex-basis:100%;min-width:0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-files .progress-row span{order:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
html body.v8 .v8-files .progress-row progress{order:1;flex:1;height:2px;appearance:none;border:0;background:var(--v8-w10);accent-color:var(--v8-org)}
html body.v8 .v8-files .progress-row progress::-webkit-progress-bar{background:var(--v8-w10)}
html body.v8 .v8-files .progress-row progress::-webkit-progress-value{background:var(--v8-org)}
html body.v8 .v8-files .notice.error,html body.v8 .v8-files #upload-error{margin:0 0 12px;padding:8px 12px;border-radius:var(--v8-r-8);background:rgba(255,110,90,.06);border:1px solid rgba(255,110,90,.25);color:var(--v8-late);font-size:var(--v8-fs-13)}
/* ---- сетка плиток ---- */
html body.v8 .v8-fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:minmax(0,auto);gap:var(--v8-g-10);align-items:stretch}
@media(max-width:600px){html body.v8 .v8-fgrid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--v8-g-6)}}
html body.v8 .v8-fgrid>[hidden]{display:none}
/* плитка папки — 2:1, тянется на две колонки, значок и имя; счётчик файлов из data-count */
html body.v8 .v8-ftile{position:relative;grid-column:span 2;aspect-ratio:2/1;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;min-width:0;padding:10px 12px;border:0;border-radius:var(--v8-r-10);background:radial-gradient(min(240px,85%) min(140px,85%) at 0 0,var(--v8-w4),transparent 70%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);color:var(--v8-t2);text-align:left;font:500 var(--v8-fs-13)/1.3 var(--v8-sans);cursor:pointer;transition:box-shadow var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-ftile:hover{box-shadow:inset 0 0 0 1px var(--v8-w10);transform:translateY(-1px);color:var(--v8-t1)}
html body.v8 .v8-ftile.is-selected,html body.v8 .v8-ftile.is-drop-folder{box-shadow:inset 0 0 0 1px rgba(255,48,0,.7)}
html body.v8 .v8-ftile svg{position:absolute;left:12px;top:10px;width:18px;height:18px;color:var(--v8-t3)}
html body.v8 .v8-ftile .nm,html body.v8 .v8-ftile span:not(.n){display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-ftile[data-count]::after{content:attr(data-count);position:absolute;right:12px;top:10px;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4);font-variant-numeric:tabular-nums}
html body.v8 .v8-ftile[data-count=""]::after,html body.v8 .v8-ftile[data-count="0"]::after{display:none}
html body.v8 .v8-ftile .cd{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4);margin-top:2px;letter-spacing:.02em}
/* корневой уровень: дерево папок (data-folder) становится плитками в той же сетке; строки файлов спрятаны */
html body.v8 .v8-files .file-tree{display:none}
html body.v8 .v8-files.is-root .file-tree{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--v8-g-10);margin:0;padding:0}
@media(max-width:600px){html body.v8 .v8-files.is-root .file-tree{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--v8-g-6)}}
html body.v8 .v8-files.is-root :is(.file-rows,#file-empty,.folder-scroll){display:none}
/* В11 (GPT, 11.10): в корне нет папки, куда писать, — загрузка, «Новая папка» и фильтры списка появляются только внутри папки */
html body.v8 .v8-files.is-root :is(#file-folder-form,.v8-ffilters){display:none}
/* r3 (владелец 11.10): панель загрузки стоит в строке корней — в корне она невидима, но место за ней остаётся (страница не прыгает) */
html body.v8 .v8-files.is-root .v8-rootbar>.v8-upzone{visibility:hidden}
/* r3 (11.10): на телефоне сдвиг допустим — в корне панели нет совсем, без пустой полосы */
@media(max-width:700px){html body.v8 .v8-files.is-root .v8-rootbar>.v8-upzone{display:none}}
html body.v8 .v8-files .file-tree .production-final-link{display:none}
html body.v8 .v8-files.is-root[data-root=episodes] .file-tree>[data-folder]:not([data-folder^="ep-"]){display:none}
html body.v8 .v8-files.is-root[data-root=shared] .file-tree>[data-folder^="ep-"]{display:none}
html body.v8 .v8-files .file-tree>[data-folder]:disabled{opacity:.6;cursor:default}
/* подпапка (рабочие): галочка + кнопка открытия внутри плитки */
html body.v8 .v8-files .file-subfolder{grid-column:span 2;aspect-ratio:2/1;position:relative;display:block;min-height:0;padding:0;border:0;border-radius:var(--v8-r-10);background:radial-gradient(min(240px,85%) min(140px,85%) at 0 0,var(--v8-w4),transparent 70%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);color:var(--v8-t2);transition:box-shadow var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files .file-subfolder:hover{box-shadow:inset 0 0 0 1px var(--v8-w10)}
html body.v8 .v8-files .file-subfolder.is-selected,html body.v8 .v8-files .file-subfolder.is-drop-folder{box-shadow:inset 0 0 0 1px rgba(255,48,0,.7)}
html body.v8 .v8-files .file-subfolder .file-folder-open{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;gap:0;width:100%;height:100%;min-height:0;padding:10px 12px;border:0;background:none;box-shadow:none;color:inherit;text-align:left;font:500 var(--v8-fs-13)/1.3 var(--v8-sans);cursor:pointer;border-radius:inherit}
html body.v8 .v8-files .file-subfolder .file-folder-open svg{position:absolute;left:12px;top:10px;width:18px;height:18px;color:var(--v8-t3)}
html body.v8 .v8-files .file-subfolder .file-folder-open span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-files .file-folder-check{position:absolute;right:6px;top:6px;z-index:2;display:grid;place-items:center;width:var(--v8-h-sm);height:var(--v8-h-sm);margin:0;cursor:pointer;opacity:0;transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files .file-subfolder:is(:hover,:focus-within,.is-selected) .file-folder-check,html body.v8 .v8-files.has-selection .file-folder-check{opacity:1}
html body.v8 .v8-files .file-folder-check input,html body.v8 .v8-files input[data-file-select],html body.v8 .v8-files .final-select-check input{width:15px;height:15px;margin:0;accent-color:var(--v8-t1);cursor:pointer}
/* плитка файла: квадрат; миниатюра сверху, имя 13px в 2 строки, мета 12px */
html body.v8 .v8-files .view-grid .file-row,html body.v8 .v8-files .folder-content .file-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:var(--v8-g-6);aspect-ratio:1;min-width:0;min-height:0;padding:8px;border:0;border-radius:var(--v8-r-10);background:linear-gradient(180deg,rgba(22,25,29,.9),rgba(18,21,24,.95));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);color:var(--v8-t2);cursor:pointer;transition:box-shadow var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files .file-row:hover{box-shadow:inset 0 0 0 1px var(--v8-w10);transform:translateY(-1px)}
html body.v8 .v8-files .file-row.is-selected{box-shadow:inset 0 0 0 1px rgba(255,48,0,.75)}
html body.v8 .v8-files .file-row.is-previous{opacity:.72}
html body.v8 .v8-files .file-row input[data-file-select],html body.v8 .v8-files .file-row .final-select-check{position:absolute;left:8px;top:8px;z-index:3;opacity:0;transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files .file-row .final-select-check{display:grid;place-items:center;width:var(--v8-h-sm);height:var(--v8-h-sm);margin:0;padding:0;left:4px;top:4px;cursor:pointer}
html body.v8 .v8-files .file-row:is(:hover,:focus-within,.is-selected) :is(input[data-file-select],.final-select-check),html body.v8 .v8-files:is(.has-selection) .file-row :is(input[data-file-select],.final-select-check),html body.v8 .v8-files:has(#final-selection.has-items) .final-select-check{opacity:1}
html body.v8 .v8-files .file-row :is(.file-thumb,.file-extension,.cover-thumb){position:relative;display:grid;place-items:center;width:100%;height:100%;min-height:0;aspect-ratio:auto;border:0;border-radius:var(--v8-r-6);overflow:hidden;background:#0e1114;color:var(--v8-t3);font:500 var(--v8-fs-11) var(--v8-mono);letter-spacing:.06em;cursor:pointer}
html body.v8 .v8-files .file-row .file-thumb img{width:100%;height:100%;object-fit:cover;display:block}
html body.v8 .v8-files .file-row[data-file-type=video] .file-thumb img,html body.v8 .v8-files .file-row.is-video .file-thumb img{object-fit:contain}
html body.v8 .v8-files .file-row .file-thumb b{position:absolute;left:6px;bottom:5px;font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.06em;color:var(--v8-t2);background:rgba(16,19,22,.75);padding:2px 5px;border-radius:var(--v8-r-4);line-height:1.2}
html body.v8 .v8-files .file-row .file-thumb.no-thumb img{display:none}
html body.v8 .v8-files .file-row .file-thumb.no-thumb b{position:static;background:none;font-size:var(--v8-fs-11)}
html body.v8 .v8-files .file-row .file-thumb.is-video:not(.no-thumb)::after{content:"";position:absolute;right:7px;bottom:7px;width:0;height:0;border-left:7px solid rgba(255,255,255,.85);border-top:4px solid transparent;border-bottom:4px solid transparent;filter:drop-shadow(0 0 2px #000)}
html body.v8 .v8-files .file-row .file-thumb:hover img{filter:brightness(1.12)}
html body.v8 .v8-files .file-row .v8-fcap{display:grid;gap:var(--v8-g-2);min-width:0;align-content:start}
html body.v8 .v8-files .file-row .file-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0;margin:0;padding:0;border:0;background:none;box-shadow:none;min-height:0;color:var(--v8-t2);font:400 var(--v8-fs-13)/1.35 var(--v8-sans);text-align:left;overflow-wrap:anywhere;cursor:pointer}
html body.v8 .v8-files .file-row:hover .file-name{color:var(--v8-t1)}
html body.v8 .v8-files .file-row small,html body.v8 .v8-files .file-row .file-meta,html body.v8 .v8-files .file-row .file-status{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-files .file-row .file-status.is-undelivered{color:var(--v8-t4)}
html body.v8 .v8-files .file-row .file-message-link{display:inline-flex;align-items:center;gap:var(--v8-g-3);font-size:var(--v8-fs-12);color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
html body.v8 .v8-files .file-row .file-message-link:hover{color:var(--v8-t1)}
/* видео в финальных папках — 9:16 */
html body.v8 .v8-files .folder-content.is-videos .file-row{aspect-ratio:9/13}
html body.v8 .v8-files .folder-content.is-videos .file-row .file-thumb img{object-fit:cover}
/* «⋯» на плитке — видна при наведении, фокусе и на сенсорных */
html body.v8 .v8-files .v8-more{position:absolute;right:4px;top:4px;z-index:4;width:var(--v8-h-sm);height:var(--v8-h-sm);min-height:var(--v8-h-sm);display:grid;place-items:center;padding:0;margin:0;border:0;border-radius:var(--v8-r-6);background:rgba(16,19,22,.7);box-shadow:none;color:var(--v8-t2);cursor:pointer;opacity:0;transition:opacity var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files .v8-more:hover{background:rgba(38,42,48,.96);color:var(--v8-t1)}
html body.v8 .v8-files :is(.file-row,.file-subfolder,[data-final-folder-row]):is(:hover,:focus-within) .v8-more,html body.v8 .v8-files .v8-more:focus-visible{opacity:1}
@media(hover:none){html body.v8 .v8-files .v8-more,html body.v8 .v8-files .file-folder-check,html body.v8 .v8-files .file-row :is(input[data-file-select],.final-select-check){opacity:1}}
html body.v8 .v8-files .file-row[data-who]::after{content:attr(data-who);display:none;position:absolute;left:6px;right:6px;bottom:6px;z-index:6;padding:6px 8px;border-radius:var(--v8-r-6);background:var(--v8-pop);border:1px solid var(--v8-w8);color:var(--v8-t2);font-size:var(--v8-fs-12);line-height:1.4;white-space:pre-line;text-align:left;pointer-events:none;box-shadow:var(--v8-sh-pop)}
@media(hover:hover){html body.v8 .v8-files .file-row[data-who]:hover::after{display:block}}
/* список (вторая раскладка переключателя «вид»): строки 36px */
html body.v8 .v8-files .file-rows:not(.view-grid){display:grid;gap:0;grid-template-columns:minmax(0,1fr)} /* R2: список не наследует колонки плиток .v8-fgrid (строки сжимались в 150 px) */
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row{position:relative;display:grid;grid-template-columns:24px 40px minmax(0,1fr) auto 32px;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);padding:3px 6px;border-radius:var(--v8-r-8);cursor:pointer;color:var(--v8-t3)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row:hover{background:var(--v8-w3)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row.is-selected{background:var(--v8-w4);box-shadow:inset 2px 0 0 var(--v8-red)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row+.file-row::before{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row input[data-file-select]{position:static;opacity:1;width:15px;height:15px;accent-color:var(--v8-t1)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row :is(.file-thumb,.file-extension){width:40px;height:26px;border-radius:var(--v8-r-4);font-size:var(--v8-fs-10)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .file-thumb b{display:none}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .v8-fcap{display:flex;align-items:baseline;gap:var(--v8-g-10);min-width:0}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .file-name{display:block;white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:unset;flex:0 1 auto}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row small{flex:none;margin-left:auto;text-align:right;font-family:var(--v8-mono)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .v8-more{position:static;opacity:1;grid-column:5;background:none}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder{grid-column:1/-1;aspect-ratio:auto;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);padding:0 6px;background:none;box-shadow:none;border-radius:var(--v8-r-8)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder:hover{background:var(--v8-w3)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder .file-folder-check{position:static;opacity:1;width:24px;height:var(--v8-h-row)}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder .file-folder-open{position:static;display:flex;align-items:center;justify-content:flex-start;gap:var(--v8-g-10);height:auto;min-height:var(--v8-h-row);padding:0}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder .file-folder-open svg{position:static;width:16px;height:16px}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder .v8-more{position:static;opacity:1;background:none;justify-self:end}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-subfolder{grid-template-columns:24px minmax(0,1fr) 32px}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .file-message-link{display:none}
/* пустая папка — тихая строка; зона сброса файлов */
html body.v8 .v8-files .file-empty,html body.v8 .v8-files .folder-empty{display:flex;align-items:center;min-height:var(--v8-h-ph);margin:0;padding:0 2px;color:var(--v8-t4);font-size:var(--v8-fs-13)}
html body.v8 .v8-files .folder-empty svg,html body.v8 .v8-files .folder-empty p{display:none}
html body.v8 .v8-files .folder-empty h3{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t4);margin:0}
html body.v8 .v8-files .file-drop-cover{display:none;position:absolute;inset:0;z-index:30;pointer-events:none;align-items:center;justify-content:center;text-align:center;border-radius:var(--v8-r-12);background:rgba(16,19,22,.82);box-shadow:inset 0 0 0 1px rgba(255,80,0,.6)}
html body.v8 .v8-files.is-file-drag .file-drop-cover{display:flex}
html body.v8 .v8-files .file-drop-cover>span{display:grid;justify-items:center;gap:var(--v8-g-6);padding:24px;color:var(--v8-t1);font-size:var(--v8-fs-13)}
html body.v8 .v8-files .file-drop-cover strong{font-weight:500}
html body.v8 .v8-files .file-drop-cover #file-drop-folder{color:var(--v8-t3)}
/* контекстное меню / меню «⋯» — непрозрачное, у курсора, с переворотом (v8.js) */
html body.v8 .v8-cmenu{position:fixed;z-index:120;min-width:216px;padding:4px;margin:0;list-style:none;background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);color:var(--v8-t2);font-family:var(--v8-sans);animation:v8-cmenu-in var(--v8-mid) var(--v8-ease)}
@keyframes v8-cmenu-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
html body.v8 .v8-cmenu button,html body.v8 .v8-cmenu a{display:flex;align-items:center;justify-content:flex-start;gap:var(--v8-g-10);width:100%;min-height:var(--v8-h-it);height:var(--v8-h-it);padding:0 8px;margin:0;border:0;border-radius:var(--v8-r-5);background:none;box-shadow:none;color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);text-align:left;cursor:pointer;white-space:nowrap;text-decoration:none}
html body.v8 .v8-cmenu :is(button,a):hover,html body.v8 .v8-cmenu :is(button,a):focus-visible{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 .v8-cmenu .hr{height:1px;margin:4px 6px;background:var(--v8-w5)}
html body.v8 .v8-cmenu .danger{color:var(--v8-late)}
html body.v8 .v8-cmenu .k{margin-left:auto;font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t4)}
html body.v8 .v8-cmenu svg{width:14px;height:14px;color:var(--v8-t3);flex:none}
@media(pointer:coarse){html body.v8 .v8-cmenu :is(button,a){min-height:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-cmenu{animation:none}}
/* окна (перенос, переименование, удаление, звук, разбор по сериям) — окно v8 с прежними id */
html body.v8 dialog.v8-fdlg{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:6px;margin:auto;border:0;border-radius:var(--v8-r-14);background:transparent;color:var(--v8-t2);box-shadow:var(--v8-sh-dlg);overflow:visible;inset:0;position:fixed}
html body.v8 dialog.v8-fdlg::backdrop{background:rgba(14,17,20,.62)}
html body.v8 dialog.v8-fdlg form{display:grid;gap:var(--v8-g-14);margin:0;padding:16px;border-radius:var(--v8-r-10);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)),var(--v8-panel);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);max-height:calc(100dvh - 44px);overflow:auto}
html body.v8 dialog.v8-fdlg header{display:flex;align-items:center;justify-content:space-between;gap:var(--v8-g-10);position:static;padding:0;margin:0;border:0;background:none;box-shadow:none;min-height:0}
html body.v8 dialog.v8-fdlg h2{font:600 var(--v8-fs-16)/1.2 var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 dialog.v8-fdlg p{margin:0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 dialog.v8-fdlg p:empty{display:none}
html body.v8 dialog.v8-fdlg p[role=alert]{color:var(--v8-late)}
html body.v8 dialog.v8-fdlg label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 dialog.v8-fdlg :is(select,input:not([type=checkbox])){min-height:var(--v8-h-inp);height:var(--v8-h-inp);width:100%;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);outline:0}
html body.v8 dialog.v8-fdlg :is(select,input):focus{box-shadow:var(--v8-deboss-f)}
html body.v8 dialog.v8-fdlg select{appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a8f98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
html body.v8 dialog.v8-fdlg :is(#file-action-items,#final-delete-items,#final-move-items,#final-assign-items){display:grid;gap:var(--v8-g-6);max-height:220px;overflow:auto;font-size:var(--v8-fs-13);color:var(--v8-t2);overflow-wrap:anywhere}
html body.v8 dialog.v8-fdlg :is(#file-action-items,#final-delete-items) small{display:block;color:var(--v8-late);font-size:var(--v8-fs-12);margin-top:2px}
html body.v8 dialog.v8-fdlg #final-assign-items .final-assign-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:var(--v8-g-10);align-items:center}
html body.v8 dialog.v8-fdlg footer{display:flex;justify-content:flex-end;gap:var(--v8-g-6);padding:0;margin:0;border:0;background:none}
html body.v8 dialog.v8-fdlg button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;margin:0;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans);white-space:nowrap;cursor:pointer;box-shadow:var(--v8-sh-btn)}
html body.v8 dialog.v8-fdlg button.secondary,html body.v8 dialog.v8-fdlg header button{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 dialog.v8-fdlg header button{width:var(--v8-h-btn);padding:0;font-size:var(--v8-fs-16)}
html body.v8 dialog.v8-fdlg button:hover{background:rgba(255,255,255,.07);color:var(--v8-t1)}
html body.v8 dialog.v8-fdlg button:disabled{opacity:.45;cursor:default}
html body.v8 dialog.v8-fdlg footer button:last-child:not(.secondary)::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent)}
html body.v8 dialog.v8-fdlg [hidden]{display:none}
/* окно просмотра (_media_preview.html) — в тонах v8 */
html body.v8 #file-preview{border:1px solid var(--v8-w8);border-radius:var(--v8-r-12);background:var(--v8-panel);color:var(--v8-t2);box-shadow:var(--v8-sh-dlg)}
html body.v8 #file-preview::backdrop{background:rgba(10,13,15,.8)}
html body.v8 #file-preview header{border-bottom:1px solid var(--v8-w6);padding:8px 8px 8px 14px;gap:var(--v8-g-10)}
html body.v8 #file-preview header strong{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1)}
html body.v8 #file-preview header .text-link{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 #file-preview header .text-link:hover{color:var(--v8-t1)}
html body.v8 #file-preview header button{width:var(--v8-h-btn);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0;border:0;border-radius:var(--v8-r-6);background:transparent;color:var(--v8-t3);font-size:var(--v8-fs-16);box-shadow:none}
html body.v8 #file-preview header button:hover{background:var(--v8-w4);color:var(--v8-t1)}
html body.v8 #file-preview-note{font-size:var(--v8-fs-12);color:var(--v8-t3)}
/* ---- финалы (/materials): корень — шесть папок плитками; внутри — та же сетка ---- */
html body.v8 .v8-files .folder-tabs{display:none}
html body.v8 .v8-files.is-root .folder-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--v8-g-10)}
@media(max-width:600px){html body.v8 .v8-files.is-root .folder-tabs{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--v8-g-6)}}
html body.v8 .v8-files .folder-tabs .folder-caption{display:block;min-width:0}
html body.v8 .v8-files .folder-tabs .folder-caption strong{display:block;font-weight:500;color:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-files .folder-tabs .folder-caption small{display:block;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4);margin-top:2px;letter-spacing:.02em}
html body.v8 .v8-files .folder-tabs .folder-count{position:absolute;right:12px;top:10px;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4);font-variant-numeric:tabular-nums}
html body.v8 .v8-files .folder-tabs button.active{box-shadow:inset 0 0 0 1px var(--v8-w10)}
html body.v8 .v8-files #folder-workspace.folder-workspace{min-width:0;background:none;border:0;outline:0;box-shadow:none;border-radius:0;overflow:visible;position:relative}
html body.v8 .v8-files .folder-scroll{overscroll-behavior:contain}
@media(min-width:901px){html body.v8 .v8-files .folder-scroll{overflow:auto}}
html body.v8 .v8-files .folder-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:minmax(0,auto);gap:var(--v8-g-10);padding:0;min-height:0}
@media(max-width:600px){html body.v8 .v8-files .folder-content{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--v8-g-6)}}
html body.v8 .v8-files .folder-content>:not(.file-row):not([data-final-folder-row]):not(.final-subfolders){grid-column:1/-1}
html body.v8 .v8-files .folder-content .final-subfolders{display:contents}
html body.v8 .v8-files .folder-content .file-list-heading{display:none}
html body.v8 .v8-files [data-final-folder-row]{grid-column:span 2;aspect-ratio:2/1;position:relative;display:block;min-width:0;border:0;border-radius:var(--v8-r-10);background:radial-gradient(min(240px,85%) min(140px,85%) at 0 0,var(--v8-w4),transparent 70%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);color:var(--v8-t2);transition:box-shadow var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files [data-final-folder-row]:hover{box-shadow:inset 0 0 0 1px var(--v8-w10)}
html body.v8 .v8-files [data-final-folder-row].is-selected{box-shadow:inset 0 0 0 1px rgba(255,48,0,.7)}
html body.v8 .v8-files [data-final-folder-row] button[data-final-folder]{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;width:100%;height:100%;min-height:0;padding:10px 12px;margin:0;border:0;border-radius:inherit;background:none;box-shadow:none;color:inherit;text-align:left;font:500 var(--v8-fs-13)/1.3 var(--v8-sans);cursor:pointer}
html body.v8 .v8-files [data-final-folder-row] button[data-final-folder] svg{position:absolute;left:12px;top:10px;width:18px;height:18px;color:var(--v8-t3)}
html body.v8 .v8-files [data-final-folder-row] button[data-final-folder] span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-files [data-final-folder-row] .final-select-check{position:absolute;right:6px;top:6px;z-index:2;display:grid;place-items:center;width:var(--v8-h-sm);height:var(--v8-h-sm);margin:0;padding:0;cursor:pointer;opacity:0;transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files [data-final-folder-row]:is(:hover,:focus-within,.is-selected) .final-select-check,html body.v8 .v8-files:has(#final-selection.has-items) .final-select-check{opacity:1}
html body.v8 .v8-files .folder-content .file-identity{display:contents}
html body.v8 .v8-files .folder-content .file-identity>div{display:grid;gap:var(--v8-g-2);min-width:0;align-content:start}
html body.v8 .v8-files .folder-content .file-row .file-actions{display:contents}
/* список финалов */
html body.v8 .v8-files .folder-content.view-list{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
html body.v8 .v8-files .folder-content.view-list>*{grid-column:1}
html body.v8 .v8-files .folder-content.view-list .file-row{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto 32px;align-items:center;gap:var(--v8-g-10);aspect-ratio:auto;min-height:var(--v8-h-row);padding:3px 6px 3px 32px;border-radius:var(--v8-r-8);background:none;box-shadow:none;transform:none}
html body.v8 .v8-files .folder-content.view-list .file-row:hover{background:var(--v8-w3)}
html body.v8 .v8-files .folder-content.view-list .file-row.is-selected{background:var(--v8-w4);box-shadow:inset 2px 0 0 var(--v8-red)}
html body.v8 .v8-files .folder-content.view-list .file-row+.file-row::before{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-files .folder-content.view-list .file-row .final-select-check{left:4px;top:50%;transform:translateY(-50%);opacity:1}
html body.v8 .v8-files .folder-content.view-list .file-row :is(.file-thumb,.file-extension){width:40px;height:26px;border-radius:var(--v8-r-4);font-size:var(--v8-fs-10)}
html body.v8 .v8-files .folder-content.view-list .file-row .file-thumb b{display:none}
html body.v8 .v8-files .folder-content.view-list .file-identity>div{display:flex;align-items:baseline;gap:var(--v8-g-10);min-width:0}
html body.v8 .v8-files .folder-content.view-list .file-row .file-name{display:block;white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:unset;flex:0 1 auto}
html body.v8 .v8-files .folder-content.view-list .file-row .file-status{flex:none}
html body.v8 .v8-files .folder-content.view-list .v8-fmenu{position:static;grid-column:4}
html body.v8 .v8-files .folder-content.view-list .v8-fmenu>summary{opacity:1;background:none}
html body.v8 .v8-files .folder-content.view-list [data-final-folder-row]{grid-column:1;aspect-ratio:auto;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;min-height:var(--v8-h-row);padding:0 6px 0 32px;background:none;box-shadow:none;border-radius:var(--v8-r-8)}
html body.v8 .v8-files .folder-content.view-list [data-final-folder-row]:hover{background:var(--v8-w3)}
html body.v8 .v8-files .folder-content.view-list [data-final-folder-row] button[data-final-folder]{position:static;display:flex;align-items:center;gap:var(--v8-g-10);height:auto;min-height:var(--v8-h-row);padding:0}
html body.v8 .v8-files .folder-content.view-list [data-final-folder-row] button[data-final-folder] svg{position:static;width:16px;height:16px}
html body.v8 .v8-files .folder-content.view-list [data-final-folder-row] .final-select-check{left:4px;right:auto;top:50%;transform:translateY(-50%);opacity:1}
/* меню «⋯» финала — details с прежними формами внутри */
html body.v8 .v8-files .v8-fmenu{position:absolute;right:4px;top:4px;z-index:4}
html body.v8 .v8-files .v8-fmenu>summary{list-style:none;display:grid;place-items:center;width:var(--v8-h-sm);height:var(--v8-h-sm);border-radius:var(--v8-r-6);background:rgba(16,19,22,.7);color:var(--v8-t2);cursor:pointer;opacity:0;transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files .v8-fmenu>summary::-webkit-details-marker{display:none}
html body.v8 .v8-files .file-row:is(:hover,:focus-within) .v8-fmenu>summary,html body.v8 .v8-files .v8-fmenu[open]>summary,html body.v8 .v8-files .v8-fmenu>summary:focus-visible{opacity:1}
@media(hover:none){html body.v8 .v8-files .v8-fmenu>summary{opacity:1}}
html body.v8 .v8-files .v8-fmenu>summary:hover{background:rgba(38,42,48,.96);color:var(--v8-t1)}
html body.v8 .v8-files .v8-fmenu .v8-pop{top:calc(100% + 4px);left:auto;right:0;transform-origin:top right;display:grid;gap:0}
html body.v8 .v8-files .v8-fmenu .v8-pop form{margin:0;display:contents}
html body.v8 .v8-files .v8-fmenu .v8-pop :is(a,button,summary){display:flex;align-items:center;justify-content:flex-start;gap:var(--v8-g-10);width:100%;min-height:var(--v8-h-it);height:var(--v8-h-it);padding:0 8px;margin:0;border:0;border-radius:var(--v8-r-5);background:none;box-shadow:none;color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);text-align:left;cursor:pointer;white-space:nowrap;text-decoration:none}
html body.v8 .v8-files .v8-fmenu .v8-pop :is(a,button,summary):hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 .v8-files .v8-fmenu .v8-pop .danger,html body.v8 .v8-files .v8-fmenu .v8-pop .file-trash{color:var(--v8-late)}
html body.v8 .v8-files .v8-fmenu .v8-pop details{display:contents}
html body.v8 .v8-files .v8-fmenu .v8-pop details>summary{list-style:none}
html body.v8 .v8-files .v8-fmenu .v8-pop details>summary::-webkit-details-marker{display:none}
html body.v8 .v8-files .v8-fmenu .v8-pop details>form{display:grid;gap:var(--v8-g-6);padding:6px 8px 8px;border-top:1px solid var(--v8-w5)}
html body.v8 .v8-files .v8-fmenu .v8-pop details>form label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-files .v8-fmenu .v8-pop details>form select{min-height:var(--v8-h-inp);height:var(--v8-h-inp);width:100%;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-files .v8-fmenu .v8-pop details>form button{height:var(--v8-h-btn);min-height:var(--v8-h-btn);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);justify-content:center}
html body.v8 .v8-files .v8-fmenu .v8-pop .upscale-chip{display:flex;align-items:center;min-height:var(--v8-h-it);padding:0 8px;border:0;border-radius:0;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);white-space:normal}
html body.v8 .v8-files .v8-fmenu .v8-pop .upscale-chip.is-done{color:var(--v8-g)}
html body.v8 .v8-files .v8-fmenu .v8-pop .upscale-chip.is-error{color:var(--v8-late)}
html body.v8 .v8-files .v8-fmenu .v8-pop .upscale-chip a{color:inherit;text-decoration:underline;display:inline;min-height:0;height:auto;padding:0 0 0 4px;width:auto}
/* обложка проекта в папке 06: текущая обложка + «убрать» */
html body.v8 .v8-files .v8-cover-now{display:flex;align-items:center;gap:var(--v8-g-14);padding:6px 0 4px}
html body.v8 .v8-files .v8-cover-now img{width:54px;height:96px;object-fit:cover;border-radius:var(--v8-r-6);background:#0e1114;flex:none}
html body.v8 .v8-files .v8-cover-now form{margin:0}
/* незавершённые загрузки — свёрнутый список строк */
html body.v8 .v8-unfinished{margin:24px 0 0}
html body.v8 .v8-unfinished>summary{list-style:none;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);padding:0 8px;border-radius:var(--v8-r-6);color:var(--v8-t3);font-size:var(--v8-fs-13);cursor:pointer}
html body.v8 .v8-unfinished>summary::-webkit-details-marker{display:none}
html body.v8 .v8-unfinished>summary:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8 .v8-unfinished .v8-row{grid-template-columns:minmax(0,1fr) auto auto}
html body.v8 .v8-unfinished .v8-row .c-title{color:var(--v8-t2)}
/* финальные папки — те же плитки, что у рабочих (старые правила .folder-tabs button весомее) */
html body.v8 .v8-files .folder-tabs button.v8-ftile{display:grid;min-height:0;width:auto;max-width:none;padding:10px 12px;gap:0;border:0;border-radius:var(--v8-r-10);background:radial-gradient(min(240px,85%) min(140px,85%) at 0 0,var(--v8-w4),transparent 70%),linear-gradient(180deg,rgba(22,25,29,.92),rgba(20,23,27,.96));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);color:var(--v8-t2);font-weight:500}
html body.v8 .v8-files .folder-tabs button.v8-ftile:hover{box-shadow:inset 0 0 0 1px var(--v8-w10);color:var(--v8-t1)}
html body.v8 .v8-files .folder-tabs button.v8-ftile :is(strong,svg){color:inherit}
html body.v8 .v8-files .folder-tabs button.v8-ftile svg{color:var(--v8-t3)}
/* плитка файла: миниатюра своей пропорции (квадрат; видео финалов 9:16), подпись под ней — подпись не сжимает картинку */
html body.v8 .v8-files .view-grid .file-row,html body.v8 .v8-files .folder-content:not(.view-list) .file-row{aspect-ratio:auto;grid-template-rows:auto auto;align-content:start}
html body.v8 .v8-files :is(.view-grid,.folder-content:not(.view-list)) .file-row :is(.file-thumb,.file-extension){height:auto;aspect-ratio:1}
html body.v8 .v8-files .folder-content.is-videos:not(.view-list) .file-row :is(.file-thumb,.file-extension){aspect-ratio:9/16}
html body.v8 .v8-files .folder-content.is-videos .file-row{aspect-ratio:auto}
/* фокус с клавиатуры виден на всех контролах экранов волны D (поля — внутренняя подсветка по §3.11) */
html body.v8 :is(.v8-files,.v8-deliv,.v8-check,.v8-storage,.v8-output,.v8-boards,.v8-chome,.v8-portal,.v8-vlinks,.v8-cviewers,.v8-cviewer-form,.v8-cover,.v8-welcome) :is(a,button,summary,[tabindex]):focus-visible,html body.v8 :is(#ephead .episode-tab,.review-shell .decision-buttons button,.title-head a,.project-tabs a,.cvwrap button):focus-visible{outline:2px solid rgba(247,248,248,.6);outline-offset:2px;transition-duration:0s}
html body.v8 :is(.title-head,.client-band) :is(a,button,summary):focus-visible:not(#v8){outline:2px solid rgba(247,248,248,.6);outline-offset:2px;transition-duration:0s}
html body.v8 :is(.v8-files,.v8-deliv,.v8-check,.v8-storage,.v8-output,.v8-boards,.v8-chome,.v8-portal,.v8-vlinks,.v8-cviewers,.v8-cviewer-form,.v8-cover,.v8-welcome,.review-shell) :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible:not(#v8){outline:0;box-shadow:var(--v8-deboss-f),inset 0 0 0 1px rgba(255,255,255,.28)}
html body.v8 .v8-files .file-row :is(.file-meta,small){white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* выделения нет — панель финалов пустая (без подсказки-фразы) */
html body.v8 #final-selection:not(.has-items)>:is(button,details,strong){display:none}
/* шапка проекта: имя уже в h1 экрана — в полосе остаётся только «Производство» */
html body.v8:has(:is(.v8-files,.v8-deliv,.v8-check,.v8-cover)) .title-head .title-main{display:none}
html body.v8:has(:is(.v8-files,.v8-deliv,.v8-check,.v8-cover)) .title-head .title-band{grid-template-columns:minmax(0,1fr);justify-items:end;padding-top:14px;padding-bottom:12px}
@media(max-width:900px){html body.v8:has(:is(.v8-files,.v8-deliv,.v8-check,.v8-cover)) .title-head .title-band{justify-items:start}}
/* телефон */
@media(max-width:600px){
 html body.v8 .v8-fhead{gap:var(--v8-g-10)}
 html body.v8 .v8-ftool{gap:var(--v8-g-6)}
 html body.v8 .v8-ffilters{margin-left:0;flex-basis:100%}
 html body.v8 .v8-fsel{margin-left:0;flex-basis:100%}
 html body.v8 .v8-crumbs button,html body.v8 .v8-crumbs a{max-width:150px}
 html body.v8 .v8-upzone .sp{display:none}
}
/* R2 п.20 (владелец 11.10): хранилище — списки проектов и файлов в своём окне с прокруткой, страница не листается */
html body.v8 .v8-storage :is(.v8-stor-proj,.v8-ssub>.v8-rows){max-height:min(56vh,600px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--v8-w10) transparent;padding:4px 6px;border-radius:var(--v8-r-12);background:var(--v8-panel);box-shadow:inset 0 0 0 1px var(--v8-w5)}
html body.v8 .v8-storage .v8-ssub>.v8-rows{margin:4px 0 8px 22px;max-height:min(48vh,480px)}
html body.v8 .v8-storage .v8-rows.v8-stor-proj{max-height:max(300px,calc(100dvh - 490px))}
html body.v8 .v8-storage .v8-stor-proj>.v8-row.head{position:sticky;top:-4px;z-index:2;background:var(--v8-panel)}
@media(max-width:600px){html body.v8 .v8-storage :is(.v8-stor-proj,.v8-ssub>.v8-rows){max-height:64vh}html body.v8 .v8-storage .v8-ssub>.v8-rows{margin-left:0}}
/* R2 п.21 (владелец 11.10): рабочие файлы под плеером серии (_file_browser.html, старая разметка) в облике v8.
   Без пояснения под папкой, строки 40 px, окно файлов не ниже 7 строк (было 280 px — 3 файла), действия файла —
   сбоку строки по наведению (поверх размера файла) (те же кнопки, что в панели выделения), меньше пустоты в шапке. Разметка, id и JS прежние. */
html body.v8 #working-files.file-browser:not(#v8){margin-top:16px;border:0;border-radius:var(--v8-r-12);background:var(--v8-panel);box-shadow:inset 0 0 0 1px var(--v8-w5);overflow:visible}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar{min-height:var(--v8-h-ph);padding:8px 10px 8px 16px;gap:var(--v8-g-10);background:none;border-bottom:1px solid var(--v8-w5)}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar h2{font:600 var(--v8-fs-14)/1.2 var(--v8-sans);color:var(--v8-t1);letter-spacing:0}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions{display:flex;align-items:center;gap:var(--v8-g-4);flex-wrap:wrap}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions :is(button,.button,.text-link){display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);text-decoration:none;cursor:pointer;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions :is(button,.button,.text-link):hover{background:var(--v8-w4);color:var(--v8-t1)}
html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions svg{width:14px;height:14px}
html body.v8 #working-files.file-browser:not(#v8) .file-status-row{padding:0 16px}
html body.v8 #working-files.file-browser:not(#v8) .file-status-row:not(:has(p:not(:empty),details:not([hidden]))){display:none}
html body.v8 #working-files.file-browser:not(#v8) .file-upload-message{padding:6px 0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 #working-files.file-browser:not(#v8) #file-folder-hint{display:none}
html body.v8 #working-files.file-browser:not(#v8) .file-layout{min-height:0}
html body.v8 #working-files.file-browser:not(#v8) .file-list{padding:6px 10px 10px}
html body.v8 #working-files.file-browser:not(#v8) .file-list-toolbar{gap:var(--v8-g-10);margin:0 0 4px;min-height:var(--v8-h-ph);padding:0 4px;flex-wrap:wrap}
html body.v8 #working-files.file-browser:not(#v8) .file-list-toolbar #file-folder-title{font:600 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1)}
html body.v8 #working-files.file-browser:not(#v8) .file-filters{display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
html body.v8 #working-files.file-browser:not(#v8) .file-filters :is(select,label,button){min-height:var(--v8-h-btn);height:var(--v8-h-btn);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 #working-files.file-browser:not(#v8) .file-filters select{padding:0 26px 0 8px;border:0;border-radius:var(--v8-r-6);background-color:transparent;box-shadow:none}
html body.v8 #working-files.file-browser:not(#v8) .file-filters select:hover{background-color:var(--v8-w4);color:var(--v8-t2)}
html body.v8 #working-files.file-browser:not(#v8) .file-filters label{display:inline-flex;align-items:center;gap:var(--v8-g-6);padding:0 6px}
html body.v8 #working-files.file-browser:not(#v8) .file-filters input[type=checkbox],html body.v8 #working-files.file-browser:not(#v8) #file-select-all,html body.v8 #working-files.file-browser:not(#v8) .file-row input[data-file-select],html body.v8 #working-files.file-browser:not(#v8) [data-folder-select]{width:15px;height:15px;min-width:15px;accent-color:var(--v8-t1)}
html body.v8 #working-files.file-browser:not(#v8) .file-folder-link{display:inline-flex;align-items:center;gap:var(--v8-g-6);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:none;box-shadow:none}
html body.v8 #working-files.file-browser:not(#v8) .file-folder-link:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 #working-files.file-browser:not(#v8) .view-toggle{margin-left:auto;display:inline-flex;gap:var(--v8-g-2)}
html body.v8 #working-files.file-browser:not(#v8) .view-toggle button{width:var(--v8-h-btn);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0;display:grid;place-items:center;border:0;border-radius:var(--v8-r-6);background:none;box-shadow:none;color:var(--v8-t3)}
html body.v8 #working-files.file-browser:not(#v8) .view-toggle button[aria-pressed=true]{color:var(--v8-t1);background:var(--v8-w4)}
html body.v8 #working-files.file-browser:not(#v8) .view-toggle svg{width:14px;height:14px}
/* панель выделения — тонкая строка, кнопки без заливки */
html body.v8 #working-files.file-browser:not(#v8) .file-selection{gap:var(--v8-g-4);padding:4px 6px;margin:0;border:0;border-radius:var(--v8-r-8);background:var(--v8-w3)}
html body.v8 #working-files.file-browser:not(#v8) .file-selection>strong{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);margin-right:auto;padding-left:6px}
html body.v8 #working-files.file-browser:not(#v8) .file-selection button{min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 #working-files.file-browser:not(#v8) .file-selection button:hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 #working-files.file-browser:not(#v8) .file-selection .file-delete{color:var(--v8-late)}
html body.v8 #working-files.file-browser:not(#v8) .file-selection .file-clear{width:var(--v8-h-btn);padding:0;font-size:var(--v8-fs-16)}
/* окно файлов: не ниже 7 строк по 40 px, растёт до 60% экрана */
html body.v8 #working-files.file-browser:not(#v8) .file-rows{max-height:max(320px,min(60vh,460px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--v8-w10) transparent;gap:0}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row{position:relative;gap:var(--v8-g-10);min-height:var(--v8-h-ph);padding:3px 8px;border:0;border-radius:var(--v8-r-8);color:var(--v8-t2)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row+.file-row{box-shadow:inset 0 1px 0 var(--v8-w4)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row:hover{background:var(--v8-w3)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row.is-selected{background:var(--v8-w5);box-shadow:inset 2px 0 0 var(--v8-red)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row :is(.file-thumb,.file-extension){width:40px;height:26px;border:0;border-radius:var(--v8-r-4);font:500 var(--v8-fs-10) var(--v8-mono);box-shadow:none}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row .file-thumb b,html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row .file-thumb::after{display:none}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row .file-name{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 var(--v8-fs-13)/1.3 var(--v8-sans);color:inherit}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row small{justify-self:end;white-space:nowrap;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row .file-message-link{font-size:var(--v8-fs-12);color:var(--v8-t3);white-space:nowrap}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-subfolder{min-height:var(--v8-h-ph);padding:0 8px;grid-template-columns:24px minmax(0,1fr);border:0;border-radius:var(--v8-r-8)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-subfolder .file-folder-open{min-height:var(--v8-h-ph);padding:0 6px;gap:var(--v8-g-10);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 #working-files.file-browser:not(#v8) .file-empty{padding:16px 6px;font-size:var(--v8-fs-13);color:var(--v8-t4)}
/* действия файла постоянным рядом текста в своей колонке (владелец 11.10): превью · название · действия · размер */
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row{grid-template-columns:24px 40px minmax(0,1fr) var(--racts-w,auto) var(--meta-w,auto)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row:has(.file-message-link){grid-template-columns:24px 40px minmax(0,1fr) auto var(--racts-w,auto) var(--meta-w,auto)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row small{overflow:hidden;text-overflow:ellipsis}
/* R2 п.21: окно просмотра — шапка с именем файла стеклом поверх кадра (видео, картинка), гаснет во время показа */
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]){background:#000}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) header{position:absolute;left:8px;right:8px;top:8px;z-index:2;min-height:0;padding:4px 4px 4px 12px;border:1px solid rgba(255,255,255,.06);border-radius:var(--v8-r-8);background:rgba(15,17,20,.6);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);transition:opacity var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) header strong{text-shadow:0 1px 2px rgba(0,0,0,.4)}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) header :is(.text-link,button){color:var(--v8-t2)}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) header :is(.text-link,button):hover{background:rgba(255,255,255,.08);color:var(--v8-t1)}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) header .text-link{display:inline-flex;align-items:center;min-height:var(--v8-h-btn);padding:0 8px;border-radius:var(--v8-r-6);text-decoration:none}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) #file-preview-body{max-height:calc(100dvh - 34px)}
html body.v8 #file-preview:is([data-kind=video],[data-kind=image]) #file-preview-body :is(video,img){max-height:calc(100dvh - 34px)}
html body.v8 #file-preview.is-idle header{opacity:0;transform:translateY(-4px);pointer-events:none}
@media(hover:none){html body.v8 #file-preview.is-idle header{opacity:1;transform:none;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){html body.v8 #file-preview header{transition:opacity var(--v8-fast) linear}html body.v8 #file-preview.is-idle header{transform:none}}
/* подсказка «кто сделал / кто загрузил» — у имени файла (справа теперь действия), стекло */
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row[data-who]::after{left:72px;right:auto;bottom:calc(100% - 6px);max-width:min(440px,60%);border:1px solid rgba(255,255,255,.06);border-radius:var(--v8-r-8);background:rgba(15,17,20,.82);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);color:var(--v8-t2);font:400 var(--v8-fs-12)/1.4 var(--v8-sans);box-shadow:var(--v8-sh-pop)}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row[data-who]:hover::after{display:none}
html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row[data-who]:has(:is(.file-name,.file-thumb,.file-extension):hover)::after{display:block}
@media(max-width:600px){html body.v8 #working-files.file-browser:not(#v8) .file-toolbar{padding:8px 8px 8px 12px}html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions{display:flex;flex-wrap:wrap;width:100%;gap:var(--v8-g-2)}html body.v8 #working-files.file-browser:not(#v8) .file-toolbar .actions>*{flex:none;width:auto;white-space:nowrap;padding:0 8px}html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row{grid-template-columns:24px 40px minmax(0,1fr);min-height:var(--v8-h-ph);row-gap:0}html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row small{grid-column:3;justify-self:start}html body.v8 #working-files.file-browser:not(#v8) .file-rows:not(.view-grid) .file-row :is(.file-thumb,.file-extension){width:40px;height:26px}html body.v8 #working-files.file-browser:not(#v8) .file-list-toolbar{gap:var(--v8-g-6)}}
/* ряд действий файла (обе разметки, R2 11.10): без фона и рамок, тусклый; строка под мышью — светлее; само действие — светлое с тонкой линией снизу */
html body.v8 #working-files:not(#v8) .v8-racts{display:flex;align-items:center;gap:var(--v8-g-6);min-width:0;white-space:nowrap;color:var(--v8-t4);font:400 var(--v8-fs-12)/1 var(--v8-sans)}
html body.v8 #working-files:not(#v8) .v8-racts .sep{font-style:normal;color:var(--v8-t4);opacity:.55}
html body.v8 #working-files:not(#v8) .v8-racts button{display:inline-flex;align-items:center;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 1px;margin:0;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit;white-space:nowrap;cursor:pointer;transition:color var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease)}
html body.v8 #working-files:not(#v8) .file-row:is(:hover,:focus-within,.is-selected) .v8-racts{color:var(--v8-t3)}
html body.v8 #working-files:not(#v8) .v8-racts button:is(:hover,:focus-visible){color:var(--v8-t1);background:none;box-shadow:inset 0 -1px 0 currentColor}
html body.v8 #working-files:not(#v8) .v8-racts button[data-act=trash]:is(:hover,:focus-visible){color:var(--v8-late)}
html body.v8 #working-files:not(#v8) .file-rows.view-grid .v8-racts{display:none}
@media(max-width:700px){html body.v8 #working-files:not(#v8) .v8-racts{display:none}}
@media(prefers-reduced-motion:reduce){html body.v8 #working-files:not(#v8) .v8-racts button{transition:none}}
/* «Файлы» (_v8_files.html), вид «список»: подпись становится ячейками строки — превью · название · действия · размер · «⋯» */
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row{grid-template-columns:24px 40px minmax(0,1fr) var(--racts-w,auto) var(--meta-w,auto) 32px}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .v8-fcap{display:contents}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .v8-more:not(#v8){grid-column:-2}
html body.v8 .v8-files .file-rows:not(.view-grid) .file-row .v8-fcap small{margin-left:0;justify-self:end;max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){html body.v8 .v8-files .file-rows:not(.view-grid) .file-row{grid-template-columns:24px 40px minmax(0,1fr) auto 32px}}
/* панель выделения над колонкой действий (владелец 11.10): те же слова и шрифт, что в строках, только светлее; × и «Добавить звук» — следом */
html body.v8 #working-files:not(#v8) .file-list-toolbar{position:relative}
html body.v8 #working-files:not(#v8) .file-selection .v8-mirrored{display:none}
html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts{color:var(--v8-t2)}
html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts button{min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 1px;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit}
html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts button:is(:hover,:focus-visible){background:none;color:var(--v8-t1);box-shadow:inset 0 -1px 0 currentColor}
html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts button[data-act=trash]{color:var(--v8-late)}
html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts button:disabled{opacity:.35;box-shadow:none;cursor:default}
html body.v8 #working-files:not(#v8) .file-selection.v8-aligned{position:absolute;top:50%;transform:translateY(-50%);gap:var(--v8-g-10);padding:0;background:none}
html body.v8 #working-files:not(#v8) .file-selection.v8-aligned>strong{position:absolute;right:calc(100% + var(--v8-g-12));margin:0;padding:0;white-space:nowrap}
html body.v8 #working-files.file-browser:not(#v8) .file-list-toolbar #file-selection.v8-aligned~.view-toggle{margin-left:auto}
/* папки «Финалов» (владелец 11.10): подписаны крупно — знак типа в плашке, название 18px, код и число файлов; плитка ниже, без пустоты */
html body.v8 .v8-files.is-root .folder-tabs{gap:var(--v8-g-12)}
html body.v8 .v8-files .folder-tabs button.v8-ftile{aspect-ratio:3/1;padding:16px 18px;align-content:end}
html body.v8 .v8-files .folder-tabs button.v8-ftile .v8-fic{position:absolute;left:18px;top:16px;display:grid;place-items:center;width:var(--v8-h-touch);height:var(--v8-h-touch);border-radius:var(--v8-r-10);background:linear-gradient(180deg,var(--v8-w5),var(--v8-w2));box-shadow:inset 0 0 0 1px var(--v8-w6),inset 0 1px 0 var(--v8-w6);color:var(--v8-t2);transition:color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files .folder-tabs button.v8-ftile .v8-fic svg{position:static;width:20px;height:20px;color:inherit}
html body.v8 .v8-files .folder-tabs button.v8-ftile:hover .v8-fic{color:var(--v8-t1)}
html body.v8 .v8-files .folder-tabs button.v8-ftile .folder-caption strong{font:600 var(--v8-fs-18)/1.25 var(--v8-sans);letter-spacing:-.01em;color:var(--v8-t1)}
html body.v8 .v8-files .folder-tabs button.v8-ftile .folder-caption small{margin-top:4px;font-size:var(--v8-fs-11);letter-spacing:.06em}
html body.v8 .v8-files .folder-tabs button.v8-ftile .folder-count{right:18px;top:18px;font:500 var(--v8-fs-22)/1 var(--v8-sans);color:var(--v8-t2);letter-spacing:-.01em}
@media(max-width:600px){html body.v8 .v8-files .folder-tabs button.v8-ftile{padding:12px 14px}html body.v8 .v8-files .folder-tabs button.v8-ftile .v8-fic{left:14px;top:12px}html body.v8 .v8-files .folder-tabs button.v8-ftile .folder-count{right:14px;top:14px;font-size:var(--v8-fs-18)}html body.v8 .v8-files .folder-tabs button.v8-ftile .folder-caption strong{font-size:var(--v8-fs-15)}}
/* путь в «Файлах»: «назад» кружком перед ним, текущая папка крупнее (владелец 11.10) */
html body.v8 .v8-crumbs .v8-crumb-back{justify-content:center;width:var(--v8-h-btn);padding:0;margin-right:var(--v8-g-6);border-radius:var(--v8-r-6);box-shadow:inset 0 0 0 1px var(--v8-w8);color:var(--v8-t2)}
html body.v8 .v8-crumbs .v8-crumb-back:hover{color:var(--v8-t1);box-shadow:inset 0 0 0 1px var(--v8-w10)}
html body.v8 .v8-crumbs [aria-current]{font-size:var(--v8-fs-15);font-weight:600}
/* проверка GPT В13: ≤700 px ряда действий у строк нет — в панели выделения снова настоящие кнопки (их hidden/disabled прежние) */
@media(max-width:700px){html body.v8 #working-files:not(#v8) .file-selection .v8-mirrored{display:inline-flex}html body.v8 #working-files:not(#v8) .file-selection .v8-bar-racts{display:none}}
/* ===== r3 (владелец 11.10): строка корней — «Папки проекта / Общая / Финалы» слева, панель загрузки справа в той же строке ===== */
html body.v8 .v8-rootbar{display:flex;align-items:center;gap:var(--v8-g-6) var(--v8-g-14);flex-wrap:wrap;margin:0 0 14px}
html body.v8 .v8-rootbar>.v8-roots{flex:1 0 auto;min-width:0;margin:0}
html body.v8 .v8-rootbar>.v8-upzone{flex:none;margin:0;min-height:0;padding:3px 4px 3px 10px}
html body.v8 .v8-rootbar>.v8-upzone .v8-chip{margin-left:var(--v8-g-4)}
@media(max-width:700px){html body.v8 .v8-rootbar{flex-direction:column;align-items:stretch}html body.v8 .v8-rootbar>.v8-roots{flex:none;width:100%}html body.v8 .v8-rootbar>.v8-upzone{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}html body.v8 .v8-rootbar>.v8-upzone>*{flex:none}html body.v8 .v8-rootbar>.v8-upzone::-webkit-scrollbar{display:none}}
html body.v8 .v8-files #upload-progress{display:grid;gap:var(--v8-g-4);margin:0 0 10px}
html body.v8 .v8-files #upload-progress:empty{display:none}
/* ===== r3 (владелец 11.10): единая плитка папки — силуэт с ушком сверху слева, значок типа, название крупно, число файлов, код мелко.
   Корень «Финалов», подпапки «Финалов», папки «Папок проекта» и «Общей», подпапки. Плитки одной высоты, файлы — с новой строки. ===== */
@property --v8-fold-a{syntax:"<color>";inherits:true;initial-value:#181b20}
@property --v8-fold-b{syntax:"<color>";inherits:true;initial-value:#13161a}
@property --v8-fold-l{syntax:"<color>";inherits:true;initial-value:rgba(255,255,255,.065)}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder){position:relative;grid-column:span 2;align-self:start;aspect-ratio:auto;min-width:0;min-height:var(--v8-h-row3);height:auto;margin:var(--v8-fold-tab) 0 0;border:0;border-radius:0 var(--v8-r-10) var(--v8-r-10) var(--v8-r-10);background:linear-gradient(180deg,var(--v8-fold-a),var(--v8-fold-b));box-shadow:inset 0 0 0 1px var(--v8-fold-l);color:var(--v8-t2);transform:none;transition:--v8-fold-a var(--v8-mid) var(--v8-ease),--v8-fold-b var(--v8-mid) var(--v8-ease),--v8-fold-l var(--v8-mid) var(--v8-ease),box-shadow var(--v8-mid) var(--v8-ease),color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder)[hidden]{display:none}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder)::before{content:"";position:absolute;left:0;bottom:calc(100% - 1px);width:var(--v8-fold-ear);height:calc(var(--v8-fold-tab) + 1px);box-sizing:border-box;border:1px solid var(--v8-fold-l);border-bottom:0;border-radius:var(--v8-r-6) var(--v8-r-10) 0 0;background:var(--v8-fold-a);pointer-events:none}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder):is(:hover,.is-drop-folder){--v8-fold-a:var(--v8-fold-ah);--v8-fold-b:var(--v8-fold-bh);--v8-fold-l:var(--v8-fold-lh);box-shadow:inset 0 0 0 1px var(--v8-fold-l),var(--v8-fold-glow);color:var(--v8-t1)}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder):is(.is-selected,.is-drop-folder){--v8-fold-l:rgba(255,48,0,.7)}
html body.v8 .v8-files:not(#v8) .file-tree>button.v8-ftile:disabled{opacity:.6;cursor:default}
/* корни «Папки проекта» / «Общая» показывают каждый свои папки (правило выше по весу не должно их вернуть) */
html body.v8 .v8-files.is-root[data-root=episodes]:not(#v8) .file-tree>[data-folder]:not([data-folder^="ep-"]),html body.v8 .v8-files.is-root[data-root=shared]:not(#v8) .file-tree>[data-folder^="ep-"][data-folder]{display:none}
/* содержимое: значок · название (+ код) · число */
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,.folder-content:not(.view-list) [data-final-folder-row]>button[data-final-folder],.file-rows.view-grid>.file-subfolder>.file-folder-open){display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;align-content:center;column-gap:var(--v8-g-12);padding:8px 14px 8px 12px;text-align:left;font:500 var(--v8-fs-13)/1.3 var(--v8-sans);cursor:pointer}
html body.v8 .v8-files:not(#v8) :is(.folder-content:not(.view-list) [data-final-folder-row]>button[data-final-folder],.file-rows.view-grid>.file-subfolder>.file-folder-open){position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding-right:10px;border:0;border-radius:inherit;background:none;box-shadow:none;color:inherit}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,[data-final-folder-row]>button[data-final-folder],.file-subfolder>.file-folder-open)>.v8-fic{position:static;display:grid;place-items:center;width:var(--v8-h-it);height:var(--v8-h-it);border-radius:var(--v8-r-8);background:linear-gradient(180deg,var(--v8-w5),var(--v8-w2));box-shadow:inset 0 0 0 1px var(--v8-w6),inset 0 1px 0 var(--v8-w6);color:var(--v8-t3);overflow:visible;transition:color var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,[data-final-folder-row]>button[data-final-folder],.file-subfolder>.file-folder-open)>.v8-fic svg{position:static;width:18px;height:18px;color:inherit}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,[data-final-folder-row],.file-subfolder):is(:hover,.is-selected) .v8-fic{color:var(--v8-t1)}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,[data-final-folder-row]>button[data-final-folder],.file-subfolder>.file-folder-open)>:is(.v8-fname,.folder-caption){display:block;min-width:0}
html body.v8 .v8-files:not(#v8) :is(.folder-tabs>button.v8-ftile,.file-tree>button.v8-ftile,[data-final-folder-row]>button[data-final-folder],.file-subfolder>.file-folder-open) :is(.v8-fname,.folder-caption>strong){display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 var(--v8-fs-15)/1.25 var(--v8-sans);letter-spacing:-.005em;color:inherit}
html body.v8 .v8-files:not(#v8) .folder-tabs>button.v8-ftile .folder-caption>small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 var(--v8-fs-11)/1.2 var(--v8-mono);letter-spacing:.04em;color:var(--v8-t4)}
html body.v8 .v8-files:not(#v8) .folder-tabs>button.v8-ftile>.folder-count,html body.v8 .v8-files:not(#v8) .file-tree>button.v8-ftile[data-count]::after,html body.v8 .v8-files:not(#v8) .folder-content:not(.view-list) [data-final-folder-row]>button[data-final-folder]::after,html body.v8 .v8-files:not(#v8) .file-rows.view-grid>.file-subfolder>.file-folder-open::after{position:static;grid-column:3;display:block;font:500 var(--v8-fs-15)/1 var(--v8-sans);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--v8-t3);text-align:right;transition:opacity var(--v8-fast) var(--v8-ease)}
html body.v8 .v8-files:not(#v8) :is(.folder-content:not(.view-list) [data-final-folder-row]>button[data-final-folder],.file-rows.view-grid>.file-subfolder>.file-folder-open)::after{content:attr(data-count);min-width:var(--v8-h-sm);padding-right:4px}
html body.v8 .v8-files:not(#v8) .file-rows.view-grid>.file-subfolder>.file-folder-open::after{min-width:calc(var(--v8-h-sm) * 2 + var(--v8-g-4))}
html body.v8 .v8-files:not(#v8) .file-tree>button.v8-ftile:is([data-count=""],[data-count="0"])::after{display:none}
/* галочка и «⋯» подпапки — справа по центру, по наведению; число в это время гаснет */
html body.v8 .v8-files:not(#v8) .folder-content:not(.view-list) [data-final-folder-row]>.final-select-check,html body.v8 .v8-files:not(#v8) .file-rows.view-grid>.file-subfolder>.file-folder-check{top:50%;right:12px;left:auto;transform:translateY(-50%);z-index:3}
html body.v8 .v8-files:not(#v8) .file-rows.view-grid>.file-subfolder>.file-folder-check{right:calc(10px + var(--v8-h-sm) + var(--v8-g-4))}
html body.v8 .v8-files:not(#v8) .file-rows.view-grid>.file-subfolder>.v8-more{top:50%;right:10px;transform:translateY(-50%);background:none}
html body.v8 .v8-files:not(#v8) :is(.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder):is(:hover,:focus-within,.is-selected)>button::after,html body.v8 .v8-files.has-selection:not(#v8) .file-rows.view-grid>.file-subfolder>button::after,html body.v8 .v8-files:not(#v8):has(#final-selection.has-items) .folder-content:not(.view-list) [data-final-folder-row]>button::after{opacity:0}
@media(hover:none){html body.v8 .v8-files:not(#v8) :is(.folder-content:not(.view-list) [data-final-folder-row],.file-rows.view-grid>.file-subfolder)>button::after{opacity:0}}
/* файлы начинаются с новой строки под папками — ряд папок ровный */
html body.v8 .v8-files:not(#v8) :is(.folder-content:not(.view-list),.file-rows.view-grid)>.file-row:not([hidden]):not(.file-row:not([hidden])~.file-row){grid-column-start:1}
/* вид «список»: папка — строка слева направо, значок без плашки, число справа */
html body.v8 .v8-files:not(#v8) :is(.folder-content.view-list [data-final-folder-row]>button[data-final-folder],.file-rows:not(.view-grid)>.file-subfolder>.file-folder-open){justify-content:flex-start;text-align:left;min-width:0}
html body.v8 .v8-files:not(#v8) :is(.folder-content.view-list [data-final-folder-row]>button[data-final-folder],.file-rows:not(.view-grid)>.file-subfolder>.file-folder-open)>.v8-fic{display:inline-grid;width:auto;height:auto;background:none;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-files:not(#v8) :is(.folder-content.view-list [data-final-folder-row]>button[data-final-folder],.file-rows:not(.view-grid)>.file-subfolder>.file-folder-open)>.v8-fic svg{position:static;width:16px;height:16px}
html body.v8 .v8-files:not(#v8) :is(.folder-content.view-list [data-final-folder-row]>button[data-final-folder],.file-rows:not(.view-grid)>.file-subfolder>.file-folder-open)>.v8-fname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-files:not(#v8) :is(.folder-content.view-list [data-final-folder-row]>button[data-final-folder],.file-rows:not(.view-grid)>.file-subfolder>.file-folder-open)::after{content:attr(data-count);margin-left:auto;padding-right:8px;font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4)}
/* ===== r3 (владелец 11.10): ряд действий у строк файлов «Финалов» (вид «список») — как у рабочих файлов ===== */
html body.v8 .v8-files:not(#v8) .folder-content.view-list .file-row{grid-template-columns:40px minmax(0,1fr) var(--racts-w,auto) 32px}
html body.v8 #v8-finals:not(#v8) .v8-racts{display:flex;align-items:center;gap:var(--v8-g-6);min-width:0;white-space:nowrap;color:var(--v8-t4);font:400 var(--v8-fs-12)/1 var(--v8-sans)}
html body.v8 #v8-finals:not(#v8) .v8-racts .sep{font-style:normal;color:var(--v8-t4);opacity:.55}
html body.v8 #v8-finals:not(#v8) .v8-racts button{display:inline-flex;align-items:center;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 1px;margin:0;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit;white-space:nowrap;cursor:pointer;transition:color var(--v8-fast) var(--v8-ease),box-shadow var(--v8-fast) var(--v8-ease)}
html body.v8 #v8-finals:not(#v8) .file-row:is(:hover,:focus-within,.is-selected) .v8-racts{color:var(--v8-t3)}
html body.v8 #v8-finals:not(#v8) .v8-racts button:is(:hover,:focus-visible){color:var(--v8-t1);background:none;box-shadow:inset 0 -1px 0 currentColor}
html body.v8 #v8-finals:not(#v8) .v8-racts button[data-act=trash]:is(:hover,:focus-visible){color:var(--v8-late)}
@media(max-width:700px){html body.v8 #v8-finals:not(#v8) .v8-racts{display:none}}
@media(prefers-reduced-motion:reduce){html body.v8 #v8-finals:not(#v8) .v8-racts button{transition:none}}
html body.v8 #v8-finals:not(#v8) .folder-content:not(.view-list) .v8-racts{display:none}
html body.v8 #v8-finals:not(#v8) #final-selection:not(.has-items) .v8-bar-racts{display:none}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-mirrored{display:none}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts{color:var(--v8-t2)}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts button{min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 1px;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts button:is(:hover,:focus-visible){background:none;color:var(--v8-t1);box-shadow:inset 0 -1px 0 currentColor}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts button[data-act=trash]{color:var(--v8-late)}
html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts button:disabled{opacity:.35;box-shadow:none;cursor:default}
html body.v8 #v8-finals:not(#v8) #final-selection.v8-aligned{position:absolute;top:50%;margin:0;transform:translateY(-50%);gap:var(--v8-g-10);flex-wrap:nowrap}
html body.v8 #v8-finals:not(#v8) #final-selection.v8-aligned>strong{position:absolute;right:calc(100% + var(--v8-g-12));margin:0;white-space:nowrap}
html body.v8 #v8-finals:not(#v8) #final-selection.v8-aligned #final-selection-status{position:absolute;top:100%;left:0;width:max-content;max-width:min(520px,60vw);flex:none}
html body.v8 #v8-finals:not(#v8):has(#final-selection.v8-aligned) .v8-ffilters{visibility:hidden}
@media(max-width:700px){html body.v8 #v8-finals:not(#v8) #final-selection.has-items .v8-mirrored{display:inline-flex}html body.v8 #v8-finals:not(#v8) #final-selection .v8-bar-racts{display:none}}
/* v8, волна D (11.10.2026): «Сдача», «Проверка пакета», «Хранилище», «Моя выработка» — вид поверх прежней разметки и скриптов
   (delivery.html, check.html + _check_js.html, storage.html, production_output.html). Общие куски экранов волны D:
   действия шапки справа, герой, строки с фиксированными столбцами, поля, сообщения. Размеры — токенами _v8_tokens.html. */
html body.v8 :is(.v8-deliv,.v8-check,.v8-storage,.v8-output){max-width:none}
html body.v8 .v8-page .v8-head>.r{margin-left:auto;display:flex;align-items:center;gap:var(--v8-g-6);flex-wrap:wrap}
html body.v8 .v8-page .v8-hero9 .big .lbl{font:400 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .v8-page .v8-row.head{min-height:var(--v8-h-btn);font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-page .v8-row.head:hover{background:none}
html body.v8 .v8-page .v8-row .c-title strong{font-weight:400;color:inherit}
html body.v8 .v8-page .v8-row .c-title em{font-style:normal;color:var(--v8-t3)}
html body.v8 .v8-page .v8-row .c-act{display:flex;align-items:center;justify-content:flex-end;gap:var(--v8-g-6)}
html body.v8 .v8-page .v8-row .c-act form{margin:0}
html body.v8 .v8-page .v8-btn.danger{color:var(--v8-late)}
html body.v8 .v8-page .v8-btn.danger:hover{background:rgba(255,110,90,.08)}
html body.v8 .v8-page .v8-btn:disabled{opacity:.45;cursor:default}
@media(max-width:1000px){html body.v8 .v8-page .v8-row .c-h{display:none}}
/* формы и сообщения */
html body.v8 .v8-form{display:grid;gap:var(--v8-g-10);margin:0 0 14px}
html body.v8 .v8-page .v8-form label{display:grid;gap:var(--v8-g-5);margin:0;font:400 var(--v8-fs-12)/1.4 var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-page .v8-form>:is(a,button){justify-self:start}
html body.v8 .v8-deliv .v8-form label>span>span{color:var(--v8-t1);font-weight:500}
html body.v8 .v8-actrow{display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap;margin-top:4px}
html body.v8 .v8-msg{margin:0;font-size:var(--v8-fs-13);color:var(--v8-t3);overflow-wrap:anywhere}
html body.v8 .v8-msg.warn{color:var(--v8-o)}
html body.v8 .v8-msg.err,html body.v8 .v8-msg[role=alert]:not(:empty){color:var(--v8-late)}
html body.v8 .v8-msg[hidden]{display:none}
/* ---- сдача ---- */
html body.v8 .v8-deliv .v8-pack .v8-row{grid-template-columns:36px minmax(0,1fr) 56px 64px}
html body.v8 .v8-deliv .v8-hist .v8-row{grid-template-columns:44px minmax(0,1fr) auto auto}
@media(max-width:700px){html body.v8 .v8-deliv .v8-hist .v8-row{grid-template-columns:44px minmax(0,1fr);padding:6px 10px}html body.v8 .v8-deliv .v8-hist .v8-row :is(.c-m,.c-act){grid-column:2;justify-content:flex-start;text-align:left}}
html body.v8 .v8-dgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--v8-g-28);align-items:start}
@media(max-width:1000px){html body.v8 .v8-dgrid{grid-template-columns:minmax(0,1fr)}}
html body.v8 .v8-dgrid .v8-sec{margin-top:40px}
html body.v8 .v8-epsel{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:var(--v8-g-10)}
html body.v8 .v8-epsel .c-code{font:600 var(--v8-fs-13) var(--v8-cond);letter-spacing:.06em;color:var(--v8-t1)}
html body.v8 .v8-prog-box{margin:0 0 12px;padding:12px 14px;border-radius:var(--v8-r-10);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5)}
html body.v8 .v8-prog-box .dp-head{display:flex;justify-content:space-between;gap:var(--v8-g-10);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-prog-box .dp-bar,html body.v8 .v8-prog-box .dp-mini{position:relative;height:2px;margin:8px 0;background:var(--v8-w10);border-radius:var(--v8-r-1);overflow:hidden}
html body.v8 .v8-prog-box .dp-bar i,html body.v8 .v8-prog-box .dp-mini i{display:block;height:100%;width:0;background:var(--v8-org);transition:width .6s}
html body.v8 .v8-prog-box p{margin:4px 0 0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-prog-box .dp-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto 80px;gap:var(--v8-g-10);align-items:center;min-height:var(--v8-h-btn);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-prog-box .dp-done .dp-ic{color:var(--v8-g)}html body.v8 .v8-prog-box .dp-error .dp-ic{color:var(--v8-late)}html body.v8 .v8-prog-box .dp-running .dp-ic{color:var(--v8-y)}
/* ---- проверка пакета ---- */
html body.v8 .v8-check .check-top{display:grid;gap:var(--v8-g-10);background:none;border:0;padding:22px 24px}
html body.v8 .v8-check .check-summary{display:flex;gap:var(--v8-g-14);flex-wrap:wrap;align-items:baseline;font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-check .check-summary .check-verdict{font:600 var(--v8-fs-22)/1.2 var(--v8-sans);letter-spacing:-.015em;color:var(--v8-t1);flex-basis:100%}
html body.v8 .v8-check .check-summary .check-metrics{display:flex;gap:var(--v8-g-14);flex-wrap:wrap;font-size:var(--v8-fs-13)}
html body.v8 .v8-check .check-summary :is(.is-error){color:var(--v8-late)}html body.v8 .v8-check .check-summary .is-warn{color:var(--v8-y)}html body.v8 .v8-check .check-summary :is(.is-ok,.is-fixc){color:var(--v8-g)}
html body.v8 .v8-check .check-summary .muted{color:var(--v8-t3)}
html body.v8 .v8-check .check-progress{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-check .check-progress .check-bar{grid-column:1/-1;height:2px;background:var(--v8-w10);border-radius:var(--v8-r-1);overflow:hidden}
html body.v8 .v8-check .check-progress .check-bar i{display:block;height:100%;width:0;background:var(--v8-org);transition:width .6s}
html body.v8 .v8-check .check-progress b{font:500 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t2)}
html body.v8 .v8-check .check-note{margin:0;padding:6px 10px;border-radius:var(--v8-r-6);background:var(--v8-w3);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-check .check-note.is-ok{color:var(--v8-g)}html body.v8 .v8-check .check-note.is-warn{color:var(--v8-o)}
html body.v8 .v8-check .check-src{margin:0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-check .check-src:empty{display:none}
html body.v8 .v8-check .check-review-box{padding:10px 12px;border-radius:var(--v8-r-8);background:var(--v8-w2);box-shadow:inset 2px 0 0 var(--v8-red);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-check .check-review-box p{margin:0 0 6px}
html body.v8 .v8-check :is(.check-script,.check-rules){margin:0}
html body.v8 .v8-check :is(.check-script,.check-rules)>summary{list-style:none;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);padding:0 8px;margin-left:-8px;border-radius:var(--v8-r-6);color:var(--v8-t3);font-size:var(--v8-fs-13);cursor:pointer}
html body.v8 .v8-check :is(.check-script,.check-rules)>summary::-webkit-details-marker{display:none}
html body.v8 .v8-check :is(.check-script,.check-rules)>summary:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.v8 .v8-check :is(.check-script,.check-rules)>summary b{font-weight:500;color:inherit}
html body.v8 .v8-check .check-script textarea{margin:8px 0;font-family:var(--v8-mono);font-size:var(--v8-fs-12)}
html body.v8 .v8-check .check-rules{margin-top:32px}
html body.v8 .v8-check .check-rules p{margin:12px 0 4px;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-check .check-rules ul{margin:0;padding-left:18px;color:var(--v8-t3);font-size:var(--v8-fs-12);display:grid;gap:var(--v8-g-3)}
html body.v8 .v8-check .check-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v8-g-28);align-items:start;margin-top:24px}
html body.v8 .v8-check .check-layout:has(#check-player:not([hidden])){grid-template-columns:minmax(0,1fr) 300px}
@media(max-width:900px){html body.v8 .v8-check .check-layout,html body.v8 .v8-check .check-layout:has(#check-player:not([hidden])){grid-template-columns:minmax(0,1fr)}}
html body.v8 .v8-check .check-main{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v8-g-14);min-width:0}
/* вкладки серий — строка вкладок v8 */
html body.v8 .v8-check .check-tabs{display:flex;gap:var(--v8-g-2);flex-wrap:wrap;overflow-x:visible;scrollbar-width:none;padding:0;background:none;border:0;border-radius:0}
html body.v8 .v8-check .check-tabs .check-tab{position:relative;flex:none;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-row);height:var(--v8-h-row);padding:0 10px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);cursor:pointer}
html body.v8 .v8-check .check-tabs .check-tab:hover{color:var(--v8-t2)}
html body.v8 .v8-check .check-tabs .check-tab.on{color:var(--v8-t1);background:none;box-shadow:none}
html body.v8 .v8-check .check-tabs .check-tab.on::after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
html body.v8 .v8-check .check-tabs .check-tab i{font:400 var(--v8-fs-11) var(--v8-mono);font-style:normal}
html body.v8 .v8-check .check-tabs .check-tab .is-error{color:var(--v8-late)}html body.v8 .v8-check .check-tabs .check-tab .is-warn{color:var(--v8-y)}html body.v8 .v8-check .check-tabs .check-tab .is-ok{color:var(--v8-g)}
html body.v8 .v8-check .check-tabs .check-tab.is-stale{opacity:.7}
html body.v8 .v8-check .check-tabs .check-tab.is-done{color:var(--v8-g);background:linear-gradient(180deg,transparent,rgba(95,168,107,.12));border-radius:var(--v8-r-6) var(--v8-r-6) 0 0}html body.v8 .v8-check .check-tabs .check-tab.is-done.on{color:var(--v8-t1)}
html body.v8 .v8-check .check-panel{display:grid;gap:var(--v8-g-14);padding:0;border:0;background:none;box-shadow:none;min-width:0;overflow-wrap:anywhere}
html body.v8 .v8-check .check-ep-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--v8-g-10);flex-wrap:wrap}
html body.v8 .v8-check .check-ep-head h3{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1);margin:0}
html body.v8 .v8-check .check-section{display:grid;gap:var(--v8-g-6);padding-top:12px;border-top:0;position:relative}
html body.v8 .v8-check .check-section>header{display:flex;gap:var(--v8-g-10);align-items:center;padding-bottom:8px;position:relative}
html body.v8 .v8-check .check-section>header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8 .v8-check .check-section h4{margin:0;font:600 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-check .check-section-count{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-check :is(.check-section-hint,.check-legend,.check-explanation){display:none}
/* замечание — строка: статус · текст · чип таймкода (→ плеер) · действия */
html body.v8 .v8-check .check-list{display:grid;gap:0;margin:0;padding:0;list-style:none}
html body.v8 .v8-check .check-list>li{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-6) var(--v8-g-10);min-height:var(--v8-h-row);padding:6px 10px;margin:0;border:0;border-radius:var(--v8-r-8);background:none;box-shadow:none;font-size:var(--v8-fs-13);line-height:1.45;color:var(--v8-t2)}
html body.v8 .v8-check .check-list>li+li::after{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w4) 15%,var(--v8-w4) 85%,transparent)}
html body.v8 .v8-check .check-list>li:hover{background:var(--v8-w3)}
html body.v8 .v8-check .check-list>li::before{flex:none;width:14px;text-align:center;font:500 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-check .check-list .is-error{color:var(--v8-t2)}html body.v8 .v8-check .check-list .is-error::before{color:var(--v8-late)}
html body.v8 .v8-check .check-list .is-warn{color:var(--v8-t2)}html body.v8 .v8-check .check-list .is-warn::before{color:var(--v8-y)}
html body.v8 .v8-check .check-list .is-ok::before{color:var(--v8-g)}
html body.v8 .v8-check .check-list li.is-active{background:var(--v8-w4);box-shadow:inset 2px 0 0 var(--v8-red);margin:0;padding:6px 10px}
html body.v8 .v8-check .check-list li.is-skipped{opacity:.55}
html body.v8 .v8-check .check-list .check-finding{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v8-g-6);padding:8px 10px;border:0;background:none;box-shadow:none;margin:0}
html body.v8 .v8-check .check-list .check-finding::before{display:none}
html body.v8 .v8-check .finding-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--v8-g-6) var(--v8-g-10)}
html body.v8 .v8-check .finding-status{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--v8-t3);margin-right:auto}
html body.v8 .v8-check .is-error .finding-status{color:var(--v8-late)}html body.v8 .v8-check .is-warn .finding-status{color:var(--v8-y)}
html body.v8 .v8-check .check-finding .check-text{font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .v8-check .check-text p{margin:0}
html body.v8 .v8-check .finding-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-6);padding-top:0;border-top:0}
html body.v8 .v8-check :is(.check-time,.check-point){display:inline-flex;align-items:center;gap:var(--v8-g-5);height:20px;min-height:var(--v8-g-20);padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono);line-height:1;white-space:nowrap;cursor:pointer;box-shadow:none}
html body.v8 .v8-check :is(.check-time,.check-point):hover{background:rgba(255,48,0,.25);color:var(--v8-t1)}
html body.v8 .v8-check .check-time-empty{font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t4)}
html body.v8 .v8-check .check-text[data-jump]{cursor:pointer}
html body.v8 .v8-check :is(.check-ai,button.check-tag){display:inline-flex;align-items:center;height:var(--v8-h-sm);min-height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans);cursor:pointer;white-space:nowrap}
html body.v8 .v8-check button.check-tag.is-opt{color:var(--v8-t3);background:transparent;box-shadow:none}
html body.v8 .v8-check :is(.check-ai,button.check-tag):hover{background:rgba(255,255,255,.07);color:var(--v8-t1)}
html body.v8 .v8-check .check-skip{margin-left:auto;display:inline-flex;align-items:center;gap:var(--v8-g-5);min-height:var(--v8-h-sm);padding:0 6px;font-size:var(--v8-fs-12);color:var(--v8-t3);cursor:pointer}
html body.v8 .v8-check .check-skip-by{margin-left:4px;font-size:var(--v8-fs-11);color:var(--v8-t4)}
html body.v8 .v8-check .check-skip input{width:14px;height:14px;margin:0;accent-color:var(--v8-t1)}
html body.v8 .v8-check .check-fixes{display:grid;gap:var(--v8-g-6);padding:10px 12px;border:0;border-radius:var(--v8-r-10);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5)}
html body.v8 .v8-check .check-fixes h4{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-10);margin:0;font:600 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-check .check-fixes h4 small{color:var(--v8-t3);font-weight:400}
html body.v8 .v8-check .check-apply{position:relative;margin-left:auto;display:inline-flex;align-items:center;height:var(--v8-h-btn);min-height:var(--v8-h-btn);padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans);cursor:pointer}
html body.v8 .v8-check .check-apply::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent)}
html body.v8 .v8-check .check-apply:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .v8-check .check-edits li{align-items:baseline}
html body.v8 .v8-check .check-edits input{width:14px;height:14px;accent-color:var(--v8-t1)}
html body.v8 .v8-check .check-diff{font-size:var(--v8-fs-12);color:var(--v8-t2)}
html body.v8 .v8-check .check-diff em{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em;color:var(--v8-t4);font-style:normal}
html body.v8 .v8-check .check-diff .was{color:var(--v8-t3);text-decoration:line-through}
html body.v8 .v8-check :is(.check-passed,.check-applied)>summary{list-style:none;cursor:pointer;min-height:var(--v8-h-btn);display:inline-flex;align-items:center;gap:var(--v8-g-6);color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-check .check-notes{display:flex;flex-wrap:wrap;gap:var(--v8-g-6);margin:6px 0 0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-check .check-side{position:sticky;top:16px;display:grid;gap:var(--v8-g-6);padding:0;border:0;background:none;box-shadow:none}
html body.v8 .v8-check .check-side video{width:100%;aspect-ratio:9/16;max-height:calc(100dvh - 140px);border-radius:var(--v8-r-10);background:#000;object-fit:contain}
html body.v8 .v8-check .check-player-cap{display:flex;gap:var(--v8-g-10);align-items:baseline}
html body.v8 .v8-check .check-player-cap b{font:600 var(--v8-fs-13) var(--v8-cond);letter-spacing:.06em;color:var(--v8-t1)}
html body.v8 .v8-check .check-player-cap span{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
@media(max-width:900px){html body.v8 .v8-check .check-side{position:sticky;top:56px;z-index:4;margin:0 -16px;padding:8px 16px;background:rgba(16,19,22,.95);order:-1}html body.v8 .v8-check .check-side video{aspect-ratio:auto;height:min(30dvh,300px)}}
html body.v8 .v8-check .check-chat{position:sticky;bottom:0;display:grid;gap:var(--v8-g-10);padding:12px;border:0;border-radius:var(--v8-r-12);background:var(--v8-panel);box-shadow:var(--v8-sh-pop)}
html body.v8 .v8-check .check-chat-head{display:flex;justify-content:space-between;gap:var(--v8-g-10);align-items:flex-start;font-size:var(--v8-fs-12);color:var(--v8-t3);padding:0;border:0}
html body.v8 .v8-check .check-chat-log{display:grid;gap:var(--v8-g-6);max-height:200px;overflow:auto;font-size:var(--v8-fs-13)}
html body.v8 .v8-check .check-chat-log :is(.me,.ai){padding:7px 12px;border-radius:var(--v8-r-14) var(--v8-r-14) var(--v8-r-14) var(--v8-r-5);background:linear-gradient(180deg,#21252b,#1b1e23);box-shadow:0 1px 2px rgba(0,0,0,.35),inset 0 1px 0 var(--v8-w5);color:var(--v8-t2);max-width:85%}
html body.v8 .v8-check .check-chat-log .me{justify-self:end;border-radius:var(--v8-r-14) var(--v8-r-14) var(--v8-r-5) var(--v8-r-14);background:linear-gradient(180deg,#1e2227,#181b1f)}
html body.v8 .v8-check .check-chat-log .ai{justify-self:start;white-space:pre-wrap}
html body.v8 .v8-check .check-chat-form{display:flex;gap:var(--v8-g-6)}
html body.v8 .v8-check .check-chat-act{display:flex;gap:var(--v8-g-6);flex-wrap:wrap;align-items:center}
html body.v8 .v8-check .check-chat-act button{height:var(--v8-h-btn);min-height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-check .notice{margin:0;padding:8px 12px;border:0;border-radius:var(--v8-r-8);background:var(--v8-w3);color:var(--v8-t2);font-size:var(--v8-fs-13)}
/* старые правила по id (#check-run, #check-script-save, #check-chat-send) весомее классов — возвращаем вид v8 */
html body.v8 .v8-check #check-run.v8-btn{background:transparent;border:0;box-shadow:none;color:var(--v8-t2);min-height:var(--v8-h-btn);height:var(--v8-h-btn);border-radius:var(--v8-r-6);font-weight:500}
html body.v8 .v8-check #check-run.v8-btn:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .v8-page :is(#check-script-save,#check-chat-send,.v8-deliv #check-run).v8-btn{background:var(--v8-w5);border:0;box-shadow:var(--v8-sh-btn);color:var(--v8-t1);min-height:var(--v8-h-sm);height:var(--v8-h-sm);border-radius:var(--v8-r-6);font-weight:500}
html body.v8 .v8-page :is(#check-script-save,#check-chat-send,.v8-deliv #check-run).v8-btn:hover{background:rgba(255,255,255,.07)}
html body.v8 .v8-page #check-chat-close.v8-ibt{display:inline-grid;width:var(--v8-h-btn);min-width:var(--v8-h-btn);height:var(--v8-h-btn);min-height:var(--v8-h-btn);font-size:var(--v8-fs-16)}
/* ---- хранилище ---- */
html body.v8 .v8-stor-prog{margin:14px 0 4px;max-width:520px}
html body.v8 .v8-stor-proj .v8-row{grid-template-columns:44px minmax(0,1fr) 64px 72px 96px}
html body.v8 .v8-trash .v8-row{grid-template-columns:minmax(0,1fr) 80px 180px auto;padding-block:4px}
html body.v8 .v8-srow{grid-template-columns:minmax(0,1fr) 88px auto;padding-block:4px}
@media(max-width:1000px){html body.v8 .v8-stor-proj .v8-row{grid-template-columns:44px minmax(0,1fr) 56px 64px}html body.v8 .v8-trash .v8-row{grid-template-columns:minmax(0,1fr) auto}html body.v8 .v8-trash .v8-row .c-m{display:none}}
@media(max-width:600px){html body.v8 .v8-srow,html body.v8 .v8-trash .v8-row{grid-template-columns:minmax(0,1fr)}html body.v8 :is(.v8-srow,.v8-trash .v8-row) .c-act{justify-content:flex-start}html body.v8 .v8-srow .c-m{text-align:left}html body.v8 .v8-page .v8-srow .c-title,html body.v8 .v8-trash .v8-row .c-title{white-space:normal;-webkit-mask-image:none;mask-image:none;overflow-wrap:anywhere}}
html body.v8 .v8-sgrp>summary{list-style:none;cursor:pointer}
html body.v8 .v8-sgrp>summary::-webkit-details-marker{display:none}
html body.v8 .v8-sgrp>summary h2::after{content:"";width:6px;height:6px;margin-left:4px;border-right:1px solid var(--v8-t3);border-bottom:1px solid var(--v8-t3);transform:rotate(-45deg);transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-sgrp[open]>summary h2::after{transform:rotate(45deg)}
html body.v8 .v8-ssub{margin:0 0 4px}
html body.v8 .v8-ssub>summary{list-style:none;display:flex;align-items:center;gap:var(--v8-g-10);min-height:var(--v8-h-row);padding:0 10px;border-radius:var(--v8-r-8);color:var(--v8-t2);font-size:var(--v8-fs-13);cursor:pointer}
html body.v8 .v8-ssub>summary::-webkit-details-marker{display:none}
html body.v8 .v8-ssub>summary:hover{background:var(--v8-w3)}
html body.v8 .v8-ssub>summary svg{color:var(--v8-t3);transform:rotate(-90deg);transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-ssub[open]>summary svg{transform:none}
html body.v8 .v8-ssub>summary .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-ssub>summary .v8-mono{margin-left:auto;color:var(--v8-t3)}
html body.v8 .v8-ssub .v8-rows{padding-left:22px}
html body.v8 .v8-purge>summary{list-style:none}
html body.v8 .v8-purge>summary::-webkit-details-marker{display:none}
html body.v8 .v8-purge .v8-pop{display:grid;gap:var(--v8-g-10);padding:10px;min-width:260px}
html body.v8 .v8-purge .v8-pop label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
/* ---- выработка ---- */
html body.v8 .v8-out-rows .v8-row{grid-template-columns:minmax(0,1fr) 140px 80px 96px}
@media(max-width:600px){html body.v8 .v8-out-rows .v8-row{grid-template-columns:minmax(0,1fr) 64px 72px}html body.v8 .v8-out-rows .v8-row>:nth-child(2){display:none}}
/* 12.10.2026: где не разобрано (ссылки), передача клиенту с причиной, правки — ещё раз / вручную / откатить, «Исправлю сам · всё разобрано» */
html body.v8 .v8-check .check-spots{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-6);margin-top:8px;font-size:var(--v8-fs-12)}
html body.v8 .v8-check .check-spot{height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w3);color:var(--v8-y);font:500 var(--v8-fs-12) var(--v8-sans);cursor:pointer}
html body.v8 .v8-check .check-spot.is-error{color:var(--v8-late)}html body.v8 .v8-check .check-spot:hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 .v8-check .check-handoff{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-10)}
html body.v8 .v8-check .check-handoff [aria-disabled=true]{opacity:.6}
html body.v8 .v8-check .check-handoff-why{font-size:var(--v8-fs-13);color:var(--v8-t3)}html body.v8 .v8-check .check-handoff-why.is-error{color:var(--v8-late)}html body.v8 .v8-check .check-handoff-why.is-warn{color:var(--v8-y)}html body.v8 .v8-check .check-handoff-why.is-ok{color:var(--v8-g)}
html body.v8 .v8-check .check-review-act{display:flex;flex-wrap:wrap;gap:var(--v8-g-6);flex-basis:100%}
html body.v8 .v8-check .check-hand{display:grid;grid-template-columns:minmax(0,1fr) 120px 120px;gap:var(--v8-g-10);align-items:end;flex-basis:100%;padding:8px 0}
html body.v8 .v8-check .check-hand label{display:grid;gap:4px;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-check .check-hand-act{display:flex;gap:var(--v8-g-6);grid-column:1/-1}
@media(max-width:600px){html body.v8 .v8-check .check-hand{grid-template-columns:1fr 1fr}html body.v8 .v8-check .check-hand label:first-child{grid-column:1/-1}}
html body.v8 .v8-check .check-fixes-done{background:none;box-shadow:none;padding:0}
html body.v8 .v8-check .check-fixes-done>summary{list-style:none;cursor:pointer;min-height:var(--v8-h-btn);display:inline-flex;align-items:center;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-check .check-ep-head .check-ai{margin-left:auto}
html body.v8 .v8-check .check-runbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-14)}
html body.v8 .v8-check #check-run.v8-btn.check-run-main{min-height:44px;height:44px;padding:0 18px;gap:var(--v8-g-10);border-radius:var(--v8-r-8);background:linear-gradient(110deg,#9c211e,#a6420d);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 2px rgba(0,0,0,.4);color:#fff;font:600 var(--v8-fs-15) var(--v8-sans);font-variant-numeric:tabular-nums}
html body.v8 .v8-check #check-run.v8-btn.check-run-main:hover{filter:brightness(1.12);color:#fff}
html body.v8 .v8-check .check-run-main:disabled{opacity:.85;cursor:progress}
html body.v8 .v8-check .check-run-when{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .v8-check .check-more{height:20px;padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-w4);color:var(--v8-t2);font:500 var(--v8-fs-11) var(--v8-sans);cursor:pointer}
html body.v8 .v8-check .check-more-body{display:contents}html body.v8 .v8-check .check-more-body[hidden]{display:none}
/* v8, волна D (11.10.2026): «Доски» — доска идей (_board.html + board.css/board.js без изменений логики), «Серии по стадиям»
   (project_plan.html), кастинг серии (_series_cast.html), банк материалов (material_bank.html) и окно имени карточки каталога.
   board.css подключается в теле страницы, позже v8.css, поэтому селекторы здесь начинаются с html body.v8 и весомее.
   Палитра инструментов — стеклянная (§3.16 .ptb): выбранный инструмент — красная линия снизу, не заливка. */
html body.v8 .v8-boards{max-width:none}
html body.v8 .v8-btabs{margin:0 0 16px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
html body.v8 .v8-btabs a{flex:none}html body.v8 .v8-btabs a svg{color:var(--v8-t3)}
html body.v8 .v8-bpane[hidden]{display:none}
/* класс страницы ставит _v8_board_head (раньше — body:has(.v8-boards): правило :has() у body заставляло браузер перепроверять всю
   страницу на любое изменение DOM, в т. ч. на столе серии) */
html body.v8.v8-boards-page .title-head .title-main{display:none}
html body.v8.v8-boards-page .title-head .title-band{grid-template-columns:minmax(0,1fr);justify-items:end;padding-top:14px;padding-bottom:12px}
@media(max-width:900px){html body.v8.v8-boards-page .title-head .title-band{justify-items:start}}
/* «Производство» — справа в строке заголовка «Доски · проект»; полоса над заголовком пустая и скрыта */
html body.v8.v8-boards-page .title-head.v8-prod-moved .title-band{display:none}
html body.v8 .v8-bhead.has-prod{align-items:center}
html body.v8 .v8-bhead.has-prod>.r{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:flex-end}
html body.v8 .v8-bhead.has-prod>.r>.title-prod{order:2;margin:0;max-width:none;min-width:0;justify-items:end}
html body.v8 .v8-bhead.has-prod>.r>.title-prod{gap:var(--v8-g-10);font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-bhead.has-prod>.r>.title-prod>.title-prod-content{gap:var(--v8-g-10);justify-items:end}
html body.v8 .v8-bhead.has-prod>.r>.title-prod>summary{font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:.06em;text-transform:none;font-variant-caps:all-small-caps;color:var(--v8-t3)}
html body.v8 .v8-bhead.has-prod>.r>.title-prod>summary::after{display:none}
html body.v8 .v8-bhead.has-prod>.r>.title-prod .title-facts{justify-content:flex-end;gap:var(--v8-g-18);font:400 var(--v8-fs-13) var(--v8-sans);letter-spacing:0;text-transform:none;color:var(--v8-t3)}
html body.v8 .v8-bhead.has-prod>.r>.title-prod .title-facts>span{gap:var(--v8-g-6);font:inherit;letter-spacing:0;text-transform:none}
html body.v8 .v8-bhead.has-prod>.r>.title-prod .title-facts b{font:500 var(--v8-fs-13) var(--v8-mono);letter-spacing:0;color:var(--v8-t2)}
/* переключение вкладок досок — новая страница разной высоты: место под полосу прокрутки постоянное, иначе всё сдвигается вбок */
html.v8-boards-page{scrollbar-gutter:stable}
@media(max-width:900px){html body.v8 .v8-bhead.has-prod{align-items:flex-start;flex-wrap:wrap}html body.v8 .v8-bhead.has-prod>.r{justify-content:flex-start}html body.v8 .v8-bhead.has-prod>.r>.title-prod{justify-items:start}}
/* ---- доска: поле с точечной сеткой 4 % ---- */
html body.v8 .cvwrap{border:1px solid rgba(255,255,255,.045);border-radius:var(--v8-r-14);background:#121518;box-shadow:var(--v8-sh-lift);font-family:var(--v8-sans);--dots:rgba(255,255,255,.04)}
html body.v8 .cvwrap:fullscreen,html body.v8 .cvwrap.cv-full{border:0;border-radius:0}
html body.v8 .cvwrap .canvas{background-image:radial-gradient(rgba(200,214,238,0.0400) 1px,transparent 1px);background-size:24px 24px}
html body.v8 .cvwrap .cv-empty{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:80%;font:400 var(--v8-fs-13) var(--v8-sans);letter-spacing:0;text-transform:none;color:var(--v8-t4)}
/* стеклянная палитра инструментов */
html body.v8 .cvwrap .cv-tools{top:10px;left:50%;transform:translateX(-50%);gap:var(--v8-g-2);padding:4px;max-width:calc(100% - 20px);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:var(--v8-r-10);background:#0b0f1547;border:1px solid #ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 18px rgba(0,0,0,.25)}
html body.v8 .cvwrap .cv-tools::-webkit-scrollbar{display:none}
html body.v8 .cvwrap .cv-tools .tb{position:relative;flex:none;width:28px;height:28px;border-radius:var(--v8-r-6);background:transparent;color:#e6e9ee;opacity:.75;transition:opacity var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.v8 .cvwrap .cv-tools .tb svg{width:16px;height:16px}
html body.v8 .cvwrap .cv-tools .tb:hover{opacity:1;background:#ffffff1a;color:#fff}
html body.v8 .cvwrap .cv-tools .tb.on{opacity:1;background:transparent;color:#fff}
html body.v8 .cvwrap .cv-tools .tb.on::after{content:"";position:absolute;left:28%;right:28%;bottom:2px;height:1px;background:var(--v8-red)}
html body.v8 .cvwrap .cv-tools .tb:disabled{opacity:.3}
html body.v8 .cvwrap .cv-tools .sep{width:1px;height:16px;align-self:center;margin:0 4px;background:#ffffff1a}
html body.v8 .cvwrap .cv-tools .tb .sw{width:14px;height:14px;border:1.5px solid rgba(255,255,255,.55)}
html body.v8 .cvwrap .cv-tools .tb .fa{font-size:var(--v8-fs-13)}
/* поповеры палитры (стикеры, фигуры, цвет, шрифт) и меню карточки — непрозрачные */
html body.v8 .cvwrap :is(.stickpick,.boardpick,.imenu){background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);padding:4px}
html body.v8 .cvwrap :is(.stickpick,.boardpick){top:52px;left:50%;transform:translateX(-50%)}
html body.v8 .cvwrap :is(.stickpick,.boardpick) b{border-radius:var(--v8-r-5)}
html body.v8 .cvwrap :is(.stickpick,.boardpick) b:hover{border-color:var(--v8-w10)}
html body.v8 .cvwrap :is(.stickpick,.boardpick) b.on{border-color:transparent;background:var(--v8-w5);box-shadow:inset 0 -1px 0 var(--v8-red)}
html body.v8 .cvwrap .fontpick .ptitle{font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t4)}
html body.v8 .cvwrap .fontpick :is(.fz,.ff){color:var(--v8-t2)}
html body.v8 .cvwrap .imenu button{width:32px;height:30px;border-radius:var(--v8-r-5);color:var(--v8-t2)}
html body.v8 .cvwrap .imenu button:hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.v8 .cvwrap .imenu button svg{width:16px;height:16px}
html body.v8 .cvwrap .imenu .del{color:var(--v8-late)}
html body.v8 .cvwrap .imenu .txt{font:500 var(--v8-fs-12) var(--v8-sans);padding:0 8px}
/* действия справа сверху и масштаб снизу справа — тот же стеклянный тулбар */
html body.v8 .cvwrap .cv-acts{top:10px;right:10px;gap:var(--v8-g-2);padding:4px;border-radius:var(--v8-r-10);background:#0b0f1547;border:1px solid #ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
html body.v8 .cvwrap .cv-acts .btn{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:28px;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:#e6e9ee;font:500 var(--v8-fs-13) var(--v8-sans);opacity:.85}
html body.v8 .cvwrap .cv-acts .btn:hover{opacity:1;background:#ffffff1a}
html body.v8 .cvwrap .cv-acts .btn svg{width:15px;height:15px}
html body.v8 .cvwrap .cv-acts .btn:disabled{opacity:.35}
html body.v8 .cvwrap .cv-zoom{bottom:10px;right:10px;align-items:center;padding:2px 4px;border-radius:var(--v8-r-10);background:#0b0f1547;border:1px solid #ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:none}
html body.v8 .cvwrap .cv-zoom button{width:28px;height:28px;min-height:var(--v8-h-btn);border-radius:var(--v8-r-6);color:#e6e9ee;opacity:.8}
html body.v8 .cvwrap .cv-zoom button:hover{opacity:1;background:#ffffff1a}
html body.v8 .cvwrap .cv-zoom #zreset{width:auto;padding:0 8px;gap:var(--v8-g-6);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .cvwrap .cv-zoom #zreset svg{width:14px;height:14px}
html body.v8 .cvwrap .cv-zoom .z{font:400 var(--v8-fs-12) var(--v8-mono);color:#e6e9ee}
html body.v8 .cvwrap .cv-zoom #zval{width:48px;min-height:var(--v8-h-sm);height:24px;padding:0 4px;border:0;border-radius:var(--v8-r-4);background:rgba(0,0,0,.25);box-shadow:var(--v8-deboss);color:#e6e9ee;font:400 var(--v8-fs-12) var(--v8-mono)}
@media(max-width:700px){html body.v8 .cvwrap .cv-tools{left:10px;right:10px;transform:none;max-width:none}html body.v8 .cvwrap :is(.stickpick,.boardpick){top:96px;left:10px;transform:none}html body.v8 .cvwrap .cv-acts{top:52px;bottom:auto;left:10px;right:auto}html body.v8 .cvwrap .cv-zoom #zreset span{display:none}}
/* карточки на доске */
html body.v8 .cvwrap .node.img{border-color:var(--v8-w8);border-radius:var(--v8-r-8);background:#1b1e22;box-shadow:0 8px 24px rgba(0,0,0,.3)}
html body.v8 .cvwrap .node.sel{outline-color:rgba(255,48,0,.85)}
html body.v8 .cvwrap .node.img .cap{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .cvwrap .node.img .catchip{border-radius:var(--v8-r-4);background:rgba(16,19,22,.82);font:500 var(--v8-fs-11) var(--v8-sans)}
html body.v8 .cvwrap .node.note:not(.sticky){border-left:2px solid var(--v8-w14);background:#1b1e22}
html body.v8 .cvwrap .node.note .who{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em}
html body.v8 .cvwrap .marquee{border-color:rgba(255,48,0,.7);background:rgba(255,48,0,.06)}
/* тост, подтверждение, справка, загрузки */
html body.v8 .cvwrap .board-toast{padding:6px 6px 6px 12px;border-radius:var(--v8-r-8);background:var(--v8-pop);border:1px solid var(--v8-w8);color:var(--v8-t2);box-shadow:0 8px 24px rgba(0,0,0,.4);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .cvwrap .board-toast button{min-height:var(--v8-h-sm);height:24px;padding:0 10px;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .cvwrap .cvask{background:rgba(14,17,20,.62)}
html body.v8 .cvwrap .cvask-box{padding:16px;border:0;border-radius:var(--v8-r-14);background:var(--v8-panel);box-shadow:var(--v8-sh-dlg)}
html body.v8 .cvwrap .cvask .ttl{font:600 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .cvwrap .cvask :is(input,textarea){border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .cvwrap .cvask button{min-height:var(--v8-h-btn);height:28px;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .cvwrap .cvask button.ghost{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .cvwrap .cvhelp{border-radius:var(--v8-r-8);background:var(--v8-pop);border:1px solid var(--v8-w8);color:var(--v8-t2);font:400 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .cvwrap .board-uploads{border:1px solid var(--v8-w8);border-radius:var(--v8-r-10);background:var(--v8-pop);color:var(--v8-t2);box-shadow:var(--v8-sh-pop);font-size:var(--v8-fs-13)}
html body.v8 .cvwrap .board-uploads progress{height:2px;accent-color:var(--v8-org)}
html body.v8 .cvwrap .board-drop:not([hidden]){border:1px solid rgba(255,80,0,.6);border-radius:var(--v8-r-12);background:rgba(16,19,22,.85);font:500 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1)}
html body.v8 dialog:is(.board-help,.board-catalog){padding:16px;border:0;border-radius:var(--v8-r-14);background:var(--v8-panel);color:var(--v8-t2);box-shadow:var(--v8-sh-dlg);font-family:var(--v8-sans)}
html body.v8 dialog:is(.board-help,.board-catalog)::backdrop{background:rgba(14,17,20,.62)}
html body.v8 dialog.board-help h2,html body.v8 dialog.board-catalog h2{font:600 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t1)}
html body.v8 dialog.board-help p{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 dialog.board-catalog label{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 dialog.board-catalog :is(select,input[type=text]){min-height:var(--v8-h-inp);height:30px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 dialog.board-catalog .cat-help{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 dialog:is(.board-help,.board-catalog) :is(footer,.actions) button,html body.v8 dialog.board-catalog header button{min-height:var(--v8-h-btn);height:28px;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 dialog:is(.board-help,.board-catalog) :is(footer,.actions) button.secondary,html body.v8 dialog.board-catalog header button{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 .v8-boards .board-page .canvas,html body.v8 .v8-boards .canvas{height:max(480px,calc(100dvh - 300px))}
/* ---- серии по стадиям ---- */
html body.v8 .v8-plan .pipe-table-scroll{border:0;border-radius:var(--v8-r-12);background:none}
html body.v8 .v8-plan .pipe-table{font-family:var(--v8-sans);font-size:var(--v8-fs-13);border-collapse:separate;border-spacing:0}
html body.v8 .v8-plan .pipe-table thead th{font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4);background:none;border:0;padding:6px 8px;text-transform:none;letter-spacing:0}
html body.v8 .v8-plan .pipe-table tbody :is(th,td){border:0;border-top:1px solid var(--v8-w4);background:none;padding:4px 6px}
html body.v8 .v8-plan .pipe-table tbody tr:hover :is(th,td){background:var(--v8-w2)}
html body.v8 .v8-plan .pipe-table tbody th b{font:600 var(--v8-fs-13) var(--v8-cond);letter-spacing:.06em;color:var(--v8-t1)}
html body.v8 .v8-plan .pipe-table tbody th span{color:var(--v8-t3);font-weight:400}
html body.v8 .v8-plan .pipe-cell{border-radius:var(--v8-r-pill,99px);font-size:var(--v8-fs-12)}
html body.v8 .v8-plan .pipe-pop{background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop);color:var(--v8-t2)}
html body.v8 .v8-plan .pipe-project-line{display:flex;align-items:center;gap:var(--v8-g-10);margin:0 0 12px;font-size:var(--v8-fs-13);color:var(--v8-t2)}
/* ---- кастинг серии: карточки 3:4 не нужны — пункты строками; карточка = поднятая панель ---- */
html body.v8 .v8-boards .cast-panel{margin:0 0 20px;border:0;border-radius:var(--v8-r-14);background:none}
html body.v8 .v8-boards .cast-head{padding:0 0 10px;position:relative}
html body.v8 .v8-boards .cast-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8 .v8-boards .cast-head h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-boards .cast-head small{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);margin-left:6px}
html body.v8 .v8-boards .cast-head button{min-height:var(--v8-h-btn);height:28px;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-boards .cast-status{padding:8px 0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-boards .cast-status a{color:var(--v8-t2)}
html body.v8 .v8-boards .cast-panel>details>summary{padding:6px 0;color:var(--v8-t3);font-size:var(--v8-fs-13)}
html body.v8 .v8-boards .cast-body{padding:8px 0 0}
html body.v8 .v8-boards .cast-body h3{font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t3)}
html body.v8 .v8-boards .cast-body h3 small{font-family:var(--v8-mono);color:var(--v8-t4)}
html body.v8 .v8-boards .cast-cards{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:var(--v8-g-14)}
html body.v8 .v8-boards .cast-card{position:relative;padding:12px 14px;border-radius:var(--v8-r-12);background:radial-gradient(min(360px,85%) min(200px,85%) at 0 0,var(--v8-w5),transparent 70%),linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));border:1px solid var(--v8-w6);box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-boards .cast-card::before{content:"";position:absolute;left:16px;right:16px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12) 25%,rgba(255,255,255,.12) 75%,transparent)}
html body.v8 .v8-boards .cast-chip{border:0;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 .v8-boards .cast-chip.cast-name{background:none;color:var(--v8-t1);font:600 var(--v8-fs-15) var(--v8-sans)}
html body.v8 .v8-boards .cast-chip.cast-plus{background:transparent;box-shadow:inset 0 0 0 1px var(--v8-w8);color:var(--v8-t3)}
html body.v8 .v8-boards .cast-slot{border-color:var(--v8-w10);border-radius:var(--v8-r-6);color:var(--v8-t3)}
html body.v8 .v8-boards .cast-slot.has{width:36px;height:48px;border-radius:var(--v8-r-6)}
html body.v8 .v8-boards .cast-looks{border-left-color:var(--v8-w6)}
html body.v8 .v8-boards .cast-remove{color:var(--v8-t4);border-radius:var(--v8-r-6)}
html body.v8 .v8-boards .cast-remove:hover{color:var(--v8-late);background:var(--v8-w4);border-color:transparent}
html body.v8 .v8-boards .cast-pop>:is(form,.cast-menu){background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);box-shadow:var(--v8-sh-pop)}
html body.v8 .v8-boards .cast-pop :is(input,select){min-height:var(--v8-h-inp);border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-boards .cast-pop :is(button,.button){min-height:var(--v8-h-btn);height:28px;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-boards .cast-hidden{margin:14px 0 0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .v8-boards .cast-hidden button{min-height:var(--v8-h-sm);height:24px;padding:0 8px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.v8 :is(#cast-remove-dialog,#cast-link){border:0;border-radius:var(--v8-r-14);background:var(--v8-panel);color:var(--v8-t2);box-shadow:var(--v8-sh-dlg)}
html body.v8 :is(#cast-remove-dialog,#cast-link)::backdrop{background:rgba(14,17,20,.62)}
html body.v8 #cast-remove-dialog h2{font:600 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t1)}
html body.v8 :is(#cast-remove-dialog,#cast-link) button{min-height:var(--v8-h-btn);height:28px;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 :is(#cast-remove-dialog,#cast-link) button.secondary{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.v8 #cast-link .cast-grid button{height:auto;padding:0;aspect-ratio:3/4}
html body.v8 #cast-link .cast-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
/* превью банка над доской — карточки 3:4 */
html body.v8 .v8-boards .material-bank-preview{margin:20px 0 0;padding:0;border:0}
html body.v8 .v8-boards .material-bank-preview h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-boards .material-bank-preview-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
html body.v8 .v8-boards .material-bank-preview-item{display:grid;gap:var(--v8-g-6)}
html body.v8 .v8-boards .material-bank-preview-item :is(img,.material-bank-preview-type){width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:var(--v8-r-10);background:#121518}
html body.v8 .v8-boards .material-bank-preview-item strong{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
/* ---- банк материалов: карточки 3:4 с панелью действий поверх затемнения (§3.14) ---- */
html body.v8 .v8-bank #mb-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--v8-g-20);align-items:start}
html body.v8 .v8-bank #mb-list>p{grid-column:1/-1}
html body.v8 .v8-bank .mb-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v8-g-10);padding:10px;border:1px solid var(--v8-w6);border-radius:var(--v8-r-14);background:linear-gradient(180deg,rgba(22,25,29,.94),rgba(20,23,27,.97));box-shadow:var(--v8-sh-lift);overflow:hidden;min-width:0}
html body.v8 .v8-bank .mb-row>.mb-preview{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:var(--v8-r-10);background:#0e1114;display:grid;place-items:center;color:var(--v8-t3);font:500 var(--v8-fs-12) var(--v8-mono)}
html body.v8 .v8-bank .mb-name{font:600 var(--v8-fs-15) var(--v8-sans);color:var(--v8-t1);margin:0 0 4px}
html body.v8 .v8-bank .mb-meta{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-bank .mb-files{gap:var(--v8-g-6);margin-top:6px}
html body.v8 .v8-bank .mb-files a{font-size:var(--v8-fs-12);color:var(--v8-t2)}
html body.v8 .v8-bank .mb-channels{grid-column:1;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-bank .mb-row :is(button,.mb-actions a){min-height:var(--v8-h-sm);height:24px;padding:0 8px;border:0;border-radius:var(--v8-r-5);background:rgba(38,42,48,.96);box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans);display:inline-flex;align-items:center}
html body.v8 .v8-bank .mb-row :is(button,.mb-actions a):hover{color:var(--v8-t1);background:var(--v8-chip)}
html body.v8 .v8-bank .mb-row::after{content:"";position:absolute;inset:0;z-index:3;background:rgba(16,19,22,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity var(--v8-mid) var(--v8-ease);pointer-events:none}
html body.v8 .v8-bank .mb-actions{position:absolute;right:8px;top:10px;z-index:4;display:flex;flex-direction:column;align-items:flex-end;gap:var(--v8-g-3)}
html body.v8 .v8-bank .mb-actions>*{min-width:96px;justify-content:flex-start;opacity:0;transform:translateX(12px);transition:opacity var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-bank .mb-row:is(:hover,:focus-within)::after{opacity:1}
html body.v8 .v8-bank .mb-row:is(:hover,:focus-within) .mb-actions>*{opacity:1;transform:none}
@media(hover:none){html body.v8 .v8-bank .mb-row::after{display:none}html body.v8 .v8-bank .mb-actions{position:static;flex-direction:row;flex-wrap:wrap;align-items:center}html body.v8 .v8-bank .mb-actions>*{opacity:1;transform:none;min-width:0}}
@media(prefers-reduced-motion:reduce){html body.v8 .v8-bank .mb-actions>*{transition:none;transform:none}}
html body.v8 .v8-bank .mb-toolbar{border-block:0;padding:0 0 12px;position:relative;gap:var(--v8-g-10)}
html body.v8 .v8-bank .mb-toolbar label{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-bank .mb-toolbar :is(input:not([type=checkbox]),select){min-height:var(--v8-h-inp);height:30px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-bank .mb-toolbar .mb-check{min-height:var(--v8-h-inp)}
html body.v8 .v8-bank .mb-toolbar button{min-height:var(--v8-h-btn);height:28px;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-bank dialog{border:0;border-radius:var(--v8-r-14);background:var(--v8-panel);color:var(--v8-t2);box-shadow:var(--v8-sh-dlg)}
html body.v8 .v8-bank dialog :is(input,select){min-height:var(--v8-h-inp);border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2)}
html body.v8 .v8-bank dialog button{min-height:var(--v8-h-btn);height:28px;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-bank dialog button.secondary{background:transparent;box-shadow:none;color:var(--v8-t3)}
/* ---- обложка проекта ---- */
html body.v8 .v8-cover .cover-layout{gap:var(--v8-g-28)}
html body.v8 .v8-cover .cover-card-preview{border-radius:var(--v8-r-12);background:#121518;box-shadow:var(--v8-sh-lift)}
html body.v8 .v8-cover .cover-caption{background:linear-gradient(180deg,transparent,rgba(16,19,22,.92));border-top:0;padding:16px}
html body.v8 .v8-cover .cover-caption strong{font:600 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-cover .cover-caption span{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-cover .cover-controls label{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .v8-cover .cover-options{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--v8-g-10)}
html body.v8 .v8-cover .cover-option{padding:4px;border:0;border-radius:var(--v8-r-8);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5);color:var(--v8-t3)}
html body.v8 .v8-cover .cover-option[aria-pressed=true]{box-shadow:inset 0 0 0 1px rgba(255,48,0,.75)}
html body.v8 .v8-cover .cover-option span{font-size:var(--v8-fs-12)}
html body.v8 .v8-cover .cover-progress{height:2px;accent-color:var(--v8-org)}
html body.v8 .v8-cover .cover-title-toggle[aria-pressed=true]{color:var(--v8-t1);--lo:1}
/* v8, волна D (11.10.2026): кабинет клиента и комната проверки в тонах и шрифте студии — главная клиента (client_home.html),
   страница заказа (/app/p, project.html: шапка, лента состояния, плеер 9:16 с вкладками серий, решение по версии, комментарии с
   таймкодом и рисунком, план и доска), комната проверки команды (review.html), «Проекты клиентов» (portal.html), просмотр по
   ссылке (viewing_links.html), приветствие (welcome.html). Разметка и скрипты (_review_js, _ep_js) прежние. */
/* ---- главная клиента ---- */
html body.v8 .v8-chome{max-width:none}
html body.v8 .v8-chome .client-identity{display:flex;align-items:center;gap:var(--v8-g-14);min-width:0}
html body.v8 .v8-chome .client-logo{max-width:120px;max-height:44px;object-fit:contain}
html body.v8 .v8-chome .v8-hero9 .runtime-summary{display:inline-flex;align-items:baseline;gap:var(--v8-g-6);margin:0;font-size:var(--v8-fs-13)}
html body.v8 .v8-chome .v8-hero9 .runtime-summary :is(dt,dd){font-size:var(--v8-fs-13);font-family:var(--v8-sans)}
html body.v8 .v8-chome .v8-hero9 .runtime-summary dt{color:var(--v8-t3);font-weight:400}
html body.v8 .v8-chome .v8-hero9 .runtime-summary dd{margin:0;color:var(--v8-t2);font-weight:500;font-variant-numeric:tabular-nums}
html body.v8 .v8-chome .v8-queue .v8-row{grid-template-columns:minmax(0,1fr) 40px 96px}
html body.v8 .v8-chome .v8-queue .c-go{text-align:right;color:var(--v8-t2);font-size:var(--v8-fs-13)}
html body.v8 .v8-chome .project-filter,html body.v8 .v8-chome form.project-filter{margin:24px 0 0;padding:0;border:0;background:none;box-shadow:none}
html body.v8 .v8-chome .client-section-head{display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;padding-bottom:10px;position:relative}
html body.v8 .v8-chome .client-section-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8 .v8-chome .client-section-head h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-chome .client-section-head h2 small{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3);margin-left:8px}
html body.v8 .v8-chome .client-orders{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--v8-g-18)}
@media(min-width:1280px){html body.v8 .v8-chome .client-orders{grid-template-columns:repeat(4,minmax(0,1fr))}}
html body.v8 .v8-chome .client-order{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--v8-r-12);background:linear-gradient(170deg,#212429 0%,#171a1e 45%,#121518 100%);border:1px solid rgba(255,255,255,.045);box-shadow:var(--v8-sh-lift);overflow:hidden;transition:border-color var(--v8-mid) var(--v8-ease),transform var(--v8-mid) var(--v8-ease)}
html body.v8 .v8-chome .client-order:hover{transform:translateY(-1px);border-color:var(--v8-w8);box-shadow:var(--v8-sh-lift-h)}
html body.v8 .v8-chome .client-order::before,html body.v8 .v8-chome .client-order::after{display:none}
html body.v8 .v8-chome .client-order.needs-action{border-color:rgba(255,48,0,.45)}
html body.v8 .v8-chome .client-order .project-poster{aspect-ratio:9/16;height:auto;border-radius:0}
html body.v8 .v8-chome .client-order-content{padding:12px 14px 12px;font-family:var(--v8-sans)}
html body.v8 .v8-chome .client-order h3{height:auto;font:600 var(--v8-fs-15)/1.25 var(--v8-sans);letter-spacing:-.01em;margin:0 0 6px;-webkit-line-clamp:2}
html body.v8 .v8-chome .client-order-meta,html body.v8 .v8-chome .client-order-data{font-size:var(--v8-fs-12);color:var(--v8-t3);gap:var(--v8-g-10);margin-bottom:6px}
html body.v8 .v8-chome .client-order-status{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--v8-t3)}
html body.v8 .v8-chome .client-order-attention{margin:8px 0 0;font-size:var(--v8-fs-13);color:var(--v8-t1)}
html body.v8 .v8-chome .client-order-attention svg{color:var(--v8-red)}
html body.v8 .v8-chome .client-order-attention.waiting{color:var(--v8-t3)}
html body.v8 .v8-chome .client-order-bottom{margin-top:10px;padding-top:8px;border-top:0;position:relative;font-size:var(--v8-fs-13)}
html body.v8 .v8-chome .client-order-bottom::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w6) 18%,var(--v8-w6) 82%,transparent)}
html body.v8 .v8-chome .client-order-bottom a{min-height:var(--v8-h-btn);color:var(--v8-t3)}
html body.v8 .v8-chome .client-order-bottom .client-review-link{color:var(--v8-t1)}
html body.v8 .v8-chome .client-order-bottom .client-review-link::after{color:var(--v8-red)}
html body.v8 .v8-chome .client-order-done i{background:transparent;color:var(--v8-g);box-shadow:inset 0 0 0 1px rgba(95,168,107,.6)}
html body.v8 .v8-chome .project-filter :is(input,select,button,.aid-select-trigger){min-height:var(--v8-h-inp);height:var(--v8-h-inp);font:400 var(--v8-fs-13) var(--v8-sans);border:0;border-radius:var(--v8-r-6)}
html body.v8 .v8-chome .project-filter input{background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);padding:0 10px}
html body.v8 .v8-chome .project-filter :is(button,.aid-select-trigger,select){background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);padding:0 10px}
html body.v8 .v8-chome .project-filter label{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .v8-chome :is(.g-name,.g-head,.g-empty,.gantt *){font-family:var(--v8-sans)}
html body.v8:has(.project-inline-review) main :is(.pn,.client-review-status,.sec,.tl,.scriptlink) *{font-family:var(--v8-sans)}
/* ---- страница заказа и комната проверки: шрифт и тона студии ---- */
html body.v8:has(.project-inline-review,.review-shell) main :is(.title-head,.client-band,.review-shell,#ephead,.episode-version-tray,.sec,.review-heading,.pn,.client-review-status,.cvwrap){font-family:var(--v8-sans)}
html body.v8:has(.project-inline-review) .title-head{border:0;background:none;margin-bottom:12px}
html body.v8:has(.project-inline-review) .title-head .title-band{padding:40px 0 8px;background:none}
html body.v8:has(.project-inline-review) .title-name{font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1)}
html body.v8:has(.project-inline-review) .title-credits{margin-top:6px;letter-spacing:0;text-transform:none;font:400 var(--v8-fs-14) var(--v8-sans);color:var(--v8-t3)}
html body.v8:has(.project-inline-review) .title-credits .stat{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em;color:var(--v8-t2)}
html body.v8:has(.project-inline-review) .title-back{left:0;font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .client-band{margin:0 0 16px;padding:10px 16px;border:0;border-radius:var(--v8-r-10);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.v8 .client-band .client-band-wait{color:var(--v8-t1);font-weight:500}
html body.v8 .client-band .aid-icon{color:var(--v8-t3)}
html body.v8 .client-band .client-band-since{color:var(--v8-t3)}
/* вкладки серий одной строкой: EP · V, активная — красная линия */
html body.v8 #ephead.review-tabs{margin:0;padding:0 4px;gap:var(--v8-g-2);border:0;border-radius:0;background:none;position:relative;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
html body.v8 #ephead.review-tabs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w5) 10%,var(--v8-w5) 90%,transparent)}
html body.v8 #ephead.review-tabs .episode-tab{min-height:var(--v8-h-row);height:var(--v8-h-row);padding:0 10px;gap:var(--v8-g-6);border-radius:0;background:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);box-shadow:none}
html body.v8 #ephead.review-tabs .episode-tab b{font:600 var(--v8-fs-13) var(--v8-cond);letter-spacing:.06em}
html body.v8 #ephead.review-tabs .episode-tab .episode-current{font:600 var(--v8-fs-12) var(--v8-cond);color:var(--v8-t3)}
html body.v8 #ephead.review-tabs .episode-tab.on{color:var(--v8-t1);background:none;box-shadow:none}
html body.v8 #ephead.review-tabs .episode-tab.on::after{content:"";display:block;position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
html body.v8 #ephead.review-tabs .episode-tab{position:relative}
html body.v8 #ephead.review-tabs .tabcnt{background:none;color:var(--v8-t4);font:400 var(--v8-fs-11) var(--v8-mono)}
/* решение по версии: «Принять» — единственная оранжевая линия, остальное тихо */
html body.v8 .review-shell .publication-bar{display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap;font-family:var(--v8-sans)}
html body.v8 .review-shell .publication-bar .decision-buttons{gap:var(--v8-g-6)}
html body.v8 .review-shell .publication-bar .decision-buttons button{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .review-shell .publication-bar .decision-buttons button svg{width:14px;height:14px}
html body.v8 .review-shell .publication-bar .decision-buttons button:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .review-shell .publication-bar .decision-buttons [data-decision=approved]{color:var(--v8-t1)}
html body.v8 .review-shell .publication-bar .decision-buttons [data-decision=approved]::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent)}
html body.v8 .review-shell .publication-bar .decision-buttons [aria-pressed=true]{outline:0;color:var(--v8-t1);background:var(--v8-w4)}
html body.v8 .review-shell .publication-bar .decision-buttons [aria-pressed=true]:not([data-decision=approved])::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-red),transparent)}
html body.v8 .review-shell #time-options{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.v8 .review-shell #time-options :is(select,button){min-height:var(--v8-h-btn);height:var(--v8-h-btn);border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans);box-shadow:var(--v8-sh-btn)}
html body.v8 .review-shell .decision-status{font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
/* кадр 9:16: круглая кнопка play с красной кромкой (§3.16) */
html body.v8 .review-shell .video-shell{border-radius:var(--v8-r-10);background:#000;overflow:hidden}
html body.v8 .review-shell .vbig{width:64px;height:64px;border-radius:50%;border:1px solid #ffffff1c;background:#10162333;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);box-shadow:inset 0 -2px 0 #ff3000,0 0 0 1px #ffffff14,0 10px 28px -8px #ff30008c;color:#fff}
html body.v8 .review-shell .vbig:hover{box-shadow:inset 0 -2px 0 #ff3000,0 0 0 1px #ffffff14,0 12px 32px -6px #ff3000b3}
html body.v8 .review-shell .media-error{background:rgba(16,19,22,.92);font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .review-shell .media-error button{min-height:var(--v8-h-btn);height:var(--v8-h-btn);border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .review-shell .timeline-mark{color:rgba(255,48,0,.85)}
html body.v8 .review-shell .timeline-mark.resolved{color:var(--v8-t4)}
html body.v8 .review-shell .review-time{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .review-shell .annotation-tools button{min-height:var(--v8-h-btn);height:var(--v8-h-btn);border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:inset 0 0 0 1px var(--v8-w6);color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .review-shell .annotation-tools button:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .review-shell .draw-tools button{width:var(--v8-h-btn);min-height:var(--v8-h-btn);height:var(--v8-h-btn);border:0;border-radius:var(--v8-r-6);background:transparent;color:var(--v8-t3)}
html body.v8 .review-shell .quality-row{font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t3)}
/* переписка: пузыри, чип таймкода, композер вдавленный */
html body.v8 .review-shell .epcol{font-family:var(--v8-sans)}
html body.v8 .review-shell .epcol h4.discussion-head :is(select,.aid-select-trigger){min-height:var(--v8-h-btn);height:var(--v8-h-btn);border:0;border-radius:var(--v8-r-6);background-color:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .review-shell .epcol .ccount{font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t3)}
html body.v8 .review-shell .cmts.chat .cm .bd{padding:7px 12px 5px;border:0;border-radius:var(--v8-r-14) var(--v8-r-14) var(--v8-r-14) var(--v8-r-5);background:linear-gradient(180deg,#21252b,#1b1e23);box-shadow:0 1px 2px rgba(0,0,0,.35),inset 0 1px 0 var(--v8-w5)}
html body.v8 .review-shell .cmts.chat .cm.own .bd{border-radius:var(--v8-r-14) var(--v8-r-14) var(--v8-r-5) var(--v8-r-14);background:linear-gradient(180deg,#1e2227,#181b1f)}
html body.v8 .review-shell .cmts.chat .cm .comment-text{font:400 var(--v8-fs-13)/1.45 var(--v8-sans);color:var(--v8-t2)}
html body.v8 .review-shell .cmts.chat :is(.cmtime,.tc,.cm-time){display:inline-flex;align-items:center;height:18px;padding:0 5px;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono)}
html body.v8 .review-shell .cbox.chat .cbfield{border:0;border-radius:var(--v8-r-10);background:var(--v8-field);box-shadow:var(--v8-deboss)}
html body.v8 .review-shell .cbox.chat:focus-within .cbfield{background:var(--v8-field);box-shadow:var(--v8-deboss-f)}
html body.v8 .review-shell .cbox.chat .cbtext{font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .review-shell .cbox.chat .cbsend-icon{background:transparent;color:var(--v8-t2);box-shadow:inset 0 -1px 0 rgba(255,80,0,.9)}
html body.v8 .review-shell .note-target button{min-height:calc(var(--v8-h-sm) - 2px);height:22px;padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono)}
html body.v8 .review-shell .cbhint{font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t4)}
html body.v8 .review-shell .review-range-help{display:none}
/* секции страницы заказа: 18/600, тающее правило, без номеров-коробок */
html body.v8:has(.project-inline-review) main .sec{display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;padding-bottom:10px;position:relative;border:0}
html body.v8:has(.project-inline-review) main .sec .n{display:none}
html body.v8:has(.project-inline-review) main .sec h2{font:600 var(--v8-fs-18) var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1);margin:0}
html body.v8:has(.project-inline-review) main .sec .ln{display:none}
html body.v8:has(.project-inline-review) main .sec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.v8:has(.project-inline-review) main .pn{border:0;border-radius:var(--v8-r-12);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5);color:var(--v8-t3);font-size:var(--v8-fs-13)}
/* комната проверки команды (/app/review/...) */
html body.v8 .review-heading.page-heading{display:flex;align-items:flex-start;gap:var(--v8-g-20);margin:0 0 16px}
html body.v8 .review-heading h1{font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1)}
html body.v8 .review-heading .actions{margin:0 0 0 auto;gap:var(--v8-g-6)}
/* ---- «Проекты клиентов» (portal.html, базовый каркас) ---- */
html body.v8 .v8-portal{max-width:none}
html body.v8 .v8-portal .cards.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--v8-g-18)}
@media(min-width:1280px){html body.v8 .v8-portal .cards.poster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
html body.v8 .v8-portal .ocard{border-radius:var(--v8-r-12);background:linear-gradient(170deg,#212429 0%,#171a1e 45%,#121518 100%);border:1px solid rgba(255,255,255,.045);box-shadow:var(--v8-sh-lift);overflow:hidden;padding:0}
html body.v8 .v8-portal .ocard .project-poster{aspect-ratio:9/16;height:auto}
html body.v8 .v8-portal .ocard .project-card-body{padding:12px 14px;font-family:var(--v8-sans)}
html body.v8 .v8-portal .ocard h3{font:600 var(--v8-fs-15)/1.25 var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-portal .ocard .m,html body.v8 .v8-portal .ocard .row2{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-portal .ocard .stat{font:500 var(--v8-fs-10) var(--v8-mono);letter-spacing:.08em;color:var(--v8-t3)}
html body.v8 .v8-portal .ocard .pbar{height:1px;background:var(--v8-w10)}
html body.v8 .v8-portal .ocard .pbar i{height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.55) 60%,var(--v8-org))}
html body.v8 .v8-portal .ocard .pct{font:600 var(--v8-fs-16) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-portal .sec{margin:40px 0 12px;padding-bottom:10px;position:relative;border:0}
html body.v8 .v8-portal .sec h2{font:600 var(--v8-fs-18) var(--v8-sans);color:var(--v8-t1)}
html body.v8 .v8-portal .sec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
/* ---- просмотр по ссылке, приветствие ---- */
html body.v8 .v8-vlinks .v8-row{grid-template-columns:96px minmax(0,1fr) auto auto}
@media(max-width:700px){html body.v8 .v8-vlinks .v8-row{grid-template-columns:minmax(0,1fr) auto}html body.v8 .v8-vlinks .v8-row .c-code,html body.v8 .v8-vlinks .v8-row .c-m{display:none}}
html body.v8 .v8-vlinks .v8-issued{display:grid;gap:var(--v8-g-10);margin:0 0 20px;padding:14px 16px;border-radius:var(--v8-r-12);background:var(--v8-w2);box-shadow:inset 0 0 0 1px var(--v8-w5)}
html body.v8 .v8-vlinks .v8-issued label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-vlinks form{margin:0}
html body.v8 .v8-welcome{max-width:420px;margin:11vh auto 0}
html body.v8 .v8-welcome .v8-dlgcore{padding:20px;border-radius:var(--v8-r-14);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)),var(--v8-panel);box-shadow:var(--v8-sh-dlg),inset 0 1px 0 rgba(255,255,255,.06)}
html body.v8 .v8-welcome h1{font:600 var(--v8-fs-22) var(--v8-sans);color:var(--v8-t1);margin:0 0 14px}
html body.v8 .v8-welcome form{display:grid;gap:var(--v8-g-10)}
/* ---- зрители кинозала (каркас студии) ---- */
html body.v8 .v8-cviewers .v8-row{grid-template-columns:minmax(0,1fr) 160px 100px auto}
@media(max-width:700px){html body.v8 .v8-cviewers .v8-row{grid-template-columns:minmax(0,1fr) auto}html body.v8 .v8-cviewers .v8-row .c-m{display:none}}
html body.v8 .v8-cviewers .v8-invite{display:flex;gap:var(--v8-g-6);max-width:640px;margin:0 0 8px}
html body.v8 .v8-cviewer-form .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--v8-g-14)}
html body.v8 .v8-cviewer-form label{display:grid;gap:var(--v8-g-5);font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-cviewer-form :is(input:not([type=checkbox])){min-height:var(--v8-h-inp);height:var(--v8-h-inp);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .v8-cviewer-form fieldset{margin:24px 0 0}
html body.v8 .v8-cviewer-form legend{font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t3)}
html body.v8 .v8-cviewer-form .check{font-size:var(--v8-fs-13);color:var(--v8-t2);min-height:var(--v8-h-btn)}
/* R3 (владелец, 11.10.2026): страница сотрудника «Моя работа» в облике v8 (employee_home.html) — только то, чего нет
   в общих слоях: метки «Нужна помощь» / «Срок прошёл» в «Требует внимания» подпись строки календаря по сериалу
   (код в кружке вместо инициалов) и две колонки карточек на телефоне. Остальное — общие классы главной (.v8-home .att), календаря и карточек проектов. */
html body.v8 .v8-staff .att .v8-row.item .dt>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.v8 .v8-staff .att .st-flag{font-weight:500;color:var(--v8-late)}
html body.v8 .v8-staff .att .v8-row.item .c-ic svg{color:var(--v8-t3)}
html body.v8 .v8-staff .st-series .v8-grid{margin-top:var(--v8-g-4)}
html body.v8 .v8-planner-staff .plan-owner-avatar.v8-own-code{font:600 var(--v8-fs-10) var(--v8-cond);letter-spacing:0}
/* телефон (владелец 11.10): карточки с обложкой вдвое меньше — две колонки, четыре на экране */
@media(max-width:420px){html body.v8 .v8-staff .st-series .v8-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-10)}html body.v8 .v8-staff .st-series .v8-card .when{flex-wrap:wrap;row-gap:var(--v8-g-4)}html body.v8 .v8-staff .st-series .v8-card .when .due{flex-basis:100%;margin-left:0}}
/* Раунд 3 (владелец, 11.10.2026): кабинет клиента — карточка «Ждёт вашего решения», календарь в облике командного
   (_v8_planner_css: числа моно, «сегодня» красной датой + мягкий столбец + линия 1 px 35 %, пилюли с контуром 99 px без
   заливок, 4 px полоса прокрутки), знаки этапов в пилюле, серые пунктирные планы, вкладки «Проекты / Планы», фильтр
   вкладками, карточки с крупным кодом (.v8-card) и меню версий на кнопке серии. Размеры — токенами (_v8_tokens.html) и
   локальными --r3c-*. */
html body.v8 .r3c .r3c-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--v8-g-4) var(--v8-g-14)}
html body.v8 .r3c .r3c-sub b{color:var(--v8-t2);font-weight:500}
html body.v8 .r3c .r3c-sub .runtime-summary{display:inline-flex;align-items:baseline;gap:var(--v8-g-6);margin:0}
html body.v8 .r3c .r3c-sub .runtime-summary :is(dt,dd){margin:0;font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t3)}
html body.v8 .r3c .r3c-sub .runtime-summary dd{color:var(--v8-t2);font-weight:500;font-variant-numeric:tabular-nums}
html body.v8 .r3c .r3c-sec{margin-top:0}
html body.v8 .r3c .r3c-empty{margin:0;padding:18px 0;font-size:var(--v8-fs-13);color:var(--v8-t3)}
/* ---- «Ждёт вашего решения»: одна выделенная карточка, строка на серию ---- */
html body.v8 .r3c .r3c-decide{position:relative;margin:8px 0 0;padding:18px 20px 10px;border-radius:var(--v8-r-14);background:radial-gradient(min(520px,90%) min(220px,90%) at 0 0,rgba(255,80,0,.06),transparent 70%),linear-gradient(180deg,rgba(24,27,31,.96),rgba(20,23,27,.98));box-shadow:var(--v8-sh-lift),inset 0 0 0 1px rgba(255,80,0,.22)}
html body.v8 .r3c .r3c-decide::before{content:"";position:absolute;left:20px;right:20px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.75) 30%,rgba(255,80,0,.75) 70%,transparent);pointer-events:none}
html body.v8 .r3c .r3c-decide .hd{display:flex;align-items:baseline;gap:var(--v8-g-12);margin-bottom:6px}
html body.v8 .r3c .r3c-decide .hd .n{font:500 var(--v8-fs-40)/1 var(--v8-sans);letter-spacing:-.03em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .r3c .r3c-decide .hd h2{margin:0;font:500 var(--v8-fs-18)/1.2 var(--v8-sans);color:var(--v8-t1)}
html body.v8 .r3c .r3c-dq{display:grid}
html body.v8 .r3c .r3c-dq .v8-row.r3c-dr{position:relative;display:grid;grid-template-columns:76px 92px minmax(0,1fr) auto auto;align-items:center;gap:var(--v8-g-14);min-height:var(--v8-h-row2);padding:0 4px;border-radius:var(--v8-r-8);color:var(--v8-t2);background:none}
html body.v8 .r3c .r3c-dq .r3c-dr+.r3c-dr::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w6) 8%,var(--v8-w6) 92%,transparent)}
html body.v8 .r3c .r3c-dq .r3c-dr:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .r3c .r3c-dr .cd{font:600 var(--v8-fs-22)/1 var(--v8-cond);letter-spacing:.02em;color:var(--v8-t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .r3c .r3c-dr .ep{display:inline-flex;align-items:baseline;gap:var(--v8-g-6);font:600 var(--v8-fs-14)/1 var(--v8-cond);letter-spacing:.05em;color:var(--v8-t1);white-space:nowrap}
html body.v8 .r3c .r3c-dr .ep small{font:400 var(--v8-fs-12) var(--v8-mono);letter-spacing:0;color:var(--v8-t3)}
html body.v8 .r3c .r3c-dr .tt{min-width:0;font-size:var(--v8-fs-13);color:var(--v8-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .r3c .r3c-dr .due{display:inline-flex;align-items:center;gap:var(--v8-g-5);font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t3);white-space:nowrap}
html body.v8 .r3c .r3c-dr.is-overdue .due{color:var(--v8-late);font-family:var(--v8-sans)}
html body.v8 .r3c .r3c-dr .go{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);height:var(--v8-h-btn);padding:0 10px;font:500 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t1);white-space:nowrap}
html body.v8 .r3c .r3c-dr .go::after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent)}
html body.v8 .r3c .r3c-dr .go svg{width:12px;height:12px;color:var(--v8-t2)}
html body.v8 .r3c .r3c-decide .v8-more,html body.v8 .r3c .r3c-decide [data-v8-more]{margin:4px 0 6px}
@media(max-width:760px){html body.v8 .r3c .r3c-dq .v8-row.r3c-dr{grid-template-columns:56px 76px minmax(0,1fr);grid-template-areas:"cd ep go" "tt tt due";gap:var(--v8-g-2) var(--v8-g-10);padding:10px 2px}
 html body.v8 .r3c .r3c-dr .cd{grid-area:cd}html body.v8 .r3c .r3c-dr .ep{grid-area:ep}html body.v8 .r3c .r3c-dr .tt{grid-area:tt}html body.v8 .r3c .r3c-dr .due{grid-area:due;justify-self:end}html body.v8 .r3c .r3c-dr .go{grid-area:go;justify-self:end;padding:0 4px}}
/* ---- шапка секции календаря: ← Сегодня → справа ---- */
html body.v8 .r3c .r3c-nav{display:inline-flex;align-items:center;gap:var(--v8-g-2);margin-left:auto}
/* ---- календарь: разметка и стили командного (#planning.v8-planner, _v8_planner_css); здесь — только своё у клиента ---- */
html body.v8 .r3c #planning.r3c-planner{margin:0}
html body.v8 .r3c #planning.r3c-planner .plan-owner-avatar.v8-own-code{font:600 var(--v8-fs-10) var(--v8-cond);letter-spacing:0;background:rgba(var(--c,var(--v8-st-pre)),.22)}
html body.v8 .r3c #planning.r3c-planner .plan-owner-identity strong a{color:inherit}
html body.v8 .r3c #planning.r3c-planner .plan-owner-identity strong a:hover{color:var(--v8-t1)}
html body.v8 .r3c #planning.r3c-planner .plan-owner-identity strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .r3c #planning.r3c-planner .plan-owner-department{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.v8 .r3c #planning.r3c-planner .plan-owner-department .client-wait-label{margin-left:6px;padding:0;background:none;border:0;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t2)}
html body.v8 .r3c #planning.r3c-planner .plan-owner-department .client-wait-label.time{color:rgba(201,162,39,.95)}
html body.v8 .r3c #planning.r3c-planner .plan-owner-department .client-wait-label.overdue{color:var(--v8-late)}
html body.v8 .r3c #planning.r3c-planner .plan-owner-department .client-wait-label[hidden]{display:none}
html body.v8 .r3c #planning.r3c-planner .plan-day-heads small.r3c-mon{color:var(--v8-t2);font-weight:500}
html body.v8 .r3c #planning.r3c-planner .plan-bar{cursor:pointer;text-decoration:none}
html body.v8 .r3c #planning.r3c-planner .plan-bar.r3c-cl{border-top-left-radius:0;border-bottom-left-radius:0}
html body.v8 .r3c #planning.r3c-planner .plan-bar.r3c-cr{border-top-right-radius:0;border-bottom-right-radius:0}
html body.v8 .r3c #planning.r3c-planner .r3c-done .plan-bar{opacity:.55}
/* планы, ещё не взятые в работу, — серые пунктирные */
html body.v8 .r3c #planning.r3c-planner .plan-bar.r3c-plan{--c:138,147,163;background:none;box-shadow:none;border:1px dashed rgba(var(--c),.4);color:var(--v8-t3)}
html body.v8 .r3c #planning.r3c-planner .plan-bar.r3c-plan:hover{border-color:rgba(var(--c),.75);background:var(--v8-w2)}
html body.v8 .r3c #planning.r3c-planner .r3c-plan-row .plan-owner-identity :is(strong,.v8-own-code){color:var(--v8-t3)}
/* знаки этапов — тихо, в день начала этапа, поверх пилюли */
html body.v8 .r3c #planning.r3c-planner .r3c-mk{position:absolute;top:50%;z-index:4;display:grid;place-items:center;width:16px;height:16px;transform:translate(-50%,-50%);color:var(--v8-t4);pointer-events:auto;cursor:default;opacity:.85}
html body.v8 .r3c #planning.r3c-planner .r3c-mk svg{width:12px;height:12px}
html body.v8 .r3c #planning.r3c-planner .r3c-mk:is(.is-approved,.is-passed){color:var(--v8-t3)}
html body.v8 .r3c #planning.r3c-planner .r3c-mk.is-progress{color:var(--v8-t1);opacity:1}
html body.v8 .r3c #planning.r3c-planner .r3c-pause{position:absolute;top:9px;height:var(--v8b-h-pill);z-index:2;border-radius:var(--v8-r-4);background:repeating-linear-gradient(45deg,transparent 0 5px,var(--v8-w8) 5px 6px);pointer-events:auto}
html body.v8 .r3c #planning.r3c-planner .plan-track .g-review-band{position:absolute;bottom:4px;top:auto;height:2px;border-radius:var(--v8-r-1);z-index:3;background:rgba(200,214,238,.45);opacity:1}
html body.v8 .r3c #planning.r3c-planner .plan-track .g-review-band.time{background:rgba(201,162,39,.8)}
html body.v8 .r3c #planning.r3c-planner .plan-track .g-review-band.overdue{background:rgba(255,110,90,.85)}
html body.v8 .r3c #planning.r3c-planner .r3c-new-row .plan-bar{box-shadow:inset 0 0 0 1px rgba(255,80,0,.7)}
html body.v8 .r3c #planning.r3c-planner #plan-scroll:focus-visible{box-shadow:var(--v8-sh-focus)}
html body.v8 .r3c #planning.r3c-planner #plan-scroll.dragging,html body.v8 .r3c #planning.r3c-planner #plan-scroll.dragging *{cursor:grabbing;user-select:none}
html body.v8 .r3c #planning.r3c-planner .g-create-row .plan-person-identity{align-items:center}
html body.v8 .r3c #planning.r3c-planner .g-create-row .r3c-new:not(#v8){display:inline-flex;align-items:center;gap:var(--v8-g-6);height:var(--v8-h-btn);min-height:0;padding:0;border:0;background:none;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);cursor:pointer}
html body.v8 .r3c #planning.r3c-planner .g-create-row .r3c-new:not(#v8):hover{color:var(--v8-t1)}
html body.v8 .r3c #planning.r3c-planner .g-create-row .g-create-track:not(#v8){display:block;width:100%;min-height:0;height:var(--v8b-h-track);padding:0;margin:0;border:0;border-radius:0;background-color:transparent;box-shadow:none;cursor:crosshair}
html body.v8 .r3c #planning.r3c-planner .g-create-row .g-create-track>span{position:absolute;top:9px;bottom:auto;height:var(--v8b-h-pill);border:0;border-radius:var(--v8b-r-pill);background:rgba(255,48,0,.08);box-shadow:inset 0 0 0 1px rgba(255,48,0,.45)}
html body.v8 .r3c .r3c-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-6) var(--v8-g-14);margin:10px 4px 0;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .r3c .r3c-legend span{display:inline-flex;align-items:center;gap:var(--v8-g-5)}
html body.v8 .r3c .r3c-legend span.off{color:var(--v8-t4)}
html body.v8 .r3c .r3c-legend svg{width:14px;height:14px;color:var(--v8-t2)}
html body.v8 .r3c .r3c-legend span.off svg{color:var(--v8-t4)}
html body.v8 .r3c .r3c-legend .k{display:inline-block;width:18px;height:10px;border-radius:var(--v8-r-pill)}
html body.v8 .r3c .r3c-legend .k.plan{border:1px dashed rgba(138,147,163,.5)}
html body.v8 .r3c .r3c-legend .k:is(.pause,.hatch){box-shadow:inset 0 0 0 1px var(--v8-w10);background:repeating-linear-gradient(45deg,transparent 0 3px,var(--v8-w14) 3px 4px)}
html body.v8 .r3c .r3c-legend .k:is(.time,.overdue){height:2px;border-radius:var(--v8-r-1)}
html body.v8 .r3c .r3c-legend .k.time{background:rgba(201,162,39,.85)}html body.v8 .r3c .r3c-legend .k.overdue{background:rgba(255,110,90,.85)}
html body.v8 .r3c .r3c-undated{display:flex;flex-wrap:wrap;gap:var(--v8-g-6) var(--v8-g-14);margin:10px 4px 0;font-size:var(--v8-fs-12);color:var(--v8-t4)}
html body.v8 .r3c .r3c-undated a{color:var(--v8-t2)}
@media(max-width:640px){html body.v8 .r3c #planning.r3c-planner{--v8b-label:132px}html body.v8 .r3c #planning.r3c-planner .plan-person-identity{padding:10px 10px}}
/* ---- вкладки «Проекты / Планы», фильтр вкладками ---- */
html body.v8 .r3c .r3c-tabs{margin:40px 0 16px}
html body.v8 .r3c .r3c-tabs a{font-size:var(--v8-fs-16);font-weight:500}
html body.v8 .r3c .r3c-tabs a svg{color:var(--v8-t3)}
html body.v8 .r3c .r3c-tabs a[aria-current] svg{color:var(--v8-t2)}
html body.v8 .r3c .r3c-filter{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-10) var(--v8-g-20);margin:0 0 16px}
html body.v8 .r3c .r3c-states::after{display:none}
html body.v8 .r3c .r3c-states a{min-height:var(--v8-h-btn);padding:0 10px;font-size:var(--v8-fs-13)}
html body.v8 .r3c .r3c-search{position:relative;display:inline-flex;align-items:center;margin-left:auto;width:min(240px,100%)}
html body.v8 .r3c .r3c-search svg{position:absolute;left:9px;color:var(--v8-t4);pointer-events:none}
html body.v8 .r3c .r3c-search input:not(#v8){width:100%;height:var(--v8-h-inp);min-height:0;padding:0 10px 0 30px;border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.v8 .r3c .r3c-search input:not(#v8):focus{box-shadow:var(--v8-deboss-f);outline:0}
@media(max-width:640px){html body.v8 .r3c .r3c-search{margin-left:0;width:100%}
}
/* ---- карточки проектов клиента ---- */
html body.v8 .r3c .r3c-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:var(--v8-g-18)}
@media(min-width:1280px){html body.v8 .r3c .r3c-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){html body.v8 .r3c .r3c-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v8-g-12)}}
html body.v8 .r3c .r3c-card.needs{box-shadow:var(--v8-sh-lift),inset 0 0 0 1px rgba(255,80,0,.3)}
html body.v8 .r3c .r3c-card .r3c-need{display:inline-flex;align-items:center;gap:var(--v8-g-6);font:500 var(--v8-fs-13)/1.2 var(--v8-sans);color:var(--v8-t1)}
html body.v8 .r3c .r3c-card .r3c-need::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--v8-red);box-shadow:0 0 8px rgba(255,48,0,.5);flex:none}
html body.v8 .r3c .r3c-card .r3c-need.wait{color:var(--v8-t3)}
html body.v8 .r3c .r3c-card .r3c-need.wait::before{display:none}
html body.v8 .r3c .r3c-card .v8-cm a.go{color:var(--v8-t1)}
/* ---- планы клиента: не взятые — серые ---- */
html body.v8 .r3c .r3c-plans .v8-pc.is-inactive{background:linear-gradient(180deg,rgba(20,23,27,.7),rgba(18,21,25,.8));box-shadow:none;border-color:var(--v8-w5)}
html body.v8 .r3c .r3c-plans .v8-pc.is-inactive :is(.cd,.tt,.dt b){color:var(--v8-t3)}
html body.v8 .r3c .r3c-plans .v8-pc.is-inactive::before{opacity:.4}
html body.v8 .r3c .r3c-plans .v8-pc .meta span{display:inline-flex;align-items:center;gap:var(--v8-g-5)}
html body.v8 .r3c .r3c-plans .v8-pc:target{box-shadow:inset 0 0 0 1px rgba(255,80,0,.45)}
/* ---- меню версий на кнопке серии (страница заказа клиента) ---- */
html body.v8 #ephead.review-tabs .episode-card{position:relative;display:inline-flex;align-items:stretch}
html body.v8 #ephead.review-tabs .r3c-vbtn{display:inline-flex;align-items:center;gap:var(--v8-g-2);align-self:center;height:var(--v8-h-sm);min-height:0;margin:0 4px 0 -4px;padding:0 5px;border:0;border-radius:var(--v8-r-5);background:var(--v8-w4);box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-11)/1 var(--v8-mono);cursor:pointer;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 #ephead.review-tabs .r3c-vbtn svg{width:12px;height:12px;transition:transform var(--v8-mid) var(--v8-ease)}
html body.v8 #ephead.review-tabs .r3c-vbtn:hover,html body.v8 #ephead.review-tabs .r3c-open .r3c-vbtn{background:var(--v8-w8);color:var(--v8-t1)}
html body.v8 #ephead.review-tabs .r3c-open .r3c-vbtn svg{transform:rotate(180deg)}
html body.v8 #ephead.review-tabs .r3c-vbtn:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:1px}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab.episode-button.r3c-old .episode-current{color:rgba(201,162,39,.95)}
html body.v8 .r3c-vmenu{position:fixed;z-index:140;display:grid;gap:var(--v8-g-2);min-width:132px;padding:5px;border-radius:var(--v8-r-10);background:var(--v8-pop);box-shadow:var(--v8-sh-pop),inset 0 0 0 1px var(--v8-w8);animation:r3c-pop 160ms var(--v8-ease)}
html body.v8 .r3c-vmenu[hidden]{display:none}
html body.v8 .r3c-vmenu .vchip{display:flex;align-items:center;justify-content:space-between;gap:var(--v8-g-10);width:100%;height:var(--v8-h-row);min-height:0;margin:0;padding:0 10px;border:0;border-radius:var(--v8-r-7);background:none;box-shadow:none;color:var(--v8-t3);font:400 var(--v8-fs-14)/1.2 var(--v8-sans);cursor:pointer;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .r3c-vmenu .vchip b{font-weight:500;font-variant-numeric:tabular-nums}
html body.v8 .r3c-vmenu .vchip small{font:400 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4)}
html body.v8 .r3c-vmenu .vchip:hover,html body.v8 .r3c-vmenu .vchip:focus-visible{background:var(--v8-w3);color:var(--v8-t2);outline:0}
html body.v8 .r3c-vmenu .vchip:focus-visible{box-shadow:inset 0 0 0 1px rgba(247,248,248,.35)}
/* выбранная — как активный пункт бокового меню: ровная светлая подложка, без цветных линий */
html body.v8 .r3c-vmenu .vchip.on{color:var(--v8-t1);background:linear-gradient(90deg,rgba(200,214,238,.075),rgba(200,214,238,.04) 60%,rgba(200,214,238,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
@keyframes r3c-pop{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html body.v8 .r3c-vmenu{animation:none}}
@media(pointer:coarse){html body.v8 #ephead.review-tabs .r3c-vbtn{height:var(--v8-h-touch);padding:0 8px}html body.v8 .r3c-vmenu .vchip{height:var(--v8-h-ph)}}
/* ---- стол серии клиента = командный стол v8 (владелец 11.10: «у клиента рамки резкие, у нас размытые»). Правило панелей
   _depth_theme (:is(…,.review-discussion,#delivery-progress) — вес id) рисовало у обсуждения рамку 1 px, скругление 16 и тень;
   решения клиента выглядели кнопками с заливкой. Здесь — тот же вес (#review-shell) и те же значения, что у команды. ---- */
html body.aid-shell.v8.v8-proj #review-shell.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) .review-discussion{border:0;border-radius:0 var(--v8-r-12) var(--v8-r-12) 0;box-shadow:none;background:transparent;outline:0}
html body.aid-shell.v8.v8-proj #review-shell .publication-bar .decision-buttons button{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);height:var(--v8-h-btn);min-height:0;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:400 var(--v8-fs-13) var(--v8-sans);transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj #review-shell .publication-bar .decision-buttons button:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj #review-shell .publication-bar .decision-buttons [data-decision=approved]{color:var(--v8-t1);font-weight:500}
html body.aid-shell.v8.v8-proj #review-shell .publication-bar .decision-buttons [aria-pressed=true]{color:var(--v8-t1);background:var(--v8-w4)}
html body.aid-shell.v8.v8-proj #review-shell .publication-bar .decision-buttons button:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:1px}
html body.aid-shell.v8.v8-proj #review-shell #review-composer .cbfield>.note-target{display:inline-flex;align-items:center;gap:var(--v8-g-6);margin:0;padding:0;min-height:0;order:0}
html body.aid-shell.v8.v8-proj #review-shell #review-composer .cbfield>.cbsend-icon{margin-left:auto}
/* бой 11.10: «рябит» — сетка по каждому дню убрана, тонкая линия только по понедельникам; окно фиксированной высоты с
   собственной прокруткой, шапка дат и колонка проектов закреплены (как у календаря команды) */
/* владелец (бой 11.10): «под пилюлями сетку прям еле заметную, а где пилюль нет — чуть ослабить, но не сильно»: линия дня
   2,5 % (у команды 4 %), понедельник 4,5 %, выходные 1,5 %; пилюля лежит на своей подложке цвета панели и гасит сетку под собой */
html body.v8 .r3c #planning.r3c-planner .plan-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100%/var(--days,14) - 1px),rgba(255,255,255,.025) calc(100%/var(--days,14) - 1px),rgba(255,255,255,.025) calc(100%/var(--days,14)))}
html body.v8 .r3c #planning.r3c-planner .r3c-wk{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.045);pointer-events:none;z-index:0}
/* бой 11.10: «сетку прям еле-еле» — выходные едва отличимы от фона, пилюли читаются первыми */
html body.v8 .r3c #planning.r3c-planner .plan-weekend{background:rgba(255,255,255,.015)}
html body.v8 .r3c #planning.r3c-planner .plan-day-heads .is-weekend{background:rgba(255,255,255,.015)}
html body.v8 .r3c #planning.r3c-planner .plan-person-block+.plan-person-block::before{opacity:.5}
html body.v8 .r3c #planning.r3c-planner .r3c-mk.r3c-under{visibility:hidden}
html body.v8 .r3c #planning.r3c-planner #plan-scroll{max-height:min(520px,calc(100vh - 220px));overflow:auto}
html body.v8 .r3c #planning.r3c-planner .r3c-linked .plan-bar{cursor:default}
html body.v8 .r3c #planning.r3c-planner .plan-bar:not(.r3c-plan){background:linear-gradient(90deg,rgba(var(--c),.14),transparent 30%,transparent 70%,rgba(var(--c),.14)),var(--v8-panel)}
html body.v8 .r3c #planning.r3c-planner .plan-bar:not(.r3c-plan):is(:hover,:focus-visible){background:linear-gradient(90deg,rgba(var(--c),.28),transparent 30%,transparent 70%,rgba(var(--c),.28)),var(--v8-panel)}
html body.v8 .r3c #planning.r3c-planner .plan-bar.r3c-plan{background:var(--v8-panel)}
html body.v8 .r3c #planning.r3c-planner .plan-now{z-index:2}
/* 12.10: логлайн, комментарий и ссылки клиента на карточке плана; наш срок и его изменение */
html body.v8 .r3c .r3c-plans .r3c-logline{margin:0;font-size:var(--v8-fs-13);line-height:1.45;color:var(--v8-t3);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
html body.v8 .r3c .r3c-plans .r3c-note{margin:0;padding-left:10px;font-size:var(--v8-fs-12);line-height:1.45;color:var(--v8-t3);box-shadow:inset 1px 0 var(--v8-w10);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
html body.v8 .r3c .r3c-plans .r3c-links{display:flex;flex-wrap:wrap;gap:var(--v8-g-4) var(--v8-g-12);font-size:var(--v8-fs-12)}
html body.v8 .r3c .r3c-plans .r3c-links :is(a,span){display:inline-flex;align-items:center;gap:var(--v8-g-5);min-height:var(--v8-h-sm);color:var(--v8-t2)}
html body.v8 .r3c .r3c-plans .r3c-links a:hover{color:var(--v8-t1)}
html body.v8 .r3c .r3c-plans .r3c-links svg{color:var(--v8-t3)}
html body.v8 .r3c .r3c-plans .r3c-our{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--v8-g-4) var(--v8-g-10)}
html body.v8 .r3c .r3c-plans .r3c-our .lab{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .r3c .r3c-plans .r3c-our b{font:500 var(--v8-fs-16)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .r3c .r3c-shift{font:400 var(--v8-fs-12) var(--v8-sans);color:rgba(201,162,39,.95);white-space:nowrap}
html body.v8 .r3c #planning.r3c-planner .plan-bar .r3c-shift{flex:none;font-family:var(--v8-mono);font-size:var(--v8b-fs-11)}
/* ---- общая карточка плана (команда и клиент, _v8_plan_card.html, 12.10): колонка, действия внизу, карточки ряда одной
   высоты; комментарий клиента «обратите внимание» — тонкая оранжевая линия слева, читаемым текстом ---- */
html body.v8 .v8-plan-grid{align-items:stretch}
html body.v8 .v8-pc.v8-plan{display:flex;flex-direction:column;gap:var(--v8-g-10);height:100%}
html body.v8 .v8-pc.v8-plan .tt{margin:0}
html body.v8 .v8-pc.v8-plan .plan-number.na{font:400 var(--v8-fs-18)/1.4 var(--v8-sans);color:var(--v8-t4)}
html body.v8 .v8-pc.v8-plan .dates{margin-top:2px}
html body.v8 .v8-pc.v8-plan .v8-plan-studio{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--v8-g-4) var(--v8-g-10)}
html body.v8 .v8-pc.v8-plan .v8-plan-studio .lab{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.v8 .v8-pc.v8-plan .v8-plan-studio b{font:500 var(--v8-fs-16)/1 var(--v8-sans);color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.v8 .v8-pc.v8-plan .v8-plan-shift{font:400 var(--v8-fs-12) var(--v8-sans);color:rgba(201,162,39,.95);white-space:nowrap}
html body.v8 .v8-pc.v8-plan .meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-10)}
html body.v8 .v8-pc.v8-plan .meta span{display:inline-flex;align-items:center;gap:var(--v8-g-5)}
html body.v8 .v8-pc.v8-plan .meta .plan-risk{margin-left:auto}
html body.v8 .v8-pc.v8-plan .v8-plan-note{margin:0;padding:6px 0 6px 12px;font-size:var(--v8-fs-13);line-height:1.45;color:var(--v8-t2);box-shadow:inset 2px 0 rgba(255,80,0,.7);background:linear-gradient(90deg,rgba(255,80,0,.06),transparent 60%);border-radius:0 var(--v8-r-6) var(--v8-r-6) 0;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
html body.v8 .v8-pc.v8-plan .plan-actions{margin-top:auto;padding-top:4px}
html body.v8 .v8-pc.v8-plan .plan-more{margin:0 0 0 auto}
html body.v8 .r3c .r3c-plans .v8-pc.v8-plan.is-inactive .v8-plan-note{color:var(--v8-t3)}
/* v8, волна A (11.10.2026): семейство страниц проекта — одна шапка на все адреса проекта (_project_head.html), стол серии
   (_ep_body.html: герой публикации, стеклянный тулбар, лента диапазонов над шкалой, панель версий, обсуждение пузырями,
   меню «⋯», композер), настройки проекта (project_admin.html) и клиентский вид (_review_component.html).
   Всё под body.v8 (шапка) и body.v8.v8-proj (перенесённые страницы); старые партиалы не трогаем, слой подключён последним
   (assets.py, блок «wave A»), поэтому при равном весе выигрывает; где старые селекторы весомее — вес поднят теми же
   классами (aid-shell, v8, v8-proj) и #ephead. Размеры вне старой шкалы — токенами _v8_tokens.html; !important нет.
   Правило ясности п. 2.8 (ноль пояснительного текста): подсказки (i), подписи-пояснения и абзацы пустых состояний
   на перенесённых страницах скрыты, функции остаются. */
/* ===================== 1. Шапка проекта — одна на все адреса проекта ===================== */
html body.aid-shell.v8 .title-head{display:flex;flex-direction:column;margin:8px 0 20px;border:0;border-radius:0;background:transparent;overflow:visible;font-family:var(--v8-sans)}
html body.aid-shell.v8 .title-head .title-band{order:1;display:flex;align-items:flex-start;gap:var(--v8-g-36);padding:18px 0 0;background:transparent;border:0}
html body.aid-shell.v8 .title-head.is-client .title-band,html body.aid-shell.v8 .title-head:not(.is-client) .title-band{padding:18px 0 0}
html body.aid-shell.v8 .title-head .title-band .title-back{position:static;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-sm);margin:0 0 6px;padding:0;font-size:var(--v8-fs-13);font-weight:400;color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-band .title-back:hover{color:var(--v8-t2)}
html body.aid-shell.v8 .title-head.is-client .title-band{flex-wrap:wrap}
html body.aid-shell.v8 .title-head.is-client .title-band .title-back{flex:1 0 100%}
html body.aid-shell.v8 .title-head .title-main{min-width:0;flex:1 1 auto}
html body.aid-shell.v8 .title-head .title-name{margin:0;font:600 var(--v8-fs-30)/1.15 var(--v8-sans);letter-spacing:-.022em;color:var(--v8-t1);max-width:none;text-wrap:balance;overflow-wrap:anywhere}
html body.aid-shell.v8 .title-head .title-credits{display:flex;align-items:center;flex-wrap:wrap;gap:var(--v8-g-6) 0;margin-top:4px;font-size:var(--v8-fs-14);font-weight:400;letter-spacing:0;text-transform:none;color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-credits .v8-ctx-sec::after{content:"·";margin:0 8px;color:var(--v8-t4)}
html body.aid-shell.v8 .title-head .title-credits .stat{display:inline-flex;align-items:center;gap:var(--v8-g-6);font-size:var(--v8-fs-14);font-weight:400;letter-spacing:0;text-transform:none;color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-credits .decision-status{margin-left:12px;font-size:var(--v8-fs-13);color:var(--v8-t2)}
/* производство: этапы по проекту и ≤2 факта — тихой строкой справа */
html body.aid-shell.v8 .title-head .title-prod{display:grid;gap:var(--v8-g-10);justify-items:start;min-width:0;max-width:min(560px,52%);margin-top:4px}
html body.aid-shell.v8 .title-head .title-cap{font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;text-transform:none;color:var(--v8-t3);list-style:none;cursor:default}
html body.aid-shell.v8 .title-head .title-prod>summary::after{display:none}
html body.aid-shell.v8 .title-head .title-prod-content{display:grid;gap:var(--v8-g-10)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chips.title-stages{gap:var(--v8-g-4,4px) var(--v8-g-18)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chip{gap:var(--v8-g-6);font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chip>span{font-weight:400;color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chip>i.pipe-mark:is(.is-progress,.is-mix,.is-stale,.is-overdue,.is-blocked,.is-waiting)+span{color:var(--v8-t2)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chip small{font-size:var(--v8-fs-12);font-weight:400;color:var(--v8-t3)}
html body.aid-shell.v8 .title-head .title-prod .pipe-chip>i.pipe-mark.is-gap::after{background:var(--v8-red);opacity:.7}
html body.aid-shell.v8 .title-head .title-stages-empty{font-size:var(--v8-fs-13);color:var(--v8-t4)}
html body.aid-shell.v8 .title-head .title-facts{gap:var(--v8-g-18);font-size:var(--v8-fs-13);font-weight:400;letter-spacing:0;text-transform:none;color:var(--v8-t3);white-space:normal;flex-wrap:wrap}
html body.aid-shell.v8 .title-head .title-facts>span{gap:var(--v8-g-6)}
html body.aid-shell.v8 .title-head .title-facts b{font:500 var(--v8-fs-13) var(--v8-mono);letter-spacing:0;color:var(--v8-t2);font-variant-numeric:tabular-nums}
/* неактивная шапка (сотрудник без задачи): приглушена без фильтра */
html body.aid-shell.v8 .title-head.is-idle .title-band,html body.aid-shell.v8 .title-head.is-idle .project-tabs{filter:none;opacity:.6}
/* док разделов (его строит _linear_navigation.html): прозрачнее, тонкая линия, без размытия панели */
html body.aid-shell.v8 .project-context-dock{font-family:var(--v8-sans);padding:0 var(--page-gutter);background:rgba(16,19,22,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:0}
html body.aid-shell.v8 .project-context-dock .project-tabs{min-height:var(--v8-h-row);gap:var(--v8-g-2)}
html body.aid-shell.v8 #workspace-content :is(.title-band),html body.aid-shell.v8 .title-head .title-band{background:transparent;border:0;border-radius:0}
/* разделы — вкладки тонкой линией над именем, как на листе v8: назад · разделы · меню · «Клиентский вид» */
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare{order:0;position:relative;display:flex;align-items:center;gap:var(--v8-g-2);min-height:var(--v8-h-row);margin:0;padding:0;border:0;flex-wrap:nowrap;background:transparent}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w5) 10%,var(--v8-w5) 90%,transparent)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-back{position:static;display:inline-flex;align-items:center;gap:var(--v8-g-6);flex:none;min-height:var(--v8-h-row);margin:0 8px 0 0;padding:0 10px 0 0;border:0;font-size:var(--v8-fs-13);font-weight:400;color:var(--v8-t3)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-back:hover{color:var(--v8-t2)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links{gap:var(--v8-g-2);padding:0;margin:0;overflow-x:auto;scrollbar-width:none;min-width:0}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-row);height:var(--v8-h-row);padding:0 10px;border-radius:var(--v8-r-6);font-size:var(--v8-fs-13);font-weight:400;line-height:1.2;color:var(--v8-t3);transition:color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a:hover{color:var(--v8-t2)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a[aria-current=page]{color:var(--v8-t1);background:transparent;box-shadow:none}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a[aria-current=page]::before{display:none}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a[aria-current=page]::after{content:"";display:block;position:absolute;left:10%;right:10%;bottom:0;height:1px;z-index:1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:1;border-radius:0}
html body.aid-shell.v8 .project-context-dock .project-more{margin-left:auto;font-size:var(--v8-fs-13);flex:none}
html body.aid-shell.v8 .project-context-dock .project-more>summary{display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);padding:0 10px;border-radius:var(--v8-r-6);color:var(--v8-t3);list-style:none;cursor:pointer}
html body.aid-shell.v8 .project-context-dock .project-more>summary::-webkit-details-marker{display:none}
html body.aid-shell.v8 .project-context-dock .project-more>summary:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.aid-shell.v8 .project-context-dock .project-more>summary:focus-visible,html body.aid-shell.v8 .project-context-dock .project-more>div a:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:-2px;background:var(--v8-w5);color:var(--v8-t1)}
html body.aid-shell.v8 .project-context-dock .project-more>summary::after{content:"";width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7}
html body.aid-shell.v8 .project-context-dock .project-more>div{top:calc(100% + 6px);right:0;min-width:216px;padding:4px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);background:var(--v8-pop);box-shadow:var(--v8-sh-pop);z-index:80}
html body.aid-shell.v8 .project-context-dock .project-more>div>a{display:flex;align-items:center;min-height:var(--v8-h-it);padding:0 8px;border-radius:var(--v8-r-5);font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.aid-shell.v8 .project-context-dock .project-more>div>a:hover{background:var(--v8-w5);color:var(--v8-t1)}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-anchor{margin-left:0;font-size:var(--v8-fs-12);color:var(--v8-t4);padding:0 8px}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-anchor:hover{color:var(--v8-t2)}
/* «Клиентский вид» — переключатель с красной линией (п. 3.8 .tgl): на столе выключен, на клиентской странице включён */
html body.aid-shell.v8 .project-context-dock .client-switch{position:relative;display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:var(--v8-h-btn);height:var(--v8-h-btn);margin:0 0 0 4px;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:500;text-decoration:none;transition:color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8 .project-context-dock .client-switch:hover{background:var(--v8-w3);color:var(--v8-t2);box-shadow:none}
html body.aid-shell.v8 .project-context-dock .client-switch::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-red),transparent);opacity:0;transition:opacity var(--v8-mid) var(--v8-ease)}
html body.aid-shell.v8 .project-context-dock .client-switch[aria-pressed=true],html body.aid-shell.v8 .project-context-dock .client-switch[aria-pressed=true]:hover{color:var(--v8-t1);box-shadow:none}
html body.aid-shell.v8 .project-context-dock .client-switch[aria-pressed=true]::after{opacity:1}
html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-anchor+.client-switch{margin-left:0}
html body.aid-shell.v8 .title-head~.project-inline-review{margin-top:0}
@media(max-width:900px){
 html body.aid-shell.v8 .title-head{position:static;margin-bottom:16px}
 html body.aid-shell.v8 .title-head .title-band{flex-direction:column;gap:var(--v8-g-10);padding:14px 0 0}
 html body.aid-shell.v8 .title-head .title-name{font-size:var(--v8-fs-22);padding-right:0}
 html body.aid-shell.v8 .title-head .title-prod{display:block;max-width:none;width:100%;margin:0}
 html body.aid-shell.v8 .title-head .title-prod>summary{min-height:var(--v8-h-btn);display:flex;align-items:center;cursor:pointer}
 html body.aid-shell.v8 .title-head .title-prod .pipe-chips.title-stages{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
 html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare{display:flex;flex-wrap:wrap;gap:0 4px;min-height:0;padding:0;overflow:visible}
 html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .title-back{order:0;flex:none;margin:0;padding:0 8px 0 0;min-height:var(--v8-h-row)}
 html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-more{order:1;margin-left:auto}
 html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links{order:2;flex:1 0 100%;display:flex;flex-wrap:nowrap;gap:var(--v8-g-2);width:100%;overflow-x:auto;padding:0;margin:0}
 html body.aid-shell.v8 .project-context-dock .project-tabs.is-bare .project-tabs-links a{min-height:var(--v8-h-ph);height:var(--v8-h-ph);padding:0 8px}
 html body.aid-shell.v8 .project-context-dock .client-switch,html body.aid-shell.v8 .project-context-dock .project-more .client-switch{position:static;display:inline-flex;width:auto;min-height:var(--v8-h-btn);height:auto;margin:0;padding:0 10px;font-size:var(--v8-fs-13)}
 html body.aid-shell.v8 .project-context-dock .project-more .client-switch{display:flex;min-height:var(--v8-h-it);padding:0 8px;border-radius:var(--v8-r-5);justify-content:flex-start}
 html body.aid-shell.v8 .project-context-dock .project-more .client-switch::after{display:none}
}
/* v8, волна A — стол серии: вкладки серий, герой публикации, кадр со стеклянным тулбаром, лентой диапазонов и панелью версий,
   колонка обсуждения (пузыри, меню «⋯», строка ввода), клиентская комната. Вес поднят body.v8.v8-proj (+ #ephead там, где
   старые правила держатся на id). Мобильные правила _mobile_desk_css.html с !important остаются в силе (кадр на телефоне). */
/* токены волны A: размеры вне старой шкалы (линтер видит var(), а не россыпь px) */
body.v8{--v8a-h-18:18px;--v8a-h-20:20px;--v8a-h-22:22px;--v8a-h-26:26px;--v8a-h-28:28px;--v8a-h-32:32px;--v8a-h-48:48px;--v8a-h-64:64px;--v8a-h-8:8px;--v8a-r-1:1px;--v8a-r-bub:14px 14px 14px 5px;--v8a-r-bub-own:14px 14px 5px 14px;--v8a-r-quote:0 6px 6px 0;--v8a-r-pill:99px}
/* ===================== 2. Вкладки серий: «EP 07 · V9 · ● · 💬 new·total · ⧉», одна строка 36 px ===================== */
html body.aid-shell.v8.v8-proj :is(#ephead,.ephead){display:flex;align-items:center;flex-wrap:nowrap;gap:var(--v8-g-2);margin:0 0 14px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;position:relative;font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj :is(#ephead,.ephead)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--v8-w5) 10%,var(--v8-w5) 90%,transparent);pointer-events:none}
html body.aid-shell.v8.v8-proj :is(#ephead,.ephead) .episode-card{flex:none;position:relative}
html body.aid-shell.v8.v8-proj :is(#ephead,.ephead) .episode-peek{display:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);width:auto;min-width:0;min-height:var(--v8-h-row);height:var(--v8-h-row);margin:0;padding:0 10px;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--v8-t3);font-size:var(--v8-fs-13);font-weight:400;line-height:1;white-space:nowrap;transition:color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab::before{display:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab b{order:0;font:600 var(--v8-fs-13)/1 var(--v8-cond);letter-spacing:.02em;color:var(--v8-t3);transition:color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .episode-current{order:1;font:600 var(--v8-fs-12)/1 var(--v8-cond);letter-spacing:.04em;color:var(--v8-t3);opacity:.85;margin:0}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .episode-current::before{content:"·";margin:0 5px 0 0}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .episode-current[hidden]{display:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .v8-pubdot{order:2;display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--v8-g);opacity:.8;flex:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .v8-pubdot[hidden]{display:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tab-unread{order:3;min-width:0;height:auto;padding:0;border-radius:0;background:none;color:rgba(201,162,39,.85);font:400 var(--v8-fs-11)/1 var(--v8-mono)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tab-unread:not([hidden])+.tabcnt::before,html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tab-unread~.tabcnt::before{content:""}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tabcnt{order:4;display:inline-flex;align-items:center;gap:var(--v8-g-3);min-width:0;min-height:0;height:auto;padding:0;margin:0;border:0;border-radius:0;background:none;color:var(--v8-t3);font:400 var(--v8-fs-11)/1 var(--v8-mono);box-shadow:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tabcnt[hidden]{display:none}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tabcnt svg{width:12px;height:12px;opacity:.8}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .tabcnt.all-done{background:none;color:rgba(95,168,107,.85)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .v8-vr{order:5;font-size:var(--v8-fs-12);line-height:1;color:var(--v8-t3);opacity:.6}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:hover b,html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:hover .episode-current{color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:is(.on,[aria-pressed=true]) b{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:is(.on,[aria-pressed=true]) .episode-current{color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:is(.on,[aria-pressed=true]) .v8-vr{color:rgba(255,80,0,.75);opacity:1}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab::after{content:"";position:absolute;left:10px;right:40%;bottom:0;top:auto;height:1px;border-radius:0;background:linear-gradient(90deg,var(--v8-red),rgba(255,48,0,.6) 60%,transparent);opacity:0;animation:none;transition:opacity var(--v8-mid) var(--v8-ease);z-index:1;display:block}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:is(.on,[aria-pressed=true])::after{opacity:1}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:-2px}
html body.aid-shell.v8.v8-proj .desk-focus-toggle{background:var(--v8-bg);border-left:1px solid var(--v8-w6)}

/* ===================== 3. Стол: кромки тают, без заливки панели ===================== */
html body.aid-shell.v8.v8-proj .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded),html body.aid-shell.v8.v8-proj .review-shell.epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded){position:relative;margin:0 0 24px;padding:0;gap:0 8px;border:0;border-radius:var(--v8-r-12);background:transparent;box-shadow:none}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded)::after{content:"";position:absolute;inset:0;border-radius:var(--v8-r-12);border:1px solid rgba(255,255,255,.09);pointer-events:none;-webkit-mask-image:radial-gradient(520px 760px at 196px 52%,transparent 62%,#000 100%);mask-image:radial-gradient(520px 760px at 196px 52%,transparent 62%,#000 100%)}
html body.aid-shell.v8.v8-proj .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){padding:16px 8px 16px 16px;background:transparent}

/* ===================== 4. Герой серии = блок публикации над столом ===================== */
html body.aid-shell.v8.v8-proj .epwrap .publication-bar.v8-hero{grid-column:1/-1;position:relative;display:flex;align-items:flex-start;flex-wrap:wrap;gap:var(--v8-g-10) 12px;min-height:0;margin:0 0 4px;padding:18px 22px 16px;border:0;border-radius:var(--v8-r-14);background:transparent;font-family:var(--v8-sans);font-size:var(--v8-fs-13);letter-spacing:0;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .epwrap .publication-bar.v8-hero::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.016) 55%,transparent);pointer-events:none}
html body.aid-shell.v8.v8-proj .epwrap .publication-bar.v8-hero::after{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid var(--v8-w10);pointer-events:none;-webkit-mask-image:radial-gradient(120% 95% at 50% 0%,#000 20%,transparent 72%);mask-image:radial-gradient(120% 95% at 50% 0%,#000 20%,transparent 72%)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero>*{position:relative}
/* Полный экран и развёрнутый стол: строка публикации, поднятая в корень стола (hero), уходит, как прежние .pubinfo.
   Иначе на узком экране она занимает единственную строку сетки 1fr, а плеер падает в неявную строку высотой 0 —
   на телефоне «чёрный экран» (владелец, 11.10). На широком экране она живёт в колонке обсуждения и не затрагивается. */
html body.aid-shell.v8.v8-proj .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded)>.publication-bar.v8-hero{display:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-main{order:0;flex:1 1 260px;min-width:0}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-big{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-v{font:600 var(--v8-fs-40)/1 var(--v8-cond);letter-spacing:-.01em;color:var(--v8-t1);font-variant-numeric:tabular-nums}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-lbl{font-size:var(--v8-fs-15);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-sub{display:flex;align-items:center;flex-wrap:wrap;gap:var(--v8-g-6) 14px;margin-top:10px;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-sub [hidden]{display:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .sound-state{display:inline-flex;align-items:center;gap:var(--v8-g-5);padding:0;border:0;border-radius:0;font-size:var(--v8-fs-13);color:var(--v8-t3);white-space:nowrap}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .sound-state.is-merged{color:rgba(95,168,107,.85)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .sound-state.is-pending{color:rgba(201,162,39,.85)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero :is(.handoff-controls,#task-controls){order:1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--v8-g-6);margin:0;padding:0;border:0;background:transparent}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-act{order:2;display:flex;align-items:center;gap:var(--v8-g-6);margin-left:auto}
/* «Показать клиенту» → «Передать в…» → «⋯»: «Передать» живёт внутри группы действий и идёт по разметке (владелец, 11.10) */
html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-act>:is(.handoff-controls,#task-controls){order:0;margin:0}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .publication-error{order:3;flex:1 0 100%;color:var(--v8-late);font-size:var(--v8-fs-13)}
/* «Показать клиенту · Vn» — единственное действие экрана: оранжевая тонкая линия; уже показана — тихая кнопка с галочкой */
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);margin:0;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans);white-space:nowrap;filter:none;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8;transition:opacity var(--v8-mid) var(--v8-ease)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn:hover{background:var(--v8-w3);color:var(--v8-t1);filter:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn:hover::after{opacity:1}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn[aria-pressed=true]{background:transparent;color:var(--v8-t3);box-shadow:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn[aria-pressed=true]::after{opacity:0}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn[aria-pressed=true]:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn svg{display:none;width:14px;height:14px}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn[aria-pressed=true] svg{display:block;color:rgba(95,168,107,.85)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
/* «Передать…» — тонкая кнопка */
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero :is(.episode-handoff-destination,.handoff-destination,.aid-select-trigger){width:auto;min-width:0;max-width:220px;min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 26px 0 10px;border:0;border-radius:var(--v8-r-6);background-color:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero :is(.episode-handoff-destination,.handoff-destination,.aid-select-trigger):hover{background-color:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .handoff-buttons button{min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-more .v8-pop .it{display:flex}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-more .v8-pop .it[hidden]{display:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-more .v8-pop .it[aria-pressed=true]{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-more>summary{list-style:none}
/* у клиента — та же строка: решение по версии; «Принять» — оранжевая линия, остальное тихо */
html body.aid-shell.v8.v8-proj .review-shell .publication-bar.review-topline{display:flex;align-items:center;flex-wrap:wrap;gap:var(--v8-g-6) 12px;min-height:0;padding:4px 0 12px;background:transparent;border:0}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons{display:flex;flex-wrap:wrap;gap:var(--v8-g-6)}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons button{position:relative;display:inline-flex;align-items:center;gap:var(--v8-g-6);min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);white-space:nowrap;flex:none}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons button:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons button svg{width:14px;height:14px}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons [data-decision=approved]{color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons [data-decision=approved]::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons [aria-pressed=true]{color:var(--v8-t1);background:var(--v8-w4);outline:0}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons button:focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.aid-shell.v8.v8-proj .review-shell .decision-buttons [data-decision=approved][aria-pressed=true]::after{opacity:0}
html body.aid-shell.v8.v8-proj .review-shell :is(.decision-status,#decision-due){font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .review-shell #time-options{gap:var(--v8-g-6);font-size:var(--v8-fs-13);color:var(--v8-t3)}

/* ===================== 5. Кадр: настоящий .vbig, стеклянный тулбар, лента диапазонов над шкалой ===================== */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell) :is(.vwrap,.video-shell){border-radius:var(--v8-r-10);background:#000;box-shadow:none}
html body.aid-shell.v8.v8-proj :is(.vwrap,.video-shell) .vbig{inset:auto;left:50%;top:50%;width:64px;height:64px;min-height:var(--v8a-h-64);margin:-32px 0 0 -32px;padding:0;border-radius:50%;border:1px solid #ffffff1c;background:#10162333;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);color:#fff;box-shadow:inset 0 -2px 0 #ff3000,0 0 0 1px #ffffff14,0 10px 28px -8px #ff30008c;transition:background 160ms var(--v8-ease),box-shadow 200ms var(--v8-ease),transform var(--v8-mid) var(--v8-ease);z-index:3}
html body.aid-shell.v8.v8-proj :is(.vwrap,.video-shell) .vbig:hover{background:#1016234d;box-shadow:inset 0 -2px 0 #ff3000,0 0 0 1px #ffffff14,0 12px 32px -6px #ff3000b3}
html body.aid-shell.v8.v8-proj :is(.vwrap,.video-shell) .vbig:active{transform:scale(.97)}
html body.aid-shell.v8.v8-proj :is(.vwrap,.video-shell) .vbig svg{width:22px;height:22px}
html body.aid-shell.v8.v8-proj :is(.vwrap,.video-shell) .vbig:not(.is-playing) [data-icon=play]{margin-left:3px}
/* тулбар: стекло сверху по центру, проявляется по наведению на кадр (как прежняя накладка), группы через тонкую черту */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools.v8-ptb{top:10px;left:50%;transform:translate(-50%,-4px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--v8-g-1);width:max-content;max-width:calc(100% - 12px);margin:0;padding:3px;border:1px solid #ffffff1a;border-radius:var(--v8-r-10);background:#0b0f1547;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:none;transition:transform var(--v8-mid) var(--v8-ease)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell):is(:hover,:focus-within,.is-drawing,.has-draft,.controls-on) :is(.vbar,.review-controls) .vtools.v8-ptb{transform:translate(-50%,0)}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .v8-tgap{flex:none;width:1px;height:16px;margin:0 3px;background:#ffffff1a}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.vbtn,button.secondary){position:relative;display:grid;place-items:center;width:22px;min-width:22px;height:26px;min-height:var(--v8a-h-26);padding:0;margin:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:#e6e9ee;opacity:.75;flex:none}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.vbtn,button.secondary):hover{opacity:1;background:#ffffff1a}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.vbtn,button.secondary) svg{width:15px;height:15px}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.vbtn.on,.vbtn[aria-pressed=true],button[aria-pressed=true],.vbtn[aria-expanded=true]){opacity:1;background:transparent;color:#fff;box-shadow:none}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vbtn svg{color:inherit}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .quality-status:not(:empty){top:calc(100% + 6px);left:50%;right:auto;transform:translateX(-50%);max-width:220px;padding:4px 8px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-6);background:var(--v8-pop);color:var(--v8-t3);font:400 var(--v8-fs-12) var(--v8-sans);white-space:nowrap}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.vbtn.on,.vbtn[aria-pressed=true],button[aria-pressed=true])::after{content:"";position:absolute;left:28%;right:28%;bottom:2px;height:1px;background:var(--v8-red)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .vbtn.vcmt[aria-expanded=true]::after{content:"";position:absolute;left:28%;right:28%;bottom:2px;height:1px;background:rgba(255,255,255,.5)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .vbtn:disabled{opacity:.3}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.quality-trigger,.playback-speed){width:auto;min-width:22px;height:26px;min-height:var(--v8a-h-26);margin:0;padding:0 3px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:#e6e9ee;opacity:.75;font:500 var(--v8-fs-11)/1 var(--v8-mono);gap:var(--v8-g-3)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.quality-trigger,.playback-speed) span{font:inherit}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb :is(.quality-trigger,.playback-speed):hover{opacity:1;background:#ffffff1a}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .playback-speed[data-adjusted=true]{opacity:1;box-shadow:none}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .playback-speed[data-adjusted=true]::after{content:"";position:absolute;left:28%;right:28%;bottom:2px;height:1px;background:var(--v8-red)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .playback-speed{position:relative}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .quality-trigger svg{display:none}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .quality-row{display:flex;margin:0;padding:0;flex:none}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .quality-row label{font-size:0;margin:0}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vtimeline-caption{display:contents}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vtimeline-caption .ui-info{display:none}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vtimeline-caption .vclear-range:not([hidden]){display:grid;place-items:center;width:26px;min-width:26px;height:26px;min-height:var(--v8a-h-26);padding:0;color:#e6e9ee;font-size:var(--v8-fs-16);visibility:visible}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vtimeline-caption .vclear-range[hidden]{display:none}
html body.aid-shell.v8.v8-proj .vtools.v8-ptb .vsound{position:relative;display:flex}
html body.aid-shell.v8.v8-proj .vright[hidden]{display:none}
/* нижняя строка: пуск · время · звук — на тёмном градиенте, без плашки */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row){background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));gap:var(--v8-g-2)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row) :is(.vtime,.review-time){font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t2);margin:0 6px}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row) :is(.vplay,.vmute,#play,#back-five){width:28px;min-width:28px;height:28px;min-height:var(--v8a-h-28);padding:0;border:0;background:transparent;box-shadow:none;color:#e6e9ee;opacity:.8}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row) :is(.vplay,.vmute,#play,#back-five):hover{opacity:1;background:#ffffff1a}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vtimeline,.review-timeline){background:linear-gradient(180deg,transparent,rgba(0,0,0,.35));padding:8px 12px 2px}
/* шкала: 2 px, пройденное — оранжевым */
html body.aid-shell.v8.v8-proj .desk-side .vbar .vseek{height:16px;margin:0}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vtrack{top:7px;height:2px;border-radius:var(--v8a-r-1);background:rgba(255,255,255,.12)}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vprog{background:rgba(255,80,0,.85);border-radius:var(--v8a-r-1)}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vprog::after{width:8px;height:8px;margin-top:-4px;right:-4px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.5)}
/* лента диапазонов НАД шкалой: каждая заметка — отрезок (точка = короткий отрезок), не точки на шкале */
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks{position:relative;min-height:var(--v8a-h-8);margin:0 0 4px}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk{height:8px;min-height:var(--v8a-h-8);width:12px;min-width:12px;padding:0;border:0;border-radius:var(--v8-r-2);background:transparent;color:rgba(255,255,255,.34);cursor:pointer;filter:none}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk::before{content:"";position:absolute;left:2px;right:2px;top:3px;width:auto;height:2px;margin:0;border:0;border-radius:var(--v8-r-1);background:currentColor}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk.rng{width:auto;min-width:0}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk.rng::before{left:0;right:0;top:3px;height:2px}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk.res{color:rgba(255,255,255,.16)}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk:is(:hover,:focus-visible){background:transparent;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .desk-side .vbar .vmarks .vmk.is-current{color:rgba(255,48,0,.85);filter:none}
/* у клиента — те же отрезки */
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark{color:rgba(255,255,255,.34);height:8px;min-height:var(--v8a-h-8)}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark i{top:3px;height:2px}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark::after{display:none}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark.point{min-width:12px}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark.point i{left:2px;right:2px;width:auto}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark.resolved{color:rgba(255,255,255,.16)}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark:is(:hover,:focus-visible){background:transparent;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .desk-side .saved-marks .timeline-mark.is-current{color:rgba(255,48,0,.85);filter:none}
/* пишущаяся метка — красная */
html body.aid-shell.v8.v8-proj .desk-side .vrange::before,html body.aid-shell.v8.v8-proj .desk-side .range-move i{background:var(--v8-red)}
html body.aid-shell.v8.v8-proj .desk-side .vbar :is(.vrange .h,.range-edge)::after{background:var(--v8-red)}
/* рисование: панель отмены/повтора/очистки/готово — то же стекло */
html body.aid-shell.v8.v8-proj :is(.vstage,.video-shell) .annotation-toolbar{padding:4px;gap:var(--v8-g-2);border:1px solid #ffffff1a;border-radius:var(--v8-r-10);background:#0b0f15b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
html body.aid-shell.v8.v8-proj .annotation-toolbar button{width:32px;min-width:32px;height:32px;min-height:var(--v8a-h-32);padding:0;border-radius:var(--v8-r-6);color:#e6e9ee}
html body.aid-shell.v8.v8-proj .annotation-toolbar button:hover:not(:disabled){background:#ffffff1a}
html body.aid-shell.v8.v8-proj .annotation-toolbar button svg{width:16px;height:16px}

/* ===================== 6. Панель версий у кадра — по наведению, активная подсвечена, «+ версия» ===================== */
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp{position:absolute;right:18px;top:52px;bottom:96px;left:auto;inset-inline-start:auto;z-index:7;display:flex;flex-direction:column;gap:var(--v8-g-3);width:76px;max-width:none;max-height:none;margin:0;padding:2px;overflow-x:hidden;overflow-y:auto;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;opacity:0;pointer-events:none;transition:opacity var(--v8-mid) var(--v8-ease);-webkit-mask-image:linear-gradient(180deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(180deg,transparent,#000 6%,#000 94%,transparent)}
html body.aid-shell.v8.v8-proj .vstage:is(.v8-zone-side,:not(.v8-zones):focus-within,:not(.v8-zones):hover)>.episode-deck.v8-vp,html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp:is(:hover,:focus-within,.deleting){opacity:1;pointer-events:auto}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-version-caption,html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .version-compare{display:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-version-row{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:var(--v8-g-3);margin:0;padding:0;overflow:visible;min-width:0;max-width:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vversion{display:flex;flex-direction:row-reverse;align-items:center;gap:var(--v8-g-2)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vversion[hidden]{display:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage){position:relative;display:flex;align-items:center;justify-content:center;gap:var(--v8-g-3);flex:1 1 auto;width:auto;min-width:0;height:var(--v8-h-sm);min-height:var(--v8-h-sm);margin:0;padding:0 6px;border:0;border-radius:var(--v8-r-5);background:rgba(38,42,48,.9);box-shadow:none;color:var(--v8-t3);font:400 var(--v8-fs-11)/1 var(--v8-mono);cursor:pointer;opacity:1;transform:translateX(12px);transition:transform var(--v8-mid) var(--v8-ease),color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease);transition-delay:calc(var(--k,0)*35ms)}
html body.aid-shell.v8.v8-proj .vstage:is(.v8-zone-side,:not(.v8-zones):focus-within,:not(.v8-zones):hover)>.episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage),html body.aid-shell.v8.v8-proj .episode-deck.v8-vp:is(:hover,:focus-within,.deleting) :is(.vchip,.episode-add,.episode-version-manage){transform:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage):hover{color:var(--v8-t2);background:rgba(42,44,48,.95)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.on{color:var(--v8-t1);background:radial-gradient(46px 20px at 50% 50%,rgba(200,214,238,0.1000) 0%,rgba(200,214,238,0.0939) 11.7%,rgba(200,214,238,0.0784) 23.4%,rgba(200,214,238,0.0575) 35.1%,rgba(200,214,238,0.0352) 46.8%,rgba(200,214,238,0.0156) 58.5%,rgba(200,214,238,0.0028) 70.2%,rgba(200,214,238,0.0000) 78%),rgba(38,42,48,.95);box-shadow:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip:is(.pub,.seen){box-shadow:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .version-published-dot{width:4px;height:4px;background:var(--v8-g);opacity:.85}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .version-sound-dot{font-size:var(--v8-fs-10);color:var(--v8-t3);margin:0}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-add{position:static;background:rgba(38,42,48,.9);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-add svg{width:12px;height:12px}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-version-manage{flex:none;background:transparent;color:var(--v8-t4)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-version-manage svg{width:14px;height:14px}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .episode-version-manage[aria-pressed=true]{color:var(--v8-late)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vvdel{display:none;flex:none;width:20px;min-width:20px;height:var(--v8-h-sm);min-height:var(--v8-h-sm);padding:0;border:0;border-radius:var(--v8-r-5);background:rgba(38,42,48,.9);color:var(--v8-late)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp.deleting .vvdel{display:grid;place-items:center}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vvdel svg{width:12px;height:12px}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .v8-vp-l{font:400 var(--v8-fs-11)/1 var(--v8-sans)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp :is(button):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:-2px}
html body.aid-shell.v8.v8-proj :is(.epwrap:fullscreen,.epwrap:-webkit-full-screen,.epwrap.is-expanded) .episode-deck.v8-vp{display:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp.v8-off{display:none}
/* фокус виден везде на перенесённых страницах; у вдавленных полей — тонкое кольцо поверх внутренней подсветки (A01) */
html body.aid-shell.v8.v8-proj :is(.project-context-dock,.title-head,main,.wrap,#v8-none) :is(a,button,summary,[tabindex]):focus-visible{outline:2px solid rgba(247,248,248,.55);outline-offset:2px}
html body.aid-shell.v8.v8-proj :is(main,.wrap,#v8-none) :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{outline:1px solid rgba(247,248,248,.4);outline-offset:1px}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfield:focus-within{outline:1px solid rgba(247,248,248,.28);outline-offset:1px}
/* сенсорные: панель строкой под кадром (её туда переносит _v8_project_js) */
html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp{position:static;display:flex;flex-direction:row;width:auto;max-width:100%;margin:8px 10px 0;padding:0;overflow-x:auto;overflow-y:hidden;opacity:1;pointer-events:auto;background:transparent;border:0;box-shadow:none;-webkit-mask-image:none;mask-image:none}
html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp .episode-version-row{flex-direction:row;overflow:visible}
html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage){flex:none;min-width:44px;height:var(--v8-h-touch);min-height:var(--v8-h-touch);transform:none}
html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp .vversion{flex-direction:column}
html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp .vvdel{height:28px;min-height:var(--v8a-h-28);width:44px}

/* ===================== 7. Обсуждение: шапка, пузыри, меню «⋯», строка ввода ===================== */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) :is(.epcol,.review-discussion){position:relative;border-radius:0 var(--v8-r-12) var(--v8-r-12) 0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.02) 14%,rgba(255,255,255,.024) 100%);font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) :is(.epcol,.review-discussion)::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--v8-w6) 25%,var(--v8-w6) 75%,transparent);pointer-events:none}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head{position:relative;display:flex;align-items:center;min-height:var(--v8a-h-48);margin:0;padding:8px 16px;gap:var(--v8-g-10);border:0;background:transparent;font:400 var(--v8-fs-13) var(--v8-sans);letter-spacing:0;text-transform:none;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w6),var(--v8-w4) 40%,transparent)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .h4r{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--v8-g-6);flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:visible;scrollbar-width:none}
html body.aid-shell.v8.v8-proj .discussion-head :is(.v8-hidden-select,select.v8-hidden-select){display:none}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cseg button{min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 9px;border:0;background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cseg button:hover{background:var(--v8-w3);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cseg button[aria-pressed=true]{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter{position:static;flex:none}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary{gap:var(--v8-g-5);max-width:220px;overflow:hidden}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary .v8-cfl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary svg{width:12px;height:12px;flex:none}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter .v8-pop{position:absolute;top:calc(100% - 4px);left:16px;right:auto;max-height:min(360px,60vh);overflow:auto}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter .v8-pop .it[aria-pressed=true]{color:var(--v8-t1);background:var(--v8-w4)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter .v8-pop .v8-hr{height:1px;margin:4px 6px;background:var(--v8-w5)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head :is(.ccount,#comment-count){min-width:0;height:auto;min-height:0;padding:0;margin:0 0 0 2px;border-radius:0;background:none;color:var(--v8-t3);font:400 var(--v8-fs-12) var(--v8-mono)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .pullrow{margin-left:auto;padding:0}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .pullbtn{position:relative;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans);letter-spacing:0;white-space:nowrap}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .pullbtn:hover{background:var(--v8-w4);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .pullbtn.is-quiet{color:var(--v8-t3);opacity:1}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head :is(.chat-detach,#refresh-review){width:var(--v8-h-btn);min-width:var(--v8-h-btn);height:var(--v8-h-btn);min-height:var(--v8-h-btn);padding:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head :is(.chat-detach,#refresh-review):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .live-new{min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;background:transparent;color:rgba(201,162,39,.9);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .epcol .comment-audience{padding:6px 16px 0;font-size:var(--v8-fs-12);font-weight:500;letter-spacing:.06em;font-variant-caps:all-small-caps;color:var(--v8-t3)}
/* лента */
html body.aid-shell.v8.v8-proj .cmts.chat{padding:8px 16px 30px;font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj .cmts.chat>.cm{margin-top:12px}
html body.aid-shell.v8.v8-proj .cmts.chat>.cm.gm{margin-top:4px}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .av{flex:0 0 24px;width:24px;height:24px;border:0;border-radius:50%;background:var(--v8-w6);color:var(--v8-t2);font-size:var(--v8-fs-10);font-weight:500}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .bd{max-width:min(78%,520px);padding:7px 12px 5px;border:0;border-radius:var(--v8a-r-bub);background:linear-gradient(180deg,#21252b,#1b1e23);box-shadow:0 1px 2px rgba(0,0,0,.35),inset 0 1px 0 var(--v8-w5);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.own .bd{border-radius:var(--v8a-r-bub-own);background:linear-gradient(180deg,#23272f,#1e2227);border:0}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.res .bd{opacity:.7}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.is-selected .bd,html body.aid-shell.v8.v8-proj .cmts .cm.is-focus>.bd{box-shadow:0 0 0 1px rgba(255,48,0,.55),0 1px 2px rgba(0,0,0,.35)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .hd{gap:var(--v8-g-6);margin:0 0 3px;font-size:var(--v8-fs-12)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .hd>b{font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.adm .hd>b{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .rl{font-size:var(--v8-fs-11);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .tc{display:inline-flex;align-items:center;height:18px;min-height:var(--v8a-h-18);padding:0 5px;border:0;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11)/1 var(--v8-mono)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .tc:hover{color:var(--v8-t1);text-decoration:none;background:rgba(255,48,0,.25)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cvtag{height:18px;align-items:center;padding:0 5px;border:0;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t3);font:400 var(--v8-fs-11)/1 var(--v8-mono);margin:0}
html body.aid-shell.v8.v8-proj .cmts.chat.sort-time .cvtag,html body.aid-shell.v8.v8-proj .cmts.chat.showver .cvtag{display:inline-flex}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cmfor:not([hidden]){display:inline-flex;align-items:center;height:18px;padding:0 5px;border:0;border-radius:var(--v8-r-4);box-shadow:inset 0 0 0 1px var(--v8-w8);color:var(--v8-t3);font-size:var(--v8-fs-11)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .comment-text{font-size:var(--v8-fs-13);line-height:1.45;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .rq{margin:0 0 6px;padding:4px 8px;border-left:2px solid rgba(255,48,0,.7);border-radius:var(--v8a-r-quote);background:rgba(255,255,255,.07)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .rq b{font-size:var(--v8-fs-11);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .rq span{font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cmtail{font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t4);margin-top:2px}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.own .cmtail{color:var(--v8-t4)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cmtail .cmtime{padding-right:0}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cmdone{color:rgba(95,168,107,.85)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cmready input{accent-color:var(--v8-g)}
html body.aid-shell.v8.v8-proj .cmts.chat .cmday{height:20px;display:inline-flex;align-items:center;margin:14px 0 2px;padding:0 10px;border-radius:var(--v8a-r-pill);background:var(--v8-w4);color:var(--v8-t3);font-size:var(--v8-fs-11)}
html body.aid-shell.v8.v8-proj .cmts.chat>.thread-more{min-height:var(--v8-h-sm);margin-left:32px;padding:0 8px;background:transparent;color:var(--v8-t3);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .cmts.chat>.thread-more:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat :is(.cmempty,.vempty){color:var(--v8-t4);font-size:var(--v8-fs-13)}
/* «⋯» сбоку пузыря: появляется по наведению; на сенсорных виден всегда */
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cm-menu-trigger{position:absolute;top:4px;right:-28px;bottom:auto;left:auto;display:grid;place-items:center;width:22px;height:22px;min-height:var(--v8a-h-22);padding:0;border:0;border-radius:var(--v8-r-6);background:rgba(38,42,48,.9);box-shadow:none;color:var(--v8-t3);opacity:0;transition:opacity var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease);z-index:2}
html body.aid-shell.v8.v8-proj .cmts.chat .cm.own .cm-menu-trigger{right:auto;left:-28px}
html body.aid-shell.v8.v8-proj .cmts.chat .cm:is(:hover,:focus-within,.menu-open) .cm-menu-trigger{opacity:1}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cm-menu-trigger:hover{background:var(--v8-chip);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .cm-menu-trigger svg{width:14px;height:14px}
@media(hover:none){html body.aid-shell.v8.v8-proj .cmts.chat .cm .cm-menu-trigger{opacity:.7;width:28px;height:28px;right:-32px}html body.aid-shell.v8.v8-proj .cmts.chat .cm.own .cm-menu-trigger{left:-32px}}
/* меню сообщения: непрозрачное, у пузыря, разворачивается вверх у нижнего края (прежняя .up), строки 32 px с подписью */
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;width:max-content;min-width:200px;max-width:min(280px,calc(100vw - 48px));padding:4px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);background:var(--v8-pop);box-shadow:var(--v8-sh-pop);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);z-index:30}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button,.work-completion){display:flex;align-items:center;justify-content:flex-start;gap:var(--v8-g-10);width:100%;min-height:var(--v8-h-it);height:var(--v8-h-it);margin:0;padding:0 8px;border:0;border-radius:var(--v8-r-5);background:transparent;box-shadow:none;color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);text-decoration:none;white-space:nowrap;cursor:pointer}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button,.work-completion):hover{background:var(--v8-w5);color:var(--v8-t1);border:0}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button).ic{padding:0 8px}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button):not(.ic){padding-left:32px}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button) svg{width:14px;height:14px;color:var(--v8-t3);flex:none}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(a,button).ic::after{content:attr(aria-label);font:inherit;color:inherit}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .replink{order:0}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .forlink{order:1}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .attlink{order:2}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .cmcopy{order:3}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .cmlink{order:4}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .edlink{order:5}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(.reslink,.work-completion){order:6}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta>span:not(.cmedit-note):not(.res-mark){order:7;padding:4px 8px;font-size:var(--v8-fs-12);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .dellink{order:9;margin-top:4px;position:relative;color:rgba(255,110,90,.85)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .dellink::before{content:"";position:absolute;left:6px;right:6px;top:-3px;height:1px;background:var(--v8-w5)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .dellink:hover{color:rgba(255,130,110,.95);background:var(--v8-w5)}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .dellink svg{color:inherit}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta :is(.cmedit-note,.res-mark){display:none}
html body.aid-shell.v8.v8-proj .cmts.chat .cm .meta .cmcopy.done{color:rgba(95,168,107,.9)}
/* строка ввода: углубление; под ним — таймкод · вложение · голос | для кого · @ · Отправить (тонкая оранжевая линия) */
html body.aid-shell.v8.v8-proj :is(.epcol .cbox.chat,.review-discussion .review-composer){padding:10px 16px 16px;background:transparent;border:0;box-shadow:none}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfield{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-2);padding:8px 8px 6px 10px;border:0;border-radius:var(--v8-r-10);background:var(--v8-field);box-shadow:var(--v8-deboss)}
html body.aid-shell.v8.v8-proj .cbox.chat:focus-within .cbfield{background:var(--v8-field);border:0;box-shadow:var(--v8-deboss-f)}
html body.aid-shell.v8.v8-proj .cbox.chat .cbtext{order:0;flex:1 0 100%;background:transparent;color:var(--v8-t2);font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj .cbox.chat .cbtext::placeholder{color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cbox.chat .cbmeta{order:1;margin:0;gap:var(--v8-g-2)}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbattach,.cbvoice,.cbvoice-cancel,.cbfor,.cbmention){width:var(--v8-h-btn);min-width:var(--v8-h-btn);height:var(--v8-h-btn);min-height:var(--v8-h-btn);margin:0;padding:0;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);display:inline-grid;place-items:center;font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbattach,.cbvoice,.cbvoice-cancel,.cbfor,.cbmention):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbattach,.cbvoice,.cbfor) svg{width:15px;height:15px}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfor{order:2;margin-left:auto}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfor.on{width:auto;padding:0 8px;gap:var(--v8-g-5);display:inline-flex;color:var(--v8-t2);background:transparent;box-shadow:inset 0 0 0 1px var(--v8-w8)}
html body.aid-shell.v8.v8-proj .cbox.chat .cbmention{order:3}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfield>.cbsend-icon,html body.aid-shell.v8.v8-proj .cbox.chat .cbfield>#send-note{order:4}
html body.aid-shell.v8.v8-proj .cbox.chat .cbfield:not(:has(.cbfor)) .cbsend-icon{margin-left:auto}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send){position:relative;inset:auto;display:inline-flex;align-items:center;gap:var(--v8-g-6);width:auto;min-width:0;height:var(--v8-h-btn);min-height:var(--v8-h-btn);margin:0 0 0 4px;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans);transform:none}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send) svg{width:14px;height:14px;margin:0;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send)::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send):hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send):disabled{opacity:.45}
html body.aid-shell.v8.v8-proj .cbox.chat .tchip:not([hidden]){display:inline-flex;align-items:center;gap:var(--v8-g-3);height:20px;min-height:var(--v8a-h-20);padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono)}
html body.aid-shell.v8.v8-proj .cbox.chat .tchip svg{width:12px;height:12px}
html body.aid-shell.v8.v8-proj .cbox.chat .tclear{color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cbox.chat .pend{padding:0 6px;height:20px;display:inline-flex;align-items:center;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t2);font-size:var(--v8-fs-11)}
html body.aid-shell.v8.v8-proj .cbox.chat .replying{border-left:2px solid rgba(255,48,0,.7);border-radius:var(--v8a-r-quote);background:var(--v8-w4);color:var(--v8-t3);font-size:var(--v8-fs-12)}
html body.aid-shell.v8.v8-proj .cbox.chat .replying b{color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cbox .comment-draft-status{font-size:var(--v8-fs-12);color:var(--v8-t4)}
html body.aid-shell.v8.v8-proj .teammenu{padding:4px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-8);background:var(--v8-pop);box-shadow:var(--v8-sh-pop)}
html body.aid-shell.v8.v8-proj .teammenu .teamopt{min-height:var(--v8-h-it);padding:4px 8px;border-radius:var(--v8-r-5);font:400 var(--v8-fs-13) var(--v8-sans);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .teammenu .teamopt:is(:hover,:focus-visible){background:var(--v8-w5);color:var(--v8-t1)}
/* клиент: «Комментарий к кадру» и лента — те же; строка «время будет приложено» не нужна */
html body.aid-shell.v8.v8-proj .review-composer .cbhint{display:none}
html body.aid-shell.v8.v8-proj .review-composer .note-target button{min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-tint);color:var(--v8-t2);font:400 var(--v8-fs-11) var(--v8-mono);box-shadow:none}
/* лента клиента над столом (что ждём от клиента) — тихая строка */
html body.aid-shell.v8.v8-proj .client-band{margin:0 0 16px;padding:0;border:0;background:transparent;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .client-band .client-band-wait{font-weight:500;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .client-band .aid-icon{color:var(--v8-t3)}
/* правило ясности 2.8: подсказки-объяснения (i) на перенесённых страницах не показываем */
html body.aid-shell.v8.v8-proj :is(main,.wrap) .ui-info{display:none}
/* телефон */
@media(max-width:640px){
 /* стол на телефоне — ровно один экран (_mobile_desk_css): герой сжат до двух строк, чтобы ленте осталось место */
 html body.aid-shell.v8.v8-proj .epwrap .publication-bar.v8-hero{flex-wrap:wrap;align-items:center;padding:8px 10px;gap:var(--v8-g-2) 8px;margin:0 0 2px}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-main{flex:1 1 100%;display:flex;align-items:baseline;flex-wrap:nowrap;gap:0 var(--v8-g-10);min-width:0;overflow:hidden;white-space:nowrap}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-big{flex:none;flex-wrap:nowrap}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-sub{flex-wrap:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-sub>*{flex:none}
 /* строка ввода на телефоне: инструменты 28 px, «Отправить» — знаком с той же оранжевой линией (подпись остаётся в aria-label) */
 html body.aid-shell.v8.v8-proj .cbox.chat .cbfield{padding:6px 6px 4px 8px}
 html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbattach,.cbvoice,.cbvoice-cancel,.cbfor,.cbmention){width:28px;min-width:28px;height:28px;min-height:var(--v8a-h-28)}
 html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send){height:28px;min-height:var(--v8a-h-28);padding:0 10px}
 html body.aid-shell.v8.v8-proj .cbox.chat :is(.cbsend-icon.v8-send,#send-note.v8-send) .v8-sendl{display:none}
 html body.aid-shell.v8.v8-proj :is(.epcol .cbox.chat,.review-discussion .review-composer){padding:6px 10px 8px}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-big{gap:var(--v8-g-6)}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-v{font-size:var(--v8-fs-18)}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-lbl{font-size:var(--v8-fs-13)}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-sub{margin:0;gap:0 var(--v8-g-10);font-size:var(--v8-fs-12)}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-act{margin-left:auto;flex:none}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero :is(.handoff-controls,#task-controls){flex:0 1 auto;min-width:0}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn{padding:0 8px}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero :is(.episode-handoff-destination,.handoff-destination,.aid-select-trigger){max-width:124px;padding:0 14px 0 6px;background-position:right 2px center}
 html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-act{gap:var(--v8-g-2)}
 html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp{margin-top:4px}
 html body.aid-shell.v8.v8-proj .epplayer>.episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage){height:32px;min-height:var(--v8a-h-32)}
 html body.aid-shell.v8.v8-proj .vtools.v8-ptb :is(.vrepeat,.vautonext,.vsubs,.vsubs-none,.v8-cmp,.v8-pin){display:none}
 html body.aid-shell.v8.v8-proj .cmts.chat .cm .bd{max-width:84%}
 /* фильтры обсуждения — одной строкой (владелец, 11.10): «↓ Новых правок» сжимается с многоточием, а не уходит на свой ряд и не съедает ленту */
 html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .h4r{flex-wrap:nowrap;overflow:visible;min-width:0}
 html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .h4r .pullrow{flex:0 1 auto;width:auto;min-width:0}
 html body.aid-shell.v8.v8-proj :is(.epcol,.review-discussion) h4.discussion-head .h4r .pullbtn{max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary{max-width:calc(100vw - 80px)}
 html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter .v8-pop{left:8px;max-width:calc(100vw - 32px)}
 /* строка ввода лежит поверх низа ленты: запас снизу, чтобы последнее сообщение прокручивалось выше неё */
 html body.aid-shell.v8.v8-proj .desk-ready:not(:fullscreen):not(.is-expanded) :is(.epcol,.review-discussion) :is(.cmts,.review-comments){padding-bottom:calc(var(--composer-rest,0px) + 24px)}
}
@media(max-width:640px){html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded) .vtools.v8-ptb :is(.vrepeat,.vautonext,.vsubs,.v8-pin){display:grid}}
/* секции страницы проекта (план, сценарий, доска): заголовок 18/600, номер моно, тающее правило */
html body.aid-shell.v8.v8-proj :is(main,.wrap)>.sec{position:relative;display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;padding:0 0 10px;font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj :is(main,.wrap)>.sec h2{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1);text-transform:none}
html body.aid-shell.v8.v8-proj :is(main,.wrap)>.sec .n{font:400 var(--v8-fs-12) var(--v8-mono);color:var(--v8-t4)}
html body.aid-shell.v8.v8-proj :is(main,.wrap)>.sec .ln{display:none}
html body.aid-shell.v8.v8-proj :is(main,.wrap)>.sec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
/* комната проверки и история: заголовок раздела — секцией 18/600 (h1 страницы — имя проекта в шапке), ссылки тихие */
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading){display:flex;align-items:center;gap:var(--v8-g-10);flex-wrap:wrap;margin:0 0 16px;font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading) h1{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading) p{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading) .actions{margin-left:auto;display:flex;gap:var(--v8-g-6);align-items:center}
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading) :is(.text-link,.button){display:inline-flex;align-items:center;min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans);text-decoration:none}
html body.aid-shell.v8.v8-proj :is(.review-heading,.page-heading) :is(.text-link,.button):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .review-shell .publication-bar.review-topline .decision-status:not([hidden]){margin-left:auto}
/* v8, волна A — окна стола (показ клиенту, передача, просьба о помощи) и настройки проекта (project_admin.html):
   вдавленные поля, секции с заголовком 18/600 и тающим правилом, опасная зона с подтверждением именем, полоса сохранения
   справа от панели 232 px. Разметка и поля формы прежние. */
/* ===================== 8. Окна стола — поверхность v8 ===================== */
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog){width:min(420px,calc(100vw - 32px));padding:20px;border:0;border-radius:var(--v8-r-14);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)),var(--v8-panel);box-shadow:var(--v8-sh-dlg),inset 0 1px 0 var(--v8-w6);color:var(--v8-t2);font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj dialog.episode-handoff-dialog{width:min(560px,calc(100vw - 32px))}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog)::backdrop{background:rgba(14,17,20,.62)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) h2{margin:0 0 12px;font:600 var(--v8-fs-16)/1.3 var(--v8-sans);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj dialog.publication-dialog p{margin:0 0 18px;font-size:var(--v8-fs-13);line-height:1.5;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj dialog.publication-dialog .publication-close{margin:-6px 0 18px;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions){display:flex;justify-content:flex-end;gap:var(--v8-g-6);margin-top:8px}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button{position:relative;min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 12px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button:is(.ghost,.secondary){background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button:is(.ghost,.secondary):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button:not(.ghost):not(.secondary){background:transparent;box-shadow:none;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button:not(.ghost):not(.secondary)::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.85}
html body.aid-shell.v8.v8-proj dialog:is(.publication-dialog,.episode-handoff-dialog,.handoff-dialog) :is(footer,.actions) button:not(.ghost):not(.secondary):hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj dialog:is(.episode-handoff-dialog,.handoff-dialog) :is(select,textarea,input:not([type=checkbox]):not([type=radio])){border:0;border-radius:var(--v8-r-6);background:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans)}

/* ===================== 9. Настройки проекта ===================== */
html body.aid-shell.v8.v8-proj .ohero{display:flex;align-items:flex-end;gap:var(--v8-g-28);margin:0 0 8px;padding:0;border:0;background:transparent;font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj .ohero h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html body.aid-shell.v8.v8-proj .ohero .meta{display:flex;gap:var(--v8-g-28);flex-wrap:wrap;margin:0}
html body.aid-shell.v8.v8-proj .ohero .meta>div{display:grid;gap:4px}
html body.aid-shell.v8.v8-proj .ohero .meta .k{order:2;font-size:var(--v8-fs-13);color:var(--v8-t3);letter-spacing:0;text-transform:none}
html body.aid-shell.v8.v8-proj .ohero .meta :is(.v,.stat){order:1;font:600 var(--v8-fs-26)/1 var(--v8-sans);letter-spacing:-.02em;color:var(--v8-t1);font-variant-numeric:tabular-nums;text-transform:none}
html body.aid-shell.v8.v8-proj .ohero .meta .stat{font-size:var(--v8-fs-18)}
html body.aid-shell.v8.v8-proj .ohero .meta small{font-size:var(--v8-fs-13);font-weight:400;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .project-toolbar{margin:12px 0 0;padding:0;border:0}
html body.aid-shell.v8.v8-proj .project-toolbar .btn{min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .project-toolbar .btn:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj form[data-save-form],html body.aid-shell.v8.v8-proj .v8-settings-zone{font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj form[data-save-form] .grid2{gap:var(--v8-g-28) 40px}
/* секции: без карточной заливки, заголовок 18/600, тающее правило; поля вдавлены */
html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.ui-help .card,.card#access,.card.v8-danger,#v8-none){position:relative;margin:0;padding:0 0 8px;border:0;border-radius:0;background:transparent;box-shadow:none}
html body.aid-shell.v8.v8-proj .card .sec{position:relative;display:flex;align-items:center;gap:var(--v8-g-10);margin:40px 0 12px;padding:0 0 10px}
html body.aid-shell.v8.v8-proj .card .sec h2{font:600 var(--v8-fs-18)/1.2 var(--v8-sans);letter-spacing:-.012em;color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .card .sec .ln{display:none}
html body.aid-shell.v8.v8-proj .card .sec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
html body.aid-shell.v8.v8-proj .card .sec>:is(button,.button){margin-left:auto}
html body.aid-shell.v8.v8-proj .card .sec>:is(button,.button)+:is(button,.button){margin-left:0}
html body.aid-shell.v8.v8-proj .card .sec .hint{display:none}
html body.aid-shell.v8.v8-proj .card .field{display:grid;gap:var(--v8-g-5);margin-bottom:12px}
html body.aid-shell.v8.v8-proj .card :is(.field label,label){font:400 var(--v8-fs-13)/1.3 var(--v8-sans);color:var(--v8-t3);letter-spacing:0;text-transform:none}
html body.aid-shell.v8.v8-proj .card .row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--v8-g-10) 12px}
html body.aid-shell.v8.v8-proj .card :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea,.date-trigger,.aid-select-trigger){min-height:var(--v8-h-inp);height:var(--v8-h-inp);padding:0 10px;border:0;border-radius:var(--v8-r-6);background-color:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font:400 var(--v8-fs-13) var(--v8-sans);outline:0}
html body.aid-shell.v8.v8-proj .card :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea,.date-trigger,.aid-select-trigger):is(:focus,:focus-visible){border:0;box-shadow:var(--v8-deboss-f);outline:0}
html body.aid-shell.v8.v8-proj .card :is(input,textarea)::placeholder{color:var(--v8-t4)}
html body.aid-shell.v8.v8-proj .card :is(input[type=checkbox],input[type=radio]){accent-color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .card .table-scroll table{width:100%;border-collapse:collapse;font-size:var(--v8-fs-13);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .card .table-scroll th{height:28px;padding:0 10px;border:0;background:transparent;font:500 var(--v8-fs-12) var(--v8-sans);color:var(--v8-t4);text-align:left;text-transform:none;letter-spacing:0}
html body.aid-shell.v8.v8-proj .card .table-scroll td{padding:6px 10px;border:0;border-top:1px solid var(--v8-w4);background:transparent;vertical-align:middle}
html body.aid-shell.v8.v8-proj .card .table-scroll tr:nth-child(even) td{background:var(--v8-w2)}
html body.aid-shell.v8.v8-proj .card .badge{height:20px;display:inline-flex;align-items:center;padding:0 6px;border:0;border-radius:var(--v8-r-4);background:var(--v8-chip);color:var(--v8-t2);font:500 var(--v8-fs-11)/1 var(--v8-sans);letter-spacing:0}
html body.aid-shell.v8.v8-proj .card .badge.b-ok{background:transparent;box-shadow:inset 0 0 0 1px rgba(95,168,107,.4);color:rgba(95,168,107,.9)}
html body.aid-shell.v8.v8-proj .card :is(p.muted,.muted.small){font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .card :is(button,.btn):not(.v8-btn):not(.date-icon-button):not(.aid-select-trigger){min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .card :is(button,.btn).ghost{background:transparent;box-shadow:none;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .card :is(button,.btn).ghost:hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .ui-help>summary{min-height:var(--v8-h-row);display:flex;align-items:center;margin:32px 0 0;font:600 var(--v8-fs-18)/1.2 var(--v8-sans);color:var(--v8-t1);cursor:pointer}
/* опасная зона: секция внизу, красная линия, подтверждение именем проекта (поле и confirm — прежние) */
html body.aid-shell.v8.v8-proj :is(.card#v8-none,.card.v8-danger).v8-danger{margin-top:40px;padding:16px 18px;border-radius:var(--v8-r-12);box-shadow:inset 0 0 0 1px rgba(255,110,90,.22)}
html body.aid-shell.v8.v8-proj .card.v8-danger .sec{margin:0 0 10px}
html body.aid-shell.v8.v8-proj .card.v8-danger .sec h2{color:rgba(255,110,90,.9)}
html body.aid-shell.v8.v8-proj .card.v8-danger .sec::after{background:linear-gradient(90deg,rgba(255,110,90,.3),transparent)}
html body.aid-shell.v8.v8-proj .card.v8-danger p{font-size:var(--v8-fs-13);line-height:1.5;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .card.v8-danger p b{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .card.v8-danger button[type=submit]:not(#v8-none){position:relative;background:transparent;box-shadow:none;border:0;color:rgba(255,110,90,.9)}
html body.aid-shell.v8.v8-proj .card.v8-danger button[type=submit]:not(#v8-none):hover{background:rgba(255,110,90,.08);color:rgba(255,130,110,1)}
html body.aid-shell.v8.v8-proj .card.v8-danger button[type=submit]::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,110,90,.8),transparent)}
/* полоса сохранения: справа от панели, тонкая; «Сохранить всё» — оранжевая линия */
html body.aid-shell.v8.v8-proj .savebar{left:var(--v8-sidebar);padding:10px 36px;border-top:1px solid var(--v8-w6);background:rgba(16,19,22,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--v8-sans)}
html body.aid-shell.v8.v8-proj .savebar.dirty{border-top:1px solid rgba(255,80,0,.35)}
html body.aid-shell.v8.v8-proj .savebar button{position:relative;min-height:var(--v8-h-btn);height:var(--v8-h-btn);padding:0 14px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .savebar button::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.85}
html body.aid-shell.v8.v8-proj .savebar button:hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .savebar #savehint{font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .savebar.dirty #savehint{color:var(--v8-t2);font-weight:500}
@media(max-width:900px){html body.aid-shell.v8.v8-proj .savebar{left:0;padding:10px 16px max(10px,env(safe-area-inset-bottom))}html body.aid-shell.v8.v8-proj form[data-save-form] .grid2{grid-template-columns:minmax(0,1fr)}}

/* навигация проекта под названием (владелец 11.10): не липкая полоска наверху, а вкладки раздела как в «Людях»/«Деньгах» */
html body.aid-shell.v8 .project-context-dock.v8-in-page{position:static;top:auto;z-index:auto;display:flex;align-items:center;gap:var(--v8-g-10);margin:4px 0 20px;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;box-shadow:none}
html body.aid-shell.v8 .project-context-dock.v8-in-page .project-tabs.is-bare{flex:1;min-height:40px}
html body.aid-shell.v8 .project-context-dock.v8-in-page .project-tabs.is-bare .project-tabs-links a{min-height:40px;height:40px;padding:0 12px;font-size:var(--v8-fs-14)}
html body.aid-shell.v8 .project-context-dock.v8-in-page .project-tabs.is-bare .title-back{min-height:40px;font-size:var(--v8-fs-13);color:var(--v8-t3)}
html body.aid-shell.v8 .project-context-dock.v8-in-page .project-more>summary{font-size:var(--v8-fs-13)}
@media(max-width:640px){html body.aid-shell.v8 .project-context-dock.v8-in-page .project-tabs-links{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:24px;scrollbar-width:none}}

/* настройки проекта (владелец 11.10): «черт ногу сломит» — секции становятся панелями, поля темнее панели, таблица этапов без провала посередине */
html body.aid-shell.v8.v8-proj form[data-save-form] .grid2{align-items:stretch;gap:16px;margin-top:24px}
html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.card#access){padding:18px 22px 20px;margin:16px 0 0;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(24,27,31,.94),rgba(19,22,26,.97));box-shadow:var(--v8-sh-lift)}
html body.aid-shell.v8.v8-proj form[data-save-form] .grid2>.card{margin:0}
html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.card#access) .sec{margin:0 0 16px;padding:0 0 12px}
html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.card#access) .sec h2{font-size:var(--v8-fs-16)}
html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.card#access) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea,.date-trigger,.aid-select-trigger){background-color:rgba(0,0,0,.32);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll{margin:0 -10px}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll table{table-layout:fixed}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll th:nth-child(1){width:24%!important}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll th:nth-child(2){width:22%!important}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll th:nth-child(3){width:30%!important}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll th:nth-child(4){width:24%!important}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll tr:nth-child(even) td{background:rgba(255,255,255,.018)}
@media(max-width:900px){html body.aid-shell.v8.v8-proj :is(form[data-save-form] .card,.card#access){padding:14px 14px 16px}html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll table{table-layout:auto}html body.aid-shell.v8.v8-proj form[data-save-form] .card .table-scroll{margin:0}}
html body.aid-shell.v8.v8-proj form[data-save-form] .card label.row:has(input[name=script_on]){align-items:center;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj form[data-save-form] .card label.row:has(input[name=script_on]) input[name=d_script]{margin:0}
html body.aid-shell.v8.v8-proj details.ui-help{max-width:none;width:auto;margin:16px 0 0;padding:0 22px;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(24,27,31,.94),rgba(19,22,26,.97));box-shadow:var(--v8-sh-lift)}
html body.aid-shell.v8.v8-proj details.ui-help>summary{width:auto;max-width:none;margin:0;min-height:56px;font-size:var(--v8-fs-16);list-style:none}
html body.aid-shell.v8.v8-proj details.ui-help>summary::-webkit-details-marker{display:none}
html body.aid-shell.v8.v8-proj details.ui-help>summary::after{content:"";width:7px;height:7px;margin-left:auto;border-right:1.5px solid var(--v8-t3);border-bottom:1.5px solid var(--v8-t3);transform:rotate(45deg);transition:transform var(--v8-mid) var(--v8-ease)}
html body.aid-shell.v8.v8-proj details.ui-help[open]>summary::after{transform:rotate(-135deg)}
html body.aid-shell.v8.v8-proj details.ui-help[open]{padding-bottom:12px}
html body.aid-shell.v8.v8-proj details.ui-help .card .sec{margin:16px 0 12px}
html body.aid-shell.v8.v8-proj form[data-save-form] .card .row:has(input[name^=ep_title_]){align-items:center}
html body.aid-shell.v8.v8-proj details.ui-help .card .sec h2{font-size:var(--v8-fs-14);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj details.ui-help .card input[type=file]{height:var(--v8-h-inp);padding:0;border:0;background:transparent;color:var(--v8-t3);font:400 var(--v8-fs-13) var(--v8-sans)}
html body.aid-shell.v8.v8-proj details.ui-help .card input[type=file]::file-selector-button{height:var(--v8-h-btn);margin:0 10px 0 0;padding:0 10px;border:0;border-radius:var(--v8-r-6);background:var(--v8-w5);box-shadow:var(--v8-sh-btn);color:var(--v8-t1);font:500 var(--v8-fs-13) var(--v8-sans);cursor:pointer}
html body.aid-shell.v8.v8-proj details.ui-help .card input[type=file]::file-selector-button:hover{background:var(--v8-w8)}
/* шаги сдачи (владелец 11.10): отдельной ровной строкой на всю ширину, три равных крупных шага; мелкие кнопки-дубли шагов в шапке скрыты */
html body.aid-shell.v8 .project-context-dock.v8-in-page{flex-wrap:wrap}
html body.aid-shell.v8 .project-context-dock.v8-in-page .project-subnav.delivery-steps{flex:1 0 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:0;margin:14px 0 0;padding:0;border:0;background:none}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a{position:relative;display:flex;align-items:center;gap:12px;height:56px;min-height:56px;padding:0 18px;border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(24,27,31,.94),rgba(19,22,26,.97));box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-16)/1 var(--v8-sans);transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a:hover{color:var(--v8-t1);background:rgba(255,255,255,.04)}
/* r3 (владелец 11.10): «если нельзя переключаться — зачем выделять»: открытый шаг — не кнопка (без заливки, тени и наведения),
   только светлый текст и тонкая линия снизу; кнопками выглядят лишь шаги, куда можно перейти */
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a[aria-current=page]{color:var(--v8-t1);background:transparent;border-color:rgba(255,255,255,.05);box-shadow:none;cursor:default;pointer-events:none}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a[aria-current=page]::before{background:var(--v8-w10);color:var(--v8-t1)}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a[aria-current=page]{background-image:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);background-size:60% 1px;background-position:50% 100%;background-repeat:no-repeat}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a::after{margin-left:auto;font-size:var(--v8-fs-14);opacity:.45}
html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a:last-child::after{display:none}
body.v8:has(.delivery-steps) .v8-page>.v8-head :is(a[href$="/delivery"],a[href$="/check"],a[href$="/materials"]):not([aria-current]){display:none}
@media(max-width:640px){html body.aid-shell.v8 .project-context-dock.v8-in-page .project-subnav.delivery-steps{gap:6px}html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a{height:48px;min-height:48px;padding:0 10px;gap:6px;font-size:var(--v8-fs-13)}html body.aid-shell.v8 .project-context-dock.v8-in-page .delivery-steps>a::after{display:none}}
/* плеер (владелец 11.10): вертикальное видео целиком на экране — таймлиния и кнопки у нижнего края видео не уходят за сгиб */
@media(min-width:901px){html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage>.vwrap{width:clamp(270px,calc((100dvh - 278px) * 9 / 16),480px);max-width:100%;height:auto} html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{width:fit-content;max-width:100%;padding-bottom:0} html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{width:fit-content}}
/* пустой плеер: вертикальный кадр 9:16 того же размера, что видео, а не широкая плашка */
@media(min-width:901px){html body.aid-shell.v8.v8-proj .epwrap.v8-novid.desk-ready:not(.desk-side){grid-template-columns:auto minmax(0,1fr)} html body.aid-shell.v8.v8-proj .epwrap.v8-novid.desk-ready:not(.desk-side)>.epplayer{width:fit-content} html body.aid-shell.v8.v8-proj .desk-ready .epnovid{flex:none;width:clamp(270px,calc((100dvh - 278px) * 9 / 16),480px);height:auto;aspect-ratio:9/16;margin:16px auto;align-content:center;gap:16px;border:1px dashed var(--v8-w8);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.01));color:var(--v8-t3);font:400 var(--v8-fs-13) var(--v8-sans)}}
/* статус качества под меню плеера: аккуратная плашка по центру, не наезжает на кнопки меню */
html body.aid-shell.v8.v8-proj .desk-review-tools .quality-row{position:static}
html body.aid-shell.v8.v8-proj .desk-review-tools .quality-status:not(:empty){top:calc(100% + 6px);bottom:auto;height:auto;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 16px);padding:4px 10px;border:1px solid var(--v8-w8);border-radius:var(--v8-r-pill);background:var(--v8-pop);box-shadow:var(--v8-sh-pop);color:var(--v8-t2);font:400 var(--v8-fs-12)/1.4 var(--v8-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* стол серии по макету (владелец 11.10): видео на фоне страницы без общей рамы, рамка только у обсуждения;
   над видео — одна тонкая строка публикации, под видео — ничего (полоса загрузки только во время загрузки); кадр по высоте экрана */
@media(min-width:901px){
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded){background:transparent!important;box-shadow:none!important;border:0!important}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded)::after{display:none}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero{align-items:center;flex-wrap:nowrap;min-height:var(--v8-h-ph);margin:0 0 12px;padding:0 2px}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero::before,html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero::after{display:none}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-main{display:flex;align-items:baseline;gap:var(--v8-g-14);min-width:0}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-big{flex-wrap:nowrap;gap:var(--v8-g-10)}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-v{font-size:var(--v8-fs-22)}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-lbl{font-size:var(--v8-fs-14)}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-sub{margin:0;flex-wrap:nowrap;min-width:0;overflow:hidden;white-space:nowrap}
 html body.aid-shell.v8.v8-proj .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){padding:0 12px 0 0}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){border:1px solid rgba(255,255,255,.05);border-radius:var(--v8-r-12);background:linear-gradient(180deg,rgba(24,27,31,.94),rgba(19,22,26,.97));box-shadow:var(--v8-sh-lift);overflow:hidden}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion)::before{display:none}
 html body.aid-shell.v8.v8-proj .desk-ready .desk-footer:not(.v8-uploading){display:none}
 html body.aid-shell.v8.v8-proj .desk-ready .epnovid{position:relative;overflow:hidden;margin:0}
 html body.aid-shell.v8.v8-proj .desk-ready .epnovid::before{content:attr(data-num);position:absolute;left:20px;bottom:24px;font:600 var(--v8-fs-96)/1 var(--v8-cond);letter-spacing:-.02em;color:rgba(255,255,255,.06);pointer-events:none}
}
/* стол серии, правки владельца 11.10 (вечер): строка публикации собрана слева, меню плеера в одну строку и не заходит на версии,
   версии выезжают с анимацией, рамка обсуждения проявляется плавно, поле сообщения без светлой обводки, «+ версия» пустой серии — в кадре */
@media(min-width:901px){
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero{justify-content:flex-start;gap:var(--v8-g-14)}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero .v8-pub-main{flex:0 1 auto}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready .publication-bar.v8-hero :is(.handoff-controls,.v8-pub-act){order:1;margin:0}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools.v8-ptb.v8-ptb{flex-wrap:nowrap;width:max-content;max-width:calc(100% - 16px);gap:var(--v8-g-1);padding:4px 6px;background:rgba(16,19,22,.78);border:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1)}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools.v8-ptb.v8-ptb>*{flex:none}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp{top:64px}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb.v8-ptb .quality-status:not(:empty){left:6px;transform:none;max-width:calc(100% - 104px)}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp :is(.vversion,.episode-add,.episode-version-manage,.upbtn){transform:translateX(10px);opacity:0;transition:transform 220ms var(--v8-ease),opacity 180ms var(--v8-ease)}
 html body.aid-shell.v8.v8-proj .vstage:is(.v8-zone-side,:not(.v8-zones):focus-within,:not(.v8-zones):hover)>.episode-deck.v8-vp :is(.vversion,.episode-add,.episode-version-manage,.upbtn),html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp:is(:hover,:focus-within,.deleting) :is(.vversion,.episode-add,.episode-version-manage,.upbtn){transform:none;opacity:1}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-row>:nth-child(2){transition-delay:25ms}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-row>:nth-child(3){transition-delay:50ms}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-row>:nth-child(4){transition-delay:75ms}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-row>:nth-child(5){transition-delay:100ms}
 html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-row>:nth-child(n+6){transition-delay:125ms}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){border-color:transparent;overflow:visible}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion)::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(255,255,255,.09);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 160px),linear-gradient(180deg,#000 70%,rgba(0,0,0,.35));-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 160px),linear-gradient(180deg,#000 70%,rgba(0,0,0,.35));mask-composite:intersect}
 html body.aid-shell.v8.v8-proj .cbox.chat .cbfield:focus-within{outline:0}
 html body.aid-shell.v8.v8-proj .desk-ready .epplayer>.upbtn,html body.aid-shell.v8.v8-proj .desk-ready .epplayer .episode-add:not(.v8-vp *){position:absolute;top:12px;right:24px;z-index:3}
 html body.aid-shell.v8.v8-proj .v8-novid.desk-ready .epplayer{position:relative}
 html body.aid-shell.v8.v8-proj .epwrap.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epcol{min-height:max(480px,calc(100dvh - 278px))}
 html body.aid-shell.v8.v8-proj .v8-novid.desk-ready .epplayer .episode-deck.v8-vp{-webkit-backdrop-filter:none;backdrop-filter:none}
 html body.aid-shell.v8.v8-proj .v8-novid.desk-ready .epplayer .episode-deck.v8-vp .vversions.episode-version-row{position:absolute;top:12px;bottom:auto;left:auto;right:24px;width:auto;z-index:3;margin:0;padding:0}
}
@media(prefers-reduced-motion:reduce){html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp :is(.vversion,.episode-add,.episode-version-manage,.upbtn){transition:none;transform:none}}
/* стол серии (владелец 11.10, ночь): публикация в ряду фильтров обсуждения; окно обсуждения растворяется в фоне без жёсткой рамки;
   подпись «Черновик сохранён…» не показывается (пояснительный текст и скачок окна), но остаётся для экранного диктора */
@media(min-width:901px){
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .epcol>.v8-colhead{position:relative;display:flex;align-items:center;gap:var(--v8-g-14);min-height:var(--v8-h-row2);padding:6px 16px}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .epcol>.v8-colhead::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:linear-gradient(90deg,var(--v8-w8),var(--v8-w4) 60%,transparent)}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero{grid-column:auto;flex:0 1 auto;min-width:0;min-height:0;margin:0;padding:0;border:0;background:none;flex-wrap:nowrap;align-items:center;gap:var(--v8-g-10)}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero::before,html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero::after{display:none}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero .v8-pub-v{font-size:var(--v8-fs-18)}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero .v8-pub-lbl{font-size:var(--v8-fs-13);white-space:nowrap}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero .v8-pub-sub{display:flex;flex-wrap:nowrap;gap:0 var(--v8-g-10);margin:0;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--v8-fs-12);color:var(--v8-t3)}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero .v8-pub-main{display:flex;align-items:baseline;gap:var(--v8-g-10);min-width:0;overflow:hidden}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>h4.discussion-head{flex:1 1 auto;min-width:0;min-height:0;margin:0;padding:0;justify-content:flex-end}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>h4.discussion-head::after{display:none}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>h4.discussion-head .h4r{flex:0 1 auto;justify-content:flex-end;margin-left:auto}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){border:0;box-shadow:none;background:radial-gradient(130% 95% at 35% 0%,rgba(200,214,238,0.0340) 0%,rgba(200,214,238,0.0300) 20%,rgba(200,214,238,0.0210) 40%,rgba(200,214,238,0.0110) 60%,rgba(200,214,238,0.0040) 80%,rgba(200,214,238,0.0000) 100%)}
 html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).on.desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion)::after{border-color:rgba(255,255,255,.08);-webkit-mask-image:radial-gradient(120% 100% at 40% 0%,#000 25%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.2) 72%,transparent 92%);mask-image:radial-gradient(120% 100% at 40% 0%,#000 25%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.2) 72%,transparent 92%);-webkit-mask-composite:source-over;mask-composite:add}
}
html body.aid-shell.v8.v8-proj .cbox.chat .comment-draft-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* стол серии: одна общая высота — кадр (с видео и пустой) и обсуждение растягиваются на неё, низ совпадает при любом окне;
   у обсуждения левый край проявляется плавно (подложка и рамка), без резкой границы (владелец 11.10) */
@media(min-width:901px){
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded){--v8-desk-h:max(480px,calc(100dvh - 278px));grid-template-rows:var(--v8-desk-h);align-items:stretch}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epplayer{height:var(--v8-desk-h);min-height:0;display:flex;flex-direction:column}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epplayer>.vstage{height:100%;flex:1 1 auto;min-height:0}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epplayer>.vstage>.vwrap.vwrap{height:100%;width:auto;max-width:none;aspect-ratio:9/16}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epplayer>.epnovid.epnovid{height:100%;width:auto;max-width:none;aspect-ratio:9/16;flex:none}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epcol{height:var(--v8-desk-h);min-height:0;isolation:isolate;background:transparent;background-color:transparent}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epcol::before{display:block;content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.018) 45%,rgba(255,255,255,.008));-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 50px,rgba(0,0,0,.8) 100px,#000 140px);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 50px,rgba(0,0,0,.8) 100px,#000 140px)}
 html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded)>.epcol::after{-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.4) 60px,#000 160px);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.4) 60px,#000 160px)}
}
/* скорость чата (владелец 11.10: «чат около видео очень медленно»): пузыри за краем ленты браузер не пересчитывает и не рисует —
   размер каждого запоминается после первого показа. Открытое меню, фокус, правка и подсветка по ссылке — всегда целиком (меню выходит за пузырь).
   flex-shrink:0 обязателен: иначе колонка-лента сжимает непоказанные пузыри до нуля и переходы к сообщению промахиваются. */
html body.aid-shell.v8.v8-proj .cmts.chat>.cm{content-visibility:auto;contain-intrinsic-size:auto 72px;overflow-clip-margin:8px;flex-shrink:0}
html body.aid-shell.v8.v8-proj .cmts.chat>.cm:is(.menu-open,:focus-within,.is-focus,.aid-comment-editing,:hover){content-visibility:visible}
/* вложение заметки → «Поверх серии» (владелец 11.10: «прикрепить видеофайл в комментарии и поставить в плеер в нужное место с обрезкой»):
   панель точной правки (с какой секунды · обрезка клипа · звук клипа · убрать) — лёгким стеклом поверх кадра над дорожкой вставки;
   раньше она вставала под кадром, раздвигала стол на 750 px и уходила за низ экрана */
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar{position:absolute;left:8px;right:8px;bottom:140px;z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-6) 10px;margin:0;padding:8px 10px;border:1px solid rgba(255,255,255,.06);border-radius:var(--v8-r-10);background:rgba(15,17,20,.62);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);box-shadow:none;color:var(--v8-t2);font:400 var(--v8-fs-12)/1.3 var(--v8-sans)}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar b{flex:1 0 100%;max-width:none;font-weight:500;color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar label{gap:var(--v8-g-4);color:var(--v8-t3);white-space:nowrap}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar :is(input[type=text],input[type=number]){width:56px;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 6px;border:0;border-radius:var(--v8-r-6);background:rgba(0,0,0,.28);box-shadow:var(--v8-deboss);color:var(--v8-t1);font:400 var(--v8-fs-12) var(--v8-mono)}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar button{position:relative;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t2);font:500 var(--v8-fs-12) var(--v8-sans)}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar button:hover{background:rgba(255,255,255,.08);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .desk-side .vstage>.note-overlay-bar .note-overlay-status:empty{display:none}
/* карточка файла у заметки — тихая плитка ленты: имя, длительность · автор, действия тонкими кнопками; «Поверх серии» — оранжевая линия */
html body.aid-shell.v8.v8-proj .cmts.chat .note-file:not(.is-voice){grid-template-columns:48px minmax(0,1fr);gap:var(--v8-g-10);padding:6px;border:1px solid var(--v8-w6);border-radius:var(--v8-r-10);background:rgba(255,255,255,.025);box-shadow:none}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file:not(.is-voice) .note-thumb:not(img){width:48px;height:48px;border-radius:var(--v8-r-6)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file:not(.is-voice):not(.is-image) img.note-thumb{width:48px;height:48px;border-radius:var(--v8-r-6)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-name{font:500 var(--v8-fs-13)/1.3 var(--v8-sans);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-file-body>small{font:400 var(--v8-fs-12)/1.4 var(--v8-mono);color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions{gap:var(--v8-g-2);margin-top:4px}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions :is(button,a){position:relative;display:inline-flex;align-items:center;min-height:var(--v8-h-sm);height:var(--v8-h-sm);padding:0 8px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t3);font:500 var(--v8-fs-12) var(--v8-sans);text-decoration:none;transition:background var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions :is(button,a):hover{background:var(--v8-w4);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions [data-note-overlay]{color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions [data-note-overlay]::after{content:"";position:absolute;left:22%;right:22%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8}
html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions button[aria-pressed=true]{background:var(--v8-w4);color:var(--v8-t1)}
@media(prefers-reduced-motion:reduce){html body.aid-shell.v8.v8-proj .cmts.chat .note-file .note-actions :is(button,a){transition:none}}
/* ===================== раунд 2 (владелец 11.10): ряд публикации, фильтры, стекло плеера, версия у клиента ===================== */
/* п. 9: одно состояние — кнопка. Подпись «Не показано клиенту» не выводится; показанная версия — «Показано клиенту · Vn» отметкой */
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-lbl[hidden]{display:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-v.is-pub::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 0 6px;vertical-align:middle;border-radius:50%;background:var(--v8-g);opacity:.9}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn.v8-shown{pointer-events:none;cursor:default;color:var(--v8-t2);background:transparent}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn.v8-shown svg{display:block;color:rgba(95,168,107,.9)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .pubbtn.v8-shown::after{opacity:0}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-client{display:inline-flex;align-items:center;gap:var(--v8-g-5);white-space:nowrap;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-client::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--v8-g);opacity:.85;flex:none}
html body.aid-shell.v8.v8-proj .publication-bar.v8-hero .v8-pub-client[hidden]{display:none}
/* ряд не обрезает текст: ни многоточий, ни масок; при нехватке места фильтры уходят второй строкой справа */
@media(min-width:901px){
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .epcol>.v8-colhead{flex-wrap:wrap;row-gap:var(--v8-g-4)}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero{flex:0 0 auto}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>.publication-bar.v8-hero :is(.v8-pub-main,.v8-pub-sub){overflow:visible;text-overflow:clip}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>h4.discussion-head{flex:1 0 auto}
 html body.aid-shell.v8.v8-proj .epwrap.v8-pub-in-col .v8-colhead>h4.discussion-head .h4r{overflow:visible;flex:0 0 auto}
}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary{max-width:none;color:var(--v8-t3)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary.is-set{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .discussion-head .v8-cfilter>summary .v8-cfl{overflow:visible;text-overflow:clip}
/* п. 7: меню плеера и столбик версий — лёгкое тонированное стекло, не серые плашки */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools.v8-ptb.v8-ptb{background:rgba(15,17,20,.6);border:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vtools.v8-ptb .quality-status:not(:empty),html body.aid-shell.v8.v8-proj .desk-review-tools .quality-status:not(:empty){border:1px solid rgba(255,255,255,.06);background:rgba(15,17,20,.6);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);box-shadow:none;color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp :is(.vchip,.episode-add){border:1px solid rgba(255,255,255,.06);background:rgba(15,17,20,.6);-webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1);color:var(--v8-t2)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp :is(.vchip,.episode-add):hover{background:rgba(24,27,31,.7);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .vchip.on{border-color:rgba(255,255,255,.16);background:rgba(28,32,37,.72);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .vvdel{border:1px solid rgba(255,255,255,.06);background:rgba(15,17,20,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
/* версия у клиента: зелёная точка и зелёная линия под версией; версии, которые у клиента тоже остались, — пустое кольцо */
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.pub{color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.pub::after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(95,168,107,.95),transparent)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip .version-published-dot{width:6px;height:6px;margin-left:2px;border-radius:50%;background:var(--v8-g);opacity:.95}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.seen:not(.pub)::before{content:"";order:2;width:5px;height:5px;margin-left:2px;border-radius:50%;border:1px solid rgba(95,168,107,.8);box-sizing:border-box}
/* «Меню проекта» (владелец 11.10: «тяжело попадать — жму, но мимо»): док разделов с view-transition-name — свой слой наложения,
   и стол серии ниже по странице перекрывал раскрытое меню для мыши (под меню «просвечивал» ряд фильтров). Док поднят над страницей;
   пункты — во всю ширину, 36 px, без зазоров; меню — плотное стекло вплотную к кнопке; «Меню проекта» и «Клиентский вид» — 36 px */
html body.aid-shell.v8 .project-context-dock,html body.aid-shell.v8 .project-context-dock.v8-in-page{position:relative;z-index:40}
html body.aid-shell.v8 .project-context-dock .project-more>summary,html body.aid-shell.v8 .project-context-dock .client-switch{min-height:var(--v8-h-row)}
html body.aid-shell.v8 .project-context-dock .project-more>div{top:100%;margin-top:2px;padding:4px;display:grid;gap:0;background:rgba(15,17,20,.92);border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1)}
html body.aid-shell.v8 .project-context-dock .project-more>div>a{width:100%;min-height:var(--v8-h-row);margin:0;box-sizing:border-box}
html body.aid-shell.v8 .project-context-dock .project-more>div>a:hover{background:var(--v8-w5);color:var(--v8-t1)}
/* п. 10 (владелец 11.10: «очень мелко — EP 01 / V11 больше, значок комментов под ним, квадратиком»): вкладка серии — плитка
   в две строки: сверху «EP 01 · V11» крупнее, снизу значки — у клиента (зелёная точка), новые, комментарии сделано/всего, версии */
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab{display:grid;grid-template-columns:auto 1fr;justify-content:start;align-content:center;column-gap:var(--v8-g-6);row-gap:var(--v8-g-6);height:var(--v8a-h-64);min-height:var(--v8a-h-64);min-width:96px;padding:0 14px;border-radius:var(--v8-r-8);transition:color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab b{grid-row:1;grid-column:1;font:600 var(--v8-fs-18)/1 var(--v8-cond);letter-spacing:.02em}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .episode-current{grid-row:1;grid-column:2;font:600 var(--v8-fs-18)/1 var(--v8-cond);letter-spacing:.03em}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta{grid-row:2;grid-column:1/-1;display:flex;align-items:center;gap:var(--v8-g-8);min-height:var(--v8a-h-18);line-height:1}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta>*{order:0}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .v8-pubdot{width:6px;height:6px}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta .tab-unread{order:1}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta .tabcnt{order:2;font-size:var(--v8-fs-12)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta .tabcnt svg{width:13px;height:13px}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab .ept-meta .v8-vr{order:3}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:hover{background:var(--v8-w3)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab:is(.on,[aria-pressed=true]){background:var(--v8-w3)}
html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab::after{left:14px;right:30%}
html body.aid-shell.v8.v8-proj :is(#ephead,.ephead){gap:var(--v8-g-4);padding-bottom:4px}
@media(prefers-reduced-motion:reduce){html body.aid-shell.v8.v8-proj #ephead .eptab.episode-tab{transition:none}}
/* плитки вкладок выше прежней строки на 28 px — стол на столько же ниже, чтобы низ кадра и обсуждения оставался в экране */
@media(min-width:901px){html body.aid-shell.v8.v8-proj #workspace-content .epwrap.desk-ready.v8-pub-in-col:not(:fullscreen,:-webkit-full-screen,.is-expanded){--v8-desk-h:max(480px,calc(100dvh - 306px))}}
/* плеер, зоны (владелец 11.10: «верхнее меню — зона: когда мышку увожу — оно пропадает»; «меню версий такое себе — серые плашки»):
   верхнее меню видно, пока мышь в верхней полосе кадра (или фокус/рисование/меню скорости/вставка клипа), столбик версий — пока мышь
   у правого края; ушла — тихо гаснут. Зоны считает _v8_project_js (класс v8-zones только у мыши; на сенсорных всё как было) */
/* раунд 2б (владелец): две вертикальные зоны во всю высоту кадра — правая полоса столбика версий показывает только версии,
   остальной кадр — верхнее меню и нижнюю панель; мышь вне кадра — всё гаснет (кроме фокуса, рисования, черновика, меню скорости, вставки клипа) */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(.v8-zone-main) :is(.vwrap,.video-shell):not(:focus-within,.is-drawing,.has-draft,.speed-open,.has-insert) :is(.vbar,.review-controls){opacity:0;visibility:hidden;transition:opacity 160ms var(--v8-ease),visibility 0s linear 160ms}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones.v8-zone-main :is(.vwrap,.video-shell) :is(.vbar,.review-controls){opacity:1;visibility:visible;transition:opacity 160ms var(--v8-ease)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones :is(.vbar,.review-controls) .vtools.v8-ptb.v8-ptb{transition:opacity 160ms var(--v8-ease),transform 180ms var(--v8-ease)}
/* столбик версий по макету: тонкие стеклянные строки, текущая — светлее и с рамкой, у клиента — зелёная точка и линия, «+ версия» — тихим текстом */
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp{width:68px;gap:var(--v8-g-3)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .vchip{height:var(--v8-h-sm);min-height:var(--v8-h-sm);border:1px solid rgba(255,255,255,.07);border-radius:var(--v8-r-6);background:rgba(15,17,20,.45);-webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1);color:var(--v8-t2);font:500 var(--v8-fs-11)/1 var(--v8-mono)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .vchip:hover{background:rgba(15,17,20,.62);border-color:rgba(255,255,255,.14);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .vchip.on{background:rgba(24,27,31,.72);border-color:rgba(255,255,255,.26);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-add{height:var(--v8-h-sm);min-height:var(--v8-h-sm);border:0;border-radius:var(--v8-r-6);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:rgba(255,255,255,.62);font:500 var(--v8-fs-11)/1 var(--v8-sans);text-shadow:0 1px 2px rgba(0,0,0,.6)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-add:hover{background:rgba(15,17,20,.5);color:var(--v8-t1)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp .episode-version-manage{text-shadow:0 1px 2px rgba(0,0,0,.6)}
/* отметки версий (владелец): у клиента — тонкая красная линия снизу (красная = клиент), без точки; играющая (выбранная) —
   зелёный кружок у номера и подсветка строки; одна и та же версия — оба знака */
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip .version-published-dot{display:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.pub::after{content:"";position:absolute;left:12%;right:12%;bottom:1px;height:1px;background:var(--v8-red);opacity:1}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.seen:not(.pub):not(.on)::before{content:none;display:none}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp .vchip.on::before{content:"";order:-1;width:6px;height:6px;margin-right:2px;border-radius:50%;background:var(--v8-g);opacity:.95;flex:none}
/* версия клиента внутри кнопки «Показать клиенту» (владелец 11.10) */
html body.aid-shell.v8.v8-proj .publication-bar .pubbtn .v8-pub-now{margin-left:var(--v8-g-8);padding-left:var(--v8-g-8);border-left:1px solid var(--v8-w8);font:400 var(--v8-fs-12)/1 var(--v8-sans);color:var(--v8-t3);white-space:nowrap}
html body.aid-shell.v8.v8-proj .publication-bar .pubbtn{display:inline-flex;align-items:center}
/* владелец 11.10: «меню без резких скачков».
   Верх: стекло (.vtools) лежит в .vbar, а гасла вся .vbar — пока у предка прозрачность < 1, браузер не размывает фон под
   стеклом, и блюр включался рывком в конце. Теперь .vbar всегда непрозрачна (прячется только visibility после гашения),
   гаснут и проявляются её дети — стекло размыто с первого кадра.
   Бок: версии гасли целиком за ~0,13 с — теперь уходят так же, как выезжают: отъезжают вправо и плавно гаснут. */
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(#v8) :is(.vwrap,.video-shell) :is(.vbar,.review-controls){opacity:1;visibility:visible;transition:visibility 0s}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(#v8) :is(.vwrap,.video-shell) :is(.vbar,.review-controls)>*{transition:opacity 220ms var(--v8-ease),transform 180ms var(--v8-ease)}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(#v8):not(.v8-zone-main) :is(.vwrap,.video-shell):not(:focus-within,.is-drawing,.has-draft,.speed-open,.has-insert) :is(.vbar,.review-controls){visibility:hidden;transition:visibility 0s linear 240ms}
html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(#v8):not(.v8-zone-main) :is(.vwrap,.video-shell):not(:focus-within,.is-drawing,.has-draft,.speed-open,.has-insert) :is(.vbar,.review-controls)>*{opacity:0;transition:opacity 260ms cubic-bezier(.4,0,.2,1),transform 180ms var(--v8-ease)}
html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp{transition:opacity 320ms cubic-bezier(.4,0,.2,1) 80ms}
html body.aid-shell.v8.v8-proj .vstage:is(.v8-zone-side,:not(.v8-zones):focus-within,:not(.v8-zones):hover)>.episode-deck.v8-vp,html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp:is(:hover,:focus-within,.deleting){transition:opacity var(--v8-mid) var(--v8-ease)}
html body.aid-shell.v8.v8-proj .episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage){transition:transform 280ms var(--v8-ease),color var(--v8-fast) var(--v8-ease),background var(--v8-fast) var(--v8-ease);transition-delay:0s}
html body.aid-shell.v8.v8-proj .vstage:is(.v8-zone-side,:not(.v8-zones):focus-within,:not(.v8-zones):hover)>.episode-deck.v8-vp :is(.vchip,.episode-add,.episode-version-manage),html body.aid-shell.v8.v8-proj .episode-deck.v8-vp:is(:hover,:focus-within,.deleting) :is(.vchip,.episode-add,.episode-version-manage){transition-delay:calc(var(--k,0)*35ms)}
@media(prefers-reduced-motion:reduce){html body.aid-shell.v8.v8-proj :is(.epwrap,.review-shell).desk-side .vstage.v8-zones:not(#v8) :is(.vwrap,.video-shell) :is(.vbar,.review-controls)>*,html body.aid-shell.v8.v8-proj .vstage>.episode-deck.v8-vp{transition-duration:1ms}}
/* сданный сериал: блок версии скрыт целиком — без пустого отступа слева в строке публикации (владелец 11.10) */
html body.aid-shell.v8.v8-proj .v8-pub-big[hidden]{display:none}
/* r3 (11.10.2026), владелец: «что это за ужасное выделение? Разные меню — все должны быть стильные, утончённые и
   элегантные, похожи на боковое меню, и на всём сайте одинаковые — это я про выпадающие окна».
   Один вид для всех выпадающих меню облика v8 (списки-кнопки и поля-списки _select_menu, качество и скорость плеера,
   «Кому», «⋯» и ПКМ файлов, меню проекта и публикации, фильтр обсуждения, переключатель проекта, «Добавить операцию»,
   «Выдать VPN», «Скачать по одному», меню сообщения, аккаунт, параметры вида планировщика):
   • панель — поповер-фон, линия 8 %, мягкая тень с верхним бликом, радиус 10, поле 5;
   • пункт — как строка бокового меню: Inter 14/400, 34 px, поле 0 10, радиус 7, значок 15 тонкий цвета мета;
   • hover — 3 % белого и светлый текст; выбранный — подложка активной строки бокового меню + тонкая галочка;
   • фокус с клавиатуры — тонкое кольцо 1 px вместо толстой рамки (фокус виден, но не кричит);
   • разделители 5 %, надзаголовки групп капителью 12, опасные пункты — --v8-late;
   • появление и уход 140 мс: прозрачность + сдвиг 3 px.
   Поведение меню (клавиатура, Esc, клик снаружи, разворот у края, права) — прежнее, здесь только вид.
   Правила подняты :not(#v8m): старые темы (_depth_theme, _quality_menu, _ep_css, _project_context…) весомее и стоят раньше;
   состояния (выбранный, фокус) и частные поправки — :not(#v8m):not(#v8n): вес :is() равен самому весомому пункту списка;
   фокус — ещё на ступень выше: старые правила фокуса в v8 (.v8-wc, окна) доходят до двух id. */
/* ---- панель ---- */
html body.v8 .aid-menu:not(#v8m),
html body.v8 .quality-menu:not(#v8m),
html body.v8 .teammenu:not(#v8m),
html body.v8 .v8-cmenu:not(#v8m),
html body.v8 .v8-pop:not(#v8m),
html body.v8 .vpn-menu:not(#v8m),
html body.v8 .v8-fdl>div:not(#v8m),
html body.v8 .cast-pop>.cast-menu:not(#v8m),
html body.v8 .finance-actions-menu>div:not(#v8m),
html body.v8 .project-more>div:not(#v8m),
html body.v8 .global-menu:not(#v8m),
html body.v8 .cmts.chat .cm .meta:not(#v8m){background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-10);box-shadow:var(--v8-sh-menu);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--v8-t2);font-family:var(--v8-sans);color-scheme:dark}
html body.v8 .aid-menu:not(#v8m),
html body.v8 .quality-menu:not(#v8m),
html body.v8 .teammenu:not(#v8m),
html body.v8 .v8-cmenu:not(#v8m),
html body.v8 .v8-ddw:not(.v8-purge)>.v8-pop:not(.search):not(#v8m),
html body.v8 .vpn-menu:not(#v8m),
html body.v8 .v8-fdl>div:not(#v8m),
html body.v8 .cast-pop>.cast-menu:not(#v8m),
html body.v8 .finance-actions-menu>div:not(#v8m),
html body.v8 .project-more>div:not(#v8m),
html body.v8 .cmts.chat .cm .meta:not(#v8m){padding:5px}
/* ---- пункт: строка бокового меню ---- */
html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m){position:relative;display:flex;align-items:center;justify-content:flex-start;gap:var(--v8-g-10);width:100%;min-height:var(--v8-h-mi);height:auto;margin:0;padding:6px 10px;border:0;border-radius:var(--v8-r-7);background:none;box-shadow:none;outline:0;color:var(--v8-t2);font:400 var(--v8-fs-14)/1.3 var(--v8-sans);letter-spacing:normal;text-transform:none;text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m) svg{width:15px;height:15px;flex:none;color:var(--v8-t3);stroke-width:1.5;opacity:1;transition:color var(--v8-fast) var(--v8-ease)}
html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m):hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m):hover svg{color:var(--v8-t2)}
/* фокус с клавиатуры: тонкое кольцо 1 px и подложка hover; у выбранного кольцо поверх его подложки */
html body.v8 .aid-menu:not(.v8-kbd) button:focus-visible:not(#v8m):not(#v8n):not(#v8o){outline:0}
html body.v8 :is(.aid-menu.v8-kbd button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m):not(#v8n):not(#v8o):focus-visible,
html body.v8 .aid-menu button.is-active:not(#v8m):not(#v8n):not(#v8o){outline:0;background:var(--v8-w3);box-shadow:inset 0 0 0 1px var(--v8-w10);color:var(--v8-t1)}
html body.v8 :is(.aid-menu.v8-kbd button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m):not(#v8n):not(#v8o):focus-visible svg{color:var(--v8-t2)}
/* выбранный пункт — подложка активной строки бокового меню, яркий текст */
html body.v8 :is(.aid-menu button[aria-selected=true],.quality-menu button[aria-selected=true],.teammenu .teamopt.on,.v8-pop .it[aria-pressed=true],.v8-ddw>.v8-pop>a[aria-current],.project-more>div>a[aria-current]):not(#v8m):not(#v8n),
html body.v8 :is(.aid-menu button[aria-selected=true],.quality-menu button[aria-selected=true],.teammenu .teamopt.on,.v8-pop .it[aria-pressed=true],.v8-ddw>.v8-pop>a[aria-current],.project-more>div>a[aria-current]):not(#v8m):not(#v8n):hover{background:var(--v8-sel-bg);box-shadow:var(--v8-sel-sh);color:var(--v8-t1)}
html body.v8 :is(.aid-menu.v8-kbd button[aria-selected=true],.quality-menu button[aria-selected=true],.teammenu .teamopt.on,.v8-pop .it[aria-pressed=true],.v8-ddw>.v8-pop>a[aria-current],.project-more>div>a[aria-current]):not(#v8m):not(#v8n):not(#v8o):not(#v8p):focus-visible{background:var(--v8-sel-bg);box-shadow:var(--v8-sel-sh),inset 0 0 0 1px var(--v8-w10);color:var(--v8-t1)}
html body.v8 :is(.aid-menu button[aria-selected=true],.quality-menu button[aria-selected=true],.teammenu .teamopt.on,.v8-pop .it[aria-pressed=true],.v8-ddw>.v8-pop>a[aria-current],.project-more>div>a[aria-current]):not(#v8m):not(#v8n) svg{color:var(--v8-t1)}
html body.v8 :is(.aid-menu button[aria-selected=true],.quality-menu button[aria-selected=true],.v8-pop .it[aria-pressed=true],.v8-ddw>.v8-pop>a[aria-current],.project-more>div>a[aria-current]):not(#v8m):not(#v8n)::after{content:"";display:block;position:static;flex:none;width:4px;height:8px;margin:0 2px 2px auto;padding:0;border:solid var(--v8-t2);border-width:0 1.5px 1.5px 0;border-radius:0;background:none;transform:rotate(45deg);opacity:.9}
/* опасные пункты */
html body.v8 :is(.aid-menu button.danger,.quality-menu button.danger,.teammenu .teamopt.danger,.v8-cmenu :is(a,button).danger,.v8-pop .it.danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn).danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn).danger,.v8-fmenu>.v8-pop>details>summary.danger,.vpn-menu button.danger,.finance-actions-menu>div>button.danger,.project-more>div>a.danger,.project-more>div>.client-switch.danger,.v8-fdl>div a.danger,.cast-pop>.cast-menu :is(button,label).danger,.cmts.chat .cm .meta :is(a,button,.work-completion).danger,.v8-fmenu>.v8-pop .file-trash,.cmts.chat .cm .meta .dellink,.v8-cmenu .danger):not(#v8m),
html body.v8 :is(.aid-menu button.danger,.quality-menu button.danger,.teammenu .teamopt.danger,.v8-cmenu :is(a,button).danger,.v8-pop .it.danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn).danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn).danger,.v8-fmenu>.v8-pop>details>summary.danger,.vpn-menu button.danger,.finance-actions-menu>div>button.danger,.project-more>div>a.danger,.project-more>div>.client-switch.danger,.v8-fdl>div a.danger,.cast-pop>.cast-menu :is(button,label).danger,.cmts.chat .cm .meta :is(a,button,.work-completion).danger,.v8-fmenu>.v8-pop .file-trash,.cmts.chat .cm .meta .dellink,.v8-cmenu .danger):not(#v8m):hover{color:var(--v8-late)}
html body.v8 :is(.aid-menu button.danger,.quality-menu button.danger,.teammenu .teamopt.danger,.v8-cmenu :is(a,button).danger,.v8-pop .it.danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn).danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn).danger,.v8-fmenu>.v8-pop>details>summary.danger,.vpn-menu button.danger,.finance-actions-menu>div>button.danger,.project-more>div>a.danger,.project-more>div>.client-switch.danger,.v8-fdl>div a.danger,.cast-pop>.cast-menu :is(button,label).danger,.cmts.chat .cm .meta :is(a,button,.work-completion).danger,.v8-fmenu>.v8-pop .file-trash,.cmts.chat .cm .meta .dellink,.v8-cmenu .danger):not(#v8m) svg{color:var(--v8-late)}
html body.v8 :is(.aid-menu button.danger,.quality-menu button.danger,.teammenu .teamopt.danger,.v8-cmenu :is(a,button).danger,.v8-pop .it.danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn).danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn).danger,.v8-fmenu>.v8-pop>details>summary.danger,.vpn-menu button.danger,.finance-actions-menu>div>button.danger,.project-more>div>a.danger,.project-more>div>.client-switch.danger,.v8-fdl>div a.danger,.cast-pop>.cast-menu :is(button,label).danger,.cmts.chat .cm .meta :is(a,button,.work-completion).danger,.v8-fmenu>.v8-pop .file-trash,.cmts.chat .cm .meta .dellink,.v8-cmenu .danger):not(#v8m):not(#v8n):not(#v8o):not(#v8p):focus-visible,
html body.v8 :is(.aid-menu button.danger,.quality-menu button.danger,.teammenu .teamopt.danger,.v8-cmenu :is(a,button).danger,.v8-pop .it.danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn).danger,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn).danger,.v8-fmenu>.v8-pop>details>summary.danger,.vpn-menu button.danger,.finance-actions-menu>div>button.danger,.project-more>div>a.danger,.project-more>div>.client-switch.danger,.v8-fdl>div a.danger,.cast-pop>.cast-menu :is(button,label).danger,.cmts.chat .cm .meta :is(a,button,.work-completion).danger,.v8-fmenu>.v8-pop .file-trash,.cmts.chat .cm .meta .dellink,.v8-cmenu .danger):not(#v8m):not(#v8n):not(#v8o):not(#v8p):focus-visible svg{color:var(--v8-late)}
/* недоступные */
/* у недоступных — !important: общее правило недоступной кнопки (_depth_theme) ставит серую плашку с !important */
html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m):is(:disabled,[aria-disabled=true]){opacity:.4;cursor:default;background:none!important;box-shadow:none!important;color:var(--v8-t3)!important}
/* подписи, надзаголовки групп, разделители, клавиши */
html body.v8 .teammenu .teamopt:not(#v8m):not(#v8n){flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--v8-g-1)}
html body.v8 .teammenu .teamopt:not(#v8m):not(#v8n) small{display:block;font:400 var(--v8-fs-12)/1.3 var(--v8-sans);color:var(--v8-t4)}
html body.v8 :is(.aid-menu .aid-menu-group,.v8-pop .sec2):not(#v8m){margin:0;padding:8px 10px 4px;background:none;border:0;font:500 var(--v8-fs-12)/1.3 var(--v8-sans);letter-spacing:.06em;font-variant-caps:all-small-caps;text-transform:none;color:var(--v8-t4)}
html body.v8 :is(.v8-pop :is(.hr,.v8-hr),.v8-cmenu .hr,.aid-menu hr):not(#v8m){display:block;height:1px;margin:4px 6px;padding:0;border:0;background:var(--v8-w5)}
html body.v8 :is(.v8-pop .it,.v8-cmenu :is(a,button))>.k:not(#v8m){margin-left:auto;padding-left:12px;font:400 var(--v8-fs-11) var(--v8-mono);color:var(--v8-t4)}
html body.v8 .v8-fmenu>.v8-pop>form:not(#v8m){display:contents;margin:0}
html body.v8 :is(.vpn-menu,.cast-pop>.cast-menu) form:not(#v8m){margin:0}
html body.v8 .vpn-menu>p:not(#v8m){margin:0;padding:8px 10px 4px;font:400 var(--v8-fs-12)/1.3 var(--v8-sans);color:var(--v8-t4)}
/* у меню сообщения подпись = aria-label значка; пункты без значка выровнены по тексту соседей */
html body.v8 .cmts.chat .cm .meta :is(a,button):not(.ic):not(#v8m):not(#v8n){padding-left:35px}
/* меню сообщения в короткой ленте (телефон): меню держится выше строки ввода и прокручивается внутри — «Удалить» прилипает к низу меню и видно всегда (владелец 11.10) */
html body.v8 .cmts.chat .cm .meta[style*="overflow-y: auto"] .dellink:not(#v8m):not(#v8n){position:sticky;bottom:0;z-index:1;background:var(--v8-pop);box-shadow:0 -5px 0 var(--v8-pop),0 5px 0 var(--v8-pop)}
html body.v8 .cmts.chat .cm .meta[style*="overflow-y: auto"] .dellink:not(#v8m):not(#v8n):hover{background:linear-gradient(var(--v8-w3),var(--v8-w3)),var(--v8-pop)}
html body.v8 .cmts.chat .cm .meta[style*="overflow-y: auto"] .dellink:not(#v8m):not(#v8n):not(#v8o):focus-visible{background:linear-gradient(var(--v8-w3),var(--v8-w3)),var(--v8-pop);box-shadow:0 -5px 0 var(--v8-pop),0 5px 0 var(--v8-pop),inset 0 0 0 1px var(--v8-w10)}
/* параметры вида планировщика: пункты-галочки — тот же фокус, без толстой рамки */
html body.v8 .v8-planner .v8-tb3 .v8-pop label.it:has(input:focus-visible):not(#v8m):not(#v8n):not(#v8o){outline:0;background:var(--v8-w3);box-shadow:inset 0 0 0 1px var(--v8-w10);color:var(--v8-t1)}
/* сегменты внутри меню (параметры вида планировщика) — тот же тонкий фокус */
html body.v8 .v8-pop .v8-seg :is(button,label):focus-visible:not(#v8m):not(#v8n):not(#v8o),html body.v8 .v8-pop .v8-seg>label:has(input:focus-visible):not(#v8m):not(#v8n):not(#v8o){outline:0;box-shadow:inset 0 0 0 1px var(--v8-w10)}
/* «Добавить операцию» на узком экране: кнопка у левого края, и меню, прижатое к её правому краю, уходило за экран */
@media(max-width:600px){html body.v8 .finance-actions-menu>div:not(#v8m){left:0;right:auto}}
/* палец: строки 44 px */
@media(pointer:coarse){html body.v8 :is(.aid-menu button,.quality-menu button,.teammenu .teamopt,.v8-cmenu :is(a,button),.v8-pop .it,.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>:is(a,button):not(.v8-btn),.v8-ddw:not(.v8-purge)>.v8-pop:not(.search)>form>button:not(.v8-btn),.v8-fmenu>.v8-pop>details>summary,.vpn-menu button,.finance-actions-menu>div>button,.project-more>div>a,.project-more>div>.client-switch,.v8-fdl>div a,.cast-pop>.cast-menu :is(button,label),.cmts.chat .cm .meta :is(a,button,.work-completion)):not(#v8m){min-height:44px}}
/* ---- появление и уход: 140 мс, прозрачность + сдвиг 3 px ----
   JS-меню (.aid-menu, .v8-cmenu, .teammenu): класс .v8-in ставится ПОСЛЕ замера места (сдвиг не портит расчёт у края),
   .v8-out — перед удалением; меню-поповер качества гаснет через :popover-open; панели в details держатся
   ::details-content, пока гаснут. Без поддержки ::details-content панель просто исчезает, как раньше. */
@keyframes v8-menu-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@keyframes v8-menu-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-3px)}}
html body.v8 .aid-menu:not(#v8m){animation:none}
html body.v8 :is(.aid-menu.v8-in,.v8-cmenu,.teammenu):not(#v8m){animation:v8-menu-in var(--v8-menu) var(--v8-ease) both}
html body.v8 .teammenu.is-typed:not(#v8m){animation:none}
html body.v8 :is(.aid-menu,.v8-cmenu,.teammenu).v8-out:not(#v8m){animation:v8-menu-out var(--v8-menu) var(--v8-ease) both;pointer-events:none}
html body.v8 .quality-menu[popover]:not(#v8m){animation:none;opacity:0;transform:translateY(-3px);transition:opacity var(--v8-menu) var(--v8-ease),transform var(--v8-menu) var(--v8-ease),overlay var(--v8-menu) allow-discrete,display var(--v8-menu) allow-discrete}
html body.v8 .quality-menu[popover]:not(#v8m):popover-open{opacity:1;transform:none}
@starting-style{html body.v8 .quality-menu[popover]:not(#v8m):popover-open{opacity:0;transform:translateY(-3px)}}
html body.v8 details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)::details-content{transition:content-visibility var(--v8-menu) allow-discrete}
html body.v8 details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)>:is(.v8-pop,div:not(.aid-menu),form):not(#v8m){opacity:0;transform:translateY(-3px);pointer-events:none;transition:opacity var(--v8-menu) var(--v8-ease),transform var(--v8-menu) var(--v8-ease)}
html body.v8 details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)[open]>:is(.v8-pop,div:not(.aid-menu),form):not(#v8m){opacity:1;transform:none;pointer-events:auto}
@starting-style{html body.v8 details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)[open]>:is(.v8-pop,div:not(.aid-menu),form):not(#v8m){opacity:0;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){html body.v8 :is(.aid-menu,.v8-cmenu,.teammenu):not(#v8m){animation:none}html body.v8 :is(.quality-menu[popover],details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)>:is(.v8-pop,div:not(.aid-menu),form)):not(#v8m){transition:none;transform:none}html body.v8 details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop)::details-content{transition:none}}
/* ==== окна, формы-поповеры, панели доски, подсказки: та же панель ==== */
html body.v8 dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg):not(#v8m){background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-12);box-shadow:var(--v8-sh-win);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--v8-t2);font-family:var(--v8-sans);color-scheme:dark}
html body.v8 dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg):not(#v8m)::backdrop{background:rgba(14,17,20,.62);-webkit-backdrop-filter:none;backdrop-filter:none}
html body.v8 .finance-pop-panel:not(#v8m),
html body.v8 .v8-pop.search:not(#v8m),
html body.v8 .v8-purge .v8-pop:not(#v8m),
html body.v8 .cast-pop>form:not(#v8m),
html body.v8 .pipe-pop:not(#v8m),
html body.v8 .cvwrap :is(.stickpick,.boardpick,.imenu,.cv-tools,.cv-zoom,.cv-acts,.cvhelp,.board-uploads,.board-toast):not(#v8m),
html body.v8 .ui-info-body:not(#v8m),
html body.v8 .quality-status:not(:empty):not(#v8m),
html body.v8 .plan-inspector:has(#plan-hover:not([hidden])):not(#v8m),
html body.v8 .v8-planmsg:not(#v8m),
html body.v8 .v8-toast:not(#v8m){background:var(--v8-pop);border:1px solid var(--v8-w8);border-radius:var(--v8-r-10);box-shadow:var(--v8-sh-menu);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--v8-t2);font-family:var(--v8-sans)}
/* заголовок окна — Inter 16/500, без узкого жирного */
html body.v8 dialog:not(.phone-menu):not(.file-preview) :is(h2,h3,:is(header,.finance-dialog-head,.tg-dialog-heading,.page-dialog-heading,.date-picker-head,.plan-editor-heading)>strong):not(#v8m){margin:0;font:500 var(--v8-fs-16)/1.3 var(--v8-sans);letter-spacing:-.01em;text-transform:none;color:var(--v8-t1)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop) :is(label,legend,.hint,small):not(:has(input[type=radio])):not(#v8m){font-family:var(--v8-sans);font-size:var(--v8-fs-12);color:var(--v8-t3);letter-spacing:normal;text-transform:none}
html body.v8 dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) p:not(#v8m){font-family:var(--v8-sans);color:var(--v8-t2)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop,.cvwrap :is(.stickpick,.boardpick,.imenu,.cv-tools,.cv-zoom,.cv-acts,.cvhelp,.board-uploads,.board-toast),.ui-info-body,.quality-status:not(:empty),.plan-inspector:has(#plan-hover:not([hidden])),.v8-planmsg,.v8-toast) :is(button,a.button,summary,.v8-btn):not(#v8m){font-family:var(--v8-sans)}
/* поля — вдавленные, как .v8-inp: без рамки, темнее панели, фокус — внутренняя подсветка */
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=color]),select,textarea,.date-trigger):not(.v8-inp):not(#v8m){border:0;border-radius:var(--v8-r-6);background-color:var(--v8-field);box-shadow:var(--v8-deboss);color:var(--v8-t2);font-family:var(--v8-sans);font-size:var(--v8-fs-13);font-weight:400;letter-spacing:normal;outline:0}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=color]),select,textarea,.date-trigger):not(.v8-inp):not(#v8m):not(#v8n):not(#v8o):is(:focus,:focus-visible){box-shadow:var(--v8-deboss-f);outline:0;border:0}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop) :is(input,textarea):not(#v8m)::placeholder{color:var(--v8-t3)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg),.finance-pop-panel,.v8-pop.search,.v8-purge .v8-pop,.cast-pop>form,.pipe-pop) :is(input[type=checkbox],input[type=radio]):not(#v8m){accent-color:var(--v8-t2)}
/* кнопки действий: основная — без заливки, тонкая оранжевая линия под текстом; «Отмена» — тихая */
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger)):not(#v8m){position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--v8-g-6);width:auto;min-height:var(--v8-h-btn);height:var(--v8-h-btn);margin:0;padding:0 12px;border:0;border-radius:var(--v8-r-6);background:transparent;box-shadow:none;color:var(--v8-t1);font:500 var(--v8-fs-13)/1 var(--v8-sans);letter-spacing:normal;text-transform:none;transition:background-color var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger)):not(#v8m):not(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel])::after{content:"";display:block;position:absolute;left:22%;right:22%;bottom:0;top:auto;width:auto;height:1px;margin:0;border:0;transform:none;background:linear-gradient(90deg,transparent,rgba(255,80,0,.95),transparent);opacity:.8;pointer-events:none}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger)):not(#v8m):hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel])):not(#v8m):not(#v8n){color:var(--v8-t3);background:transparent}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel]),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(.secondary,.ghost,[value=cancel],[data-date-clear],[data-date-cancel])):not(#v8m):not(#v8n):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):is(#final-delete-confirm,.danger,[data-danger]),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(#final-delete-confirm,.danger,[data-danger]),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(#final-delete-confirm,.danger,[data-danger]),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(#final-delete-confirm,.danger,[data-danger]),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(#final-delete-confirm,.danger,[data-danger]),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger):is(#final-delete-confirm,.danger,[data-danger])):not(#v8m):not(#v8n){color:var(--v8-late)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger)):not(#v8m):disabled{opacity:.4;cursor:default;background:transparent!important;box-shadow:none!important;color:var(--v8-t3)!important}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(footer,.finance-dialog-foot,.actions,.date-picker-actions)>:is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl),.finance-pop-panel :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-pop.search :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.v8-purge .v8-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.cast-pop>form :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger),.pipe-pop :is(button,a.button):not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.aid-select-trigger)):not(#v8m) svg{width:15px;height:15px;color:var(--v8-t3)}
/* крестик окна и «+» категории — тихая кнопка-значок 28 px */
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(header,.finance-dialog-head,.tg-dialog-heading,.page-dialog-heading,.date-picker-head,.plan-editor-heading)>button:not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.danger),.pipe-pop>header>button,dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) button.finance-plus):not(#v8m){display:inline-grid;place-items:center;width:var(--v8-h-btn);min-width:var(--v8-h-btn);min-height:var(--v8-h-btn);height:var(--v8-h-btn);margin:0;padding:0;border:0;border-radius:var(--v8-r-7);background:transparent;box-shadow:none;color:var(--v8-t3);font:400 var(--v8-fs-16)/1 var(--v8-sans)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(header,.finance-dialog-head,.tg-dialog-heading,.page-dialog-heading,.date-picker-head,.plan-editor-heading)>button:not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.danger),.pipe-pop>header>button,dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) button.finance-plus):not(#v8m):hover{background:var(--v8-w4);color:var(--v8-t2)}
html body.v8 :is(dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(header,.finance-dialog-head,.tg-dialog-heading,.page-dialog-heading,.date-picker-head,.plan-editor-heading)>button:not(.v8-btn):not(.v8-ibt):not(.v8-tgl):not(.danger),.pipe-pop>header>button,dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) button.finance-plus):not(#v8m) svg{width:15px;height:15px}
/* панели доски: кнопки — как пункты меню (мета-цвет, hover 3 %), активный инструмент — прежняя красная черта */
html body.v8 .cvwrap :is(.cv-tools .tb,.cv-zoom button,.cv-acts .btn,.imenu button):not(#v8m){color:var(--v8-t2);opacity:1;transition:background-color var(--v8-fast) var(--v8-ease),color var(--v8-fast) var(--v8-ease)}
html body.v8 .cvwrap :is(.cv-tools .tb,.cv-zoom button,.cv-acts .btn,.imenu button):not(#v8m):hover{background:var(--v8-w3);color:var(--v8-t1)}
html body.v8 .cvwrap :is(.cv-tools .tb.on):not(#v8m){color:var(--v8-t1)}
html body.v8 .cvwrap :is(.cv-tools .tb,.cv-zoom button,.cv-acts .btn,.imenu button):not(#v8m):disabled{opacity:.35;background:transparent!important;box-shadow:none!important;color:var(--v8-t2)!important}
html body.v8 .cvwrap :is(.cv-tools .sep):not(#v8m){background:var(--v8-w5)}
html body.v8 .cvwrap :is(.cv-zoom .z,.cv-zoom #zval):not(#v8m){color:var(--v8-t2)}
/* ==== фокус с клавиатуры: тонкое кольцо 1 px — у кнопок, открывающих меню, и у кнопок окон и поповеров ==== */
html body.v8 :is(details:is(.v8-ddw,.project-more,.finance-actions-menu,.vpn-picker,.global-account,.v8-fdl,.cast-pop,.finance-pop)>summary,.aid-select-trigger,.quality-trigger,.cbfor,.v8-more,.cm-menu-trigger,:is(button,summary,a)[aria-haspopup],.date-trigger,dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) :is(button,a.button,summary),dialog:not(.phone-menu):not(.file-preview):not(.v8-dlg) .v8-btn,.finance-pop-panel :is(button,a.button,summary),.v8-pop.search :is(button,a.button,summary),.v8-purge .v8-pop :is(button,a.button,summary),.cast-pop>form :is(button,a.button,summary),.pipe-pop :is(button,a.button,summary),.cvwrap :is(.stickpick,.boardpick,.imenu,.cv-tools,.cv-zoom,.cv-acts,.cvhelp,.board-uploads,.board-toast) :is(button,a.button,summary),.ui-info-body :is(button,a.button,summary),.quality-status:not(:empty) :is(button,a.button,summary),.plan-inspector:has(#plan-hover:not([hidden])) :is(button,a.button,summary),.v8-planmsg :is(button,a.button,summary),.v8-toast :is(button,a.button,summary)):not(#v8m):not(#v8n):not(#v8o):focus-visible{outline:1px solid var(--v8-ring);outline-offset:2px}
html body.v8 :is(select.v8-inp,.v8-inp):not(#v8m):not(#v8n):not(#v8o):focus-visible{outline:0}
/* r3 mobile (12.10.2026, решение по макету audit/mobile_concept, вариант A «Лента»): телефон ≤640 px.
   Стол серии: видео во всю ширину 9:16 (по высоте экрана), справа колонка значков (обсуждение · рисовать · версии · у клиента ·
   передать · ⋯), внизу кадра — полоса времени с метками, под ним — строка ввода; обсуждение — шторка (половина / весь экран);
   версии — меню у вкладки серии. Клиент — то же и две закреплённые кнопки решения. Поведение — _v8_mobile_js.html (классы
   .m-a / .m-s0..2 / .m-deck на .epwrap). Всё под @media(max-width:640px): компьютер не меняется.
   !important только там, где перебиваем !important из _mobile_desk_css.html (кадр на телефоне). */
/* ручка шторки существует только в телефонной раскладке */
html body.aid-shell .epwrap .m-grab{display:none}
/* счётчик новых сообщений на плитке проекта — только в телефонной сетке (.m-tiles) */
html body.aid-shell .v8-card .m-new{display:none}
@media(max-width:640px){
 /* ---------- строка серий: плотные чипы в одну строку ---------- */
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip{min-height:0;padding:var(--v8-g-4) 0;gap:var(--v8-g-4);align-items:center}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .episode-card{min-width:0;height:auto}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .eptab{min-height:var(--v8-h-row)!important;height:var(--v8-h-row)!important;padding:0 var(--v8-g-10)!important;display:inline-flex!important;flex-direction:row;align-items:center;gap:var(--v8-g-6);border-radius:var(--v8-r-8)}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .eptab .ept-meta{display:none!important}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .eptab.on::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.55;margin-left:var(--v8-g-2);position:static;background:none;inset:auto;order:9}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .desk-focus-toggle{min-height:var(--v8-h-row)!important;height:var(--v8-h-row)!important;padding:0 var(--v8-g-8)!important;align-self:center}
 html body.aid-shell.v8 :is(#ephead,.ephead).m-strip .desk-focus-toggle i{display:none}

 /* ---------- стол: во всю ширину, колонка — кадр сверху, шторка снизу ---------- */
 html body.aid-shell.v8 .epwrap.m-a.desk-ready:not(:fullscreen):not(.is-expanded){width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;display:flex!important;flex-direction:column;position:relative;overflow:hidden}
 html body.aid-shell.v8 .epwrap.m-a.desk-ready:not(:fullscreen):not(.is-expanded)::before,
 html body.aid-shell.v8 .epwrap.m-a.desk-ready:not(:fullscreen):not(.is-expanded)::after{display:none}
 html body.aid-shell.v8 .epwrap.m-a.review-shell.m-dec:not(:fullscreen):not(.is-expanded){height:calc(100svh - var(--top-nav-height,56px) - 12px - var(--desk-chrome,82px) - var(--m-dec-h,64px))!important;max-height:none!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded)>:is(.epplayer,.review-player){flex:1 1 0!important;min-height:0!important;height:auto!important;max-height:none!important;padding:0!important;margin:0!important;gap:0!important;display:flex!important;flex-direction:column;border:0!important;background:transparent!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .vstage{flex:1 1 0!important;height:auto!important;min-height:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;container-type:size;display:flex!important;align-items:center;justify-content:center;position:relative;background:#07080a}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .vstage>.vwrap{width:min(100cqw,100cqh * 9 / 16)!important;height:min(100cqh,100cqw * 16 / 9)!important;max-width:none!important;max-height:none!important;margin:0!important;border-radius:0!important;border:0!important;box-shadow:none!important;flex:none!important;aspect-ratio:auto!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .vstage>.vwrap video{border-radius:0}
 /* «Комментарий к кадру» клиента и колода версий под кадром уходят: первое — в колонку значков, второе — в меню у вкладки серии */
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .annotation-tools{display:none!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .desk-footer{padding:0 var(--v8-g-8)!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .task-input-context{margin:0;padding:var(--v8-g-4) var(--v8-g-12);font-size:var(--v8-fs-12)}

 /* ---------- версии: меню у вкладки серии ---------- */
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .episode-deck{display:none!important}
 html body.aid-shell.v8 .epwrap.m-a.m-deck:not(:fullscreen):not(.is-expanded) .episode-deck{display:flex!important;flex-wrap:wrap;align-items:center;gap:var(--v8-g-8);position:absolute;top:var(--v8-g-8);left:var(--v8-g-8);right:var(--v8-g-8);z-index:40;margin:0!important;padding:var(--v8-g-10) var(--v8-g-12);border-radius:var(--v8-r-12);background:var(--v8-pop);box-shadow:var(--v8-sh-menu);animation:m-pop var(--v8-menu) var(--v8-ease)}
 html body.aid-shell.v8 .epwrap.m-a.m-deck .episode-deck .episode-version-caption{display:block;width:100%;font-size:var(--v8-fs-12);color:var(--v8-t3)}
 html body.aid-shell.v8 .epwrap.m-a.m-deck .episode-deck .episode-version-row{flex-wrap:wrap;gap:var(--v8-g-6)}
 html body.aid-shell.v8 .epwrap.m-a.m-deck .episode-deck :is(.vchip,.episode-add,.episode-version-manage){min-height:var(--v8-h-row);height:var(--v8-h-row)}
 html body.aid-shell.v8 .epwrap.m-a.m-deck .episode-deck .version-compare{width:100%;font-size:var(--v8-fs-13)}
 @keyframes m-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

 /* ---------- колонка значков справа (строка публикации стола становится колонкой; у клиента — своя) ---------- */
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .vstage>.m-rail{position:absolute!important;right:var(--v8-g-6);bottom:var(--m-rail-b,92px);z-index:6;display:flex!important;flex-direction:column;flex-wrap:nowrap!important;align-items:center;gap:var(--v8-g-12)!important;width:auto!important;min-height:0;margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail::before,html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail::after{display:none!important}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.v8-pub-main,.m-hide){display:none!important}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.m-rtop,.v8-pub-act,#task-controls,.handoff-controls){display:flex!important;flex-direction:column;flex-wrap:nowrap!important;align-items:center;gap:var(--v8-g-12)!important;margin:0!important;padding:0!important;width:auto!important;flex:none!important;background:none;border:0}
 /* круг 44 px, стекло; подпись-число под кругом */
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.m-rb,.pubbtn,.aid-select-trigger,.v8-pub-more>summary){position:relative;width:44px!important;height:44px!important;min-height:44px!important;max-width:none!important;padding:0!important;margin:0!important;border-radius:50%!important;display:grid!important;place-items:center;color:#eef1f5!important;background:rgba(11,15,21,.42)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 4px 14px rgba(0,0,0,.25)!important;font-size:0!important;line-height:0;cursor:pointer;transition:transform var(--v8-fast) var(--v8-ease),box-shadow var(--v8-mid) var(--v8-ease)}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.m-rb,.pubbtn,.aid-select-trigger,.v8-pub-more>summary):active{transform:scale(.94)}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.m-rb,.aid-select-trigger,.v8-pub-more>summary)::after{display:none}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.m-rb,.pubbtn,.v8-pub-more>summary) .aid-icon{width:22px;height:22px}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.pubbtn,.aid-select-trigger)>:not(.aid-icon){display:none!important}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .m-rb[aria-expanded=true],
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .pubbtn[aria-pressed=true]{box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset 0 -2px 0 rgba(255,48,0,.8),0 4px 14px rgba(0,0,0,.25)!important}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail [data-ml]::before{content:attr(data-ml);position:absolute;top:calc(100% + 1px);left:50%;transform:translateX(-50%);font:500 var(--v8-fs-11)/1 var(--v8-mono);color:#dfe3e8;text-shadow:0 1px 3px rgba(0,0,0,.7);white-space:nowrap;pointer-events:none}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail [data-ml]{margin-bottom:var(--v8-g-8)!important}
 /* «Показать клиенту» — знак глаза; подпись под кругом — версия у клиента (data-ml) */
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .pubbtn>.aid-icon{display:none!important}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .pubbtn::after{content:""!important;display:block!important;position:static!important;width:22px;height:22px;background:currentColor!important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;inset:auto;opacity:1;border:0}
 /* «Передать…» — знак стрелки вместо подписи (подпись остаётся в aria) */
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .aid-select-trigger::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h12M11 6l6 6-6 6M20 5v14'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h12M11 6l6 6-6 6M20 5v14'/%3E%3C/svg%3E") center/contain no-repeat}
 /* ⋯: меню открывается влево от колонки и вверх */
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .v8-pub-more{position:relative}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .v8-pub-more>.v8-pop{position:absolute;top:auto!important;bottom:0!important;right:52px!important;left:auto!important;width:min(300px,calc(100vw - 72px));max-height:calc(100cqh - 16px);overflow:auto;transform-origin:bottom right}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .v8-pub-more .handoff-buttons{display:flex;flex-direction:column;gap:var(--v8-g-4);padding:var(--v8-g-4);border-top:1px solid var(--v8-w6);margin-top:var(--v8-g-4)}
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail .v8-pub-more .handoff-buttons button{width:100%;min-height:36px;justify-content:flex-start}
 /* ошибки строки публикации и пульта задачи — плашкой слева от колонки, а не в её столбике */
 html body.aid-shell.v8 .epwrap.m-a .vstage>.m-rail :is(.publication-error,#task-error,.team-error):not([hidden]){position:absolute;right:52px;bottom:0;width:min(260px,calc(100vw - 72px));padding:var(--v8-g-8) var(--v8-g-10);border-radius:var(--v8-r-8);background:var(--v8-pop);box-shadow:var(--v8-sh-menu);font-size:var(--v8-fs-13);line-height:1.4}
 /* полный экран и развёрнутый вид: колонки нет, как прежде не было строки публикации */
 html body.aid-shell.v8 .epwrap:is(:fullscreen,.is-expanded) .vstage>:is(.m-rail,.publication-bar){display:none!important}

 /* ---------- обсуждение — шторка ---------- */
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded)>:is(.epcol,.review-discussion){order:2;display:flex!important;flex-direction:column;flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;margin:0!important;border:0!important;border-top:1px solid var(--v8-w6)!important;border-radius:0!important;position:relative;background:linear-gradient(180deg,#171a20,#13161b 40%)!important;box-shadow:0 -12px 32px rgba(0,0,0,.28);transition:flex-basis var(--v8-slow) var(--v8-ease)}
 html body.aid-shell.v8 .epwrap.m-a.m-s1:not(:fullscreen):not(.is-expanded)>:is(.epcol,.review-discussion){flex:0 0 58%!important;border-radius:var(--v8-r-14) var(--v8-r-14) 0 0!important}
 html body.aid-shell.v8 .epwrap.m-a.m-s2:not(:fullscreen):not(.is-expanded)>:is(.epcol,.review-discussion){flex:1 1 100%!important}
 html body.aid-shell.v8 .epwrap.m-a.m-s2:not(:fullscreen):not(.is-expanded)>:is(.epplayer,.review-player){flex:0 0 0!important;overflow:hidden}
 /* свёрнута: у команды — только строка ввода; у клиента шторки не видно вовсе (внизу кнопки решения) */
 html body.aid-shell.v8 .epwrap.m-a.m-s0:not(:fullscreen):not(.is-expanded)>:is(.epcol,.review-discussion)>:not(.cbox):not(.review-composer){display:none!important}
 html body.aid-shell.v8 .epwrap.m-a.m-s0:not(:fullscreen):not(.is-expanded) :is(.cbox,.review-composer){position:relative!important;inset:auto!important;transform:none!important}
 html body.aid-shell.v8 .epwrap.m-a.m-s0:not(:fullscreen):not(.is-expanded)>:is(.epcol,.review-discussion){contain:none!important}
 /* шторка открыта — колонка значков уходит, как в ленте коротких видео */
 html body.aid-shell.v8 .epwrap.m-a:is(.m-s1,.m-s2) .vstage>.m-rail{opacity:0;pointer-events:none;visibility:hidden}
 html body.aid-shell.v8 .epwrap.m-a.review-shell.m-s0:not(:fullscreen):not(.is-expanded)>.review-discussion{display:none!important}
 html body.aid-shell.v8 .epwrap.m-a:not(:fullscreen):not(.is-expanded) .close-fullscreen-discussion{display:none!important}
 /* ручка шторки: касание — половина ↔ весь экран, протяжка вниз — свернуть */
 html body.aid-shell.v8 .epwrap.m-a .m-grab{display:none}
 html body.aid-shell.v8 .epwrap.m-a:is(.m-s1,.m-s2):not(:fullscreen):not(.is-expanded) .m-grab{display:flex!important;flex:none;justify-content:center;align-items:center;width:100%;height:24px;min-height:0;padding:0;margin:0;border:0;background:none;cursor:grab;touch-action:none}
 html body.aid-shell.v8 .epwrap.m-a .m-grab i{display:block;width:36px;height:4px;border-radius:var(--v8-r-2);background:var(--v8-w14)}
 html body.aid-shell.v8 .epwrap.m-a:is(.m-s1,.m-s2):not(:fullscreen):not(.is-expanded) :is(.cmts,.review-comments){flex:1 1 0!important;min-height:0!important}

 /* ---------- клиент: кнопки решения закреплены внизу ---------- */
 html body.aid-shell.v8 .epwrap.m-a.m-dec:not(:fullscreen):not(.is-expanded)>.publication-bar.v8-hero{position:fixed!important;left:0;right:0;bottom:0;z-index:30;display:flex!important;margin:0!important;padding:var(--v8-g-10) var(--v8-g-10) calc(var(--v8-g-10) + env(safe-area-inset-bottom))!important;border:0!important;border-radius:0!important;background:#101318!important;box-shadow:0 -1px 0 var(--v8-w6)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);flex-direction:column-reverse}
 /* стол клиента поднят над соседними секциями: иначе их заголовки рисуются поверх закреплённой полосы */
 html body.aid-shell.v8 .epwrap.m-a.m-dec:not(:fullscreen):not(.is-expanded){z-index:50}
 html body.aid-shell.v8 .epwrap.m-a.m-dec>.publication-bar.v8-hero::before,html body.aid-shell.v8 .epwrap.m-a.m-dec>.publication-bar.v8-hero::after{display:none}
 html body.aid-shell.v8 .epwrap.m-a.m-dec .decision-buttons{display:flex!important;flex-wrap:nowrap!important;gap:var(--v8-g-8)!important;width:100%;margin:0}
 html body.aid-shell.v8 .epwrap.m-a.m-dec .decision-buttons>button{flex:1 1 0;min-width:0;min-height:44px!important;height:44px!important;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html body.aid-shell.v8 .epwrap.m-a.m-dec .decision-buttons>button[data-decision=time]{flex:0 0 44px;width:44px;padding:0!important;font-size:0!important}
 html body.aid-shell.v8 .epwrap.m-a.m-dec .decision-buttons>button[data-decision=time]::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center/contain no-repeat}
 html body.aid-shell.v8 .epwrap.m-a.m-dec>.publication-bar.v8-hero :is(#time-options:not([hidden]),#decision-due:not([hidden])){display:flex;flex-wrap:wrap;align-items:center;gap:var(--v8-g-8);margin:0 0 var(--v8-g-8)}

 /* на столе нижняя панель разделов не нужна: внизу строка ввода или кнопки решения */
 html body.aid-shell.v8.m-desk .v8-bnav{display:none!important}
 /* ---------- нижняя панель разделов (вместо бокового меню на телефоне) ---------- */
 html body.aid-shell.v8.m-bnav{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
 html body.aid-shell.v8 .v8-bnav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:stretch;height:calc(56px + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);background:rgba(14,17,21,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -1px 0 var(--v8-w6)}
 html body.aid-shell.v8 .v8-bnav>a,html body.aid-shell.v8 .v8-bnav>button{position:relative;flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--v8-g-2);padding:0 var(--v8-g-2);margin:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--v8-t4);font:500 var(--v8-fs-11)/1.1 var(--v8-sans);text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color var(--v8-fast) var(--v8-ease)}
 html body.aid-shell.v8 .v8-bnav>:is(a,button)>span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
 html body.aid-shell.v8 .v8-bnav .aid-icon{width:22px;height:22px}
 html body.aid-shell.v8 .v8-bnav>[aria-current=page]{color:var(--v8-t1)}
 html body.aid-shell.v8 .v8-bnav>[aria-current=page]::before{content:"";position:absolute;top:0;left:28%;right:28%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,80,0,.9),transparent)}
 html body.aid-shell.v8 .v8-bnav .v8-bn-c{position:absolute;top:6px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 var(--v8-g-4);border-radius:var(--v8-r-8);background:#3a2620;color:#ffc7b5;font:500 var(--v8-fs-10)/16px var(--v8-mono);text-align:center}
 html body.aid-shell.v8 .v8-bnav .v8-bn-c[hidden]{display:none}
 html body.aid-shell.v8.desk-focus .v8-bnav{display:none!important}
 /* помощник и подсказки встают над панелью */
 html body.aid-shell.v8.m-bnav :is(.aid-pal,.aid-toasts){margin-bottom:calc(56px + env(safe-area-inset-bottom))}

 /* ---------- проекты: плотная сетка 3 в ряд (как профиль Instagram) ---------- */
 html body.aid-shell.v8 .v8-grid.m-tiles{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:2px!important;width:100vw;margin-left:calc(50% - 50vw)}
 html body.aid-shell.v8 .m-tiles>.v8-card{border-radius:0;box-shadow:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:transform var(--v8-mid) var(--v8-ease)}
 html body.aid-shell.v8 .m-tiles>.v8-card::before,html body.aid-shell.v8 .m-tiles>.v8-card::after{border-radius:0}
 html body.aid-shell.v8 .m-tiles>.v8-card .v8-card-cover{border-radius:0}
 html body.aid-shell.v8 .m-tiles>.v8-card .v8-card-fade{background:linear-gradient(0deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.18) 26%,transparent 46%)}
 html body.aid-shell.v8 .m-tiles>.v8-card :is(.top .tt,.top .cl,.when,.v8-prog,.bot,.stg-name,.r3c-need,.v8-cm){display:none!important}
 html body.aid-shell.v8 .m-tiles>.v8-card .top{left:auto;right:auto;top:auto;bottom:7px;left:8px;gap:0}
 html body.aid-shell.v8 .m-tiles>.v8-card .top .cd{font:600 var(--v8-fs-16)/1 var(--v8-cond)!important;color:#fff}
 html body.aid-shell.v8 .m-tiles>.v8-card .top .cd.name{font:500 var(--v8-fs-12)/1.2 var(--v8-sans)!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:calc(100% - 8px)}
 html body.aid-shell.v8 .m-tiles>.v8-card .lo{position:absolute;inset:auto 6px 6px auto;z-index:2;display:flex;align-items:center;gap:var(--v8-g-4);padding:0;margin:0;background:none;transform:none!important}
 html body.aid-shell.v8 .m-tiles>.v8-card .stg{display:flex;margin:0}
 html body.aid-shell.v8 .m-tiles>.v8-card .stg .v8-st{width:18px;height:18px}
 html body.aid-shell.v8 .m-tiles>.v8-card .stg .v8-st .aid-icon{width:12px;height:12px}
 html body.aid-shell.v8 .m-tiles>.v8-card .m-new{display:inline-flex;align-items:center;gap:var(--v8-g-2);font:500 var(--v8-fs-11)/1 var(--v8-mono);color:rgba(255,255,255,.88);text-shadow:0 1px 2px rgba(0,0,0,.6)}
 html body.aid-shell.v8 .m-tiles>.v8-card .m-new .aid-icon{width:12px;height:12px}
 html body.aid-shell.v8 .m-tiles>.v8-card.needs .stg::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--v8-red);margin-left:var(--v8-g-2)}
 html body.aid-shell.v8 .m-tiles>.v8-card.m-held{transform:scale(.96)}
 html body.aid-shell.v8 .m-tiles>.v8-card .m-new:not([hidden]){display:inline-flex}

 /* шторка действий (долгое нажатие на плитку) */
 html body.aid-shell.v8 .m-acts{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(5,6,8,.55);animation:m-fade var(--v8-mid) var(--v8-ease)}
 html body.aid-shell.v8 .m-acts[hidden]{display:none}
 html body.aid-shell.v8 .m-acts .m-acts-b{padding:var(--v8-g-4) 0 calc(var(--v8-g-12) + env(safe-area-inset-bottom));border-radius:var(--v8-r-14) var(--v8-r-14) 0 0;background:linear-gradient(180deg,#191c22,#14171c 40%);box-shadow:0 -1px 0 var(--v8-w8),0 -20px 50px rgba(0,0,0,.4);animation:m-up var(--v8-slow) var(--v8-ease)}
 html body.aid-shell.v8 .m-acts .m-acts-g{width:36px;height:4px;border-radius:var(--v8-r-2);background:var(--v8-w14);margin:var(--v8-g-6) auto var(--v8-g-10)}
 html body.aid-shell.v8 .m-acts .m-acts-h{display:flex;align-items:center;gap:var(--v8-g-12);padding:0 var(--v8-g-16,16px) var(--v8-g-10)}
 html body.aid-shell.v8 .m-acts .m-acts-h img{width:36px;height:64px;border-radius:var(--v8-r-4);object-fit:cover;background:#0b0d10}
 html body.aid-shell.v8 .m-acts .m-acts-h b{display:block;font:600 var(--v8-fs-22)/1 var(--v8-cond);color:var(--v8-t1)}
 html body.aid-shell.v8 .m-acts .m-acts-h span{display:block;margin-top:var(--v8-g-4);font-size:var(--v8-fs-13);color:var(--v8-t3)}
 html body.aid-shell.v8 .m-acts a{display:flex;align-items:center;gap:var(--v8-g-12);min-height:48px;padding:0 var(--v8-g-18);color:var(--v8-t2);font-size:var(--v8-fs-15);text-decoration:none}
 html body.aid-shell.v8 .m-acts a .aid-icon{width:20px;height:20px;color:var(--v8-t3)}
 html body.aid-shell.v8 .m-acts a:active{background:var(--v8-w4)}
 @keyframes m-fade{from{opacity:0}}
 @keyframes m-up{from{transform:translateY(40px);opacity:.4}}

 /* ---------- входящие: свайп по строке — «Прочитано» / «Позже» ---------- */
 html body.aid-shell.v8 .m-sw{position:relative;overflow:hidden;touch-action:pan-y}
 html body.aid-shell.v8 .m-sw>.v8-ib-row{-webkit-user-drag:none;position:relative;z-index:1;background:var(--v8-bg);transition:transform var(--v8-mid) var(--v8-ease)}
 html body.aid-shell.v8 .m-sw.m-open>.v8-ib-row{transform:translateX(-152px)}
 html body.aid-shell.v8 .m-sw>.m-sw-a{position:absolute;top:0;right:0;bottom:0;display:flex}
 html body.aid-shell.v8 .m-sw>.m-sw-a button{width:76px;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--v8-g-4);padding:0;margin:0;border:0;border-radius:0;box-shadow:none;color:var(--v8-t2);font-size:var(--v8-fs-12);background:#1c2026}
 html body.aid-shell.v8 .m-sw>.m-sw-a button+button{background:#23272e}
 html body.aid-shell.v8 .m-sw>.m-sw-a .aid-icon{width:18px;height:18px}
 html body.aid-shell.v8 .m-sw.m-gone{max-height:0!important;opacity:0;transition:max-height var(--v8-slow) var(--v8-ease),opacity var(--v8-mid) var(--v8-ease)}
}
