.aid-shell .project-poster{display:block;position:absolute;inset:0;width:100%;height:100%;aspect-ratio:9/16;background:#10151d;overflow:hidden;border-radius:0;container-type:inline-size}
.project-poster img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.poster-placeholder{position:absolute;inset:0;background:linear-gradient(155deg,#202935,#10151d 72%)}
/* Надпись на карточке без обложки живёт по ширине карточки, а не экрана: кегль задаёт
   макрос по длине надписи (--poster-step), поэтому короткий код крупный, длинное
   название мельче, и оба помещаются целиком (owner, 2026-09-20). */
.poster-index{position:absolute;top:36px;left:22px;right:22px;font-size:clamp(44px,7vw,112px);font-size:clamp(34px,calc(var(--poster-step,26)*1cqw),112px);font-weight:600;line-height:1;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1px #ffffff28}
/* Название на карточке без обложки — тихая подложка, а не контурные буквы: внутри
   полых знаков читались перегородки. Строки обрываются целиком, а не наполовину
   посреди буквы, как было с жёсткой высотой (owner, 2026-09-20). */
.poster-index.poster-name{top:30px;right:22px;font-size:clamp(18px,2.4vw,44px);font-size:clamp(18px,calc(var(--poster-step,12)*1cqw),52px);font-weight:600;line-height:1.22;letter-spacing:-.015em;color:#ffffff1c;-webkit-text-stroke:0;overflow-wrap:anywhere;text-wrap:balance;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;max-height:44%;overflow:hidden}


.aid-shell .client-orders,.aid-shell .home-project-list,.aid-shell .poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border:0;align-items:start}
.aid-shell .client-order,.aid-shell .home-project,.aid-shell .poster-grid .ocard,.aid-shell .poster-grid .dcard{display:block;position:relative;isolation:isolate;aspect-ratio:9/16;min-width:0;min-height:0;padding:0;overflow:hidden;border:0;border-radius:var(--r-l);background:#10151d;box-shadow:var(--sh-card)}
/* Copy overlays the supplied bottom-safe artwork; it never adds to card height. */
.aid-shell .project-card-body,.aid-shell .client-order-content{position:absolute;z-index:1;inset:auto 0 0;box-sizing:border-box;padding:20px 20px 18px;min-width:0;max-height:82%;overflow:auto;background:#0b101b;color:#f5f6f8;scrollbar-width:thin;scrollbar-color:#6c7481 transparent}
.project-card-body h3,.client-order h3{overflow-wrap:anywhere}.aid-shell .project-card-body h3,.aid-shell .client-order h3{font-size:var(--type-title);line-height:1.25;margin:0 0 10px;letter-spacing:-.025em}.aid-shell .project-card-body h3 a,.aid-shell .client-order h3 a,.aid-shell .home-project-title{color:#f5f6f8}
.aid-shell .home-project-actions{border-top:1px solid #ffffff26;margin-top:12px;gap:16px;padding-top:4px;grid-column:auto}.aid-shell .home-project-title{font-size:var(--type-title);line-height:1.3;overflow-wrap:anywhere}.aid-shell .home-project-status{color:#ced4df;margin-top:8px}.aid-shell .home-project-status.done{color:#86dbbd}.aid-shell .home-project-actions a{min-height:44px;color:#f0f2f7;display:inline-flex;align-items:center}
.aid-shell .client-order-meta,.aid-shell .client-order-data{gap:4px 10px;align-items:flex-start;color:#ced4df;font-size:var(--type-body)}.aid-shell .client-order-meta{flex-direction:row;margin-bottom:10px}.aid-shell .client-order-status{color:#f0f2f7}.aid-shell .client-order-data{display:flex;flex-direction:column}.aid-shell .client-order-attention{margin-top:12px;color:#ffb29e}.aid-shell .client-order-bottom{flex-wrap:wrap;gap:0 12px;margin-top:12px;padding-top:4px;border-color:#ffffff26}.aid-shell .client-order-bottom a{font-size:var(--type-body);color:#f0f2f7}
.aid-shell .poster-grid .ocard .m{color:#ced4df;margin-bottom:10px;letter-spacing:0;text-transform:none}.aid-shell .poster-grid .ocard .pbar{height:3px;margin:12px 0}.aid-shell .poster-grid .ocard .row2{gap:6px 10px;flex-wrap:wrap}.aid-shell .poster-grid .ocard .pct small,.aid-shell .poster-grid .ocard .due,.aid-shell .poster-grid .dcard .row{color:#ced4df;font-size:var(--type-body);gap:6px 10px;flex-wrap:wrap}
.aid-shell .project-poster:focus-visible{outline:2px solid #ff3000;outline-offset:-4px}.aid-shell .project-card-body a:focus-visible,.aid-shell .client-order-content a:focus-visible{outline:2px solid #ff3000;outline-offset:3px}
@media(max-width:1180px){.aid-shell .client-orders,.aid-shell .home-project-list,.aid-shell .poster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
@media(max-width:900px){.aid-shell .client-orders,.aid-shell .home-project-list,.aid-shell .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.aid-shell .client-orders,.aid-shell .home-project-list,.aid-shell .poster-grid{grid-template-columns:minmax(0,360px);justify-content:center;gap:28px}.poster-index{font-size:110px}.aid-shell .client-order-bottom a{font-size:var(--type-lead)}}
@media(prefers-reduced-motion:no-preference){.project-poster img{transition:filter .2s ease}.home-project:hover .project-poster img,.client-order:hover .project-poster img,.poster-grid article:hover .project-poster img{filter:brightness(1.06)}}

/* Card posters fill the frame (2:3 covers lose a little on the sides instead of showing bands) */
.client-order .project-poster img{object-fit:cover}
/* frame tokens live in _tokens.html; only responsive overrides are declared below */
html{scrollbar-gutter:stable;scrollbar-color:#58667a #171e26}
html body.aid-shell>main,html body.aid-shell:has(#planning)>main,html body.aid-shell>.wrap{width:100%;max-width:var(--workspace-max);margin:0 auto;padding:32px var(--page-gutter) 64px;min-width:0}
html body.aid-shell .people-screen,html body.aid-shell .people-screen:has(#create-account),html body.aid-shell .people-screen:has(.people-edit),html body.aid-shell .client-home{max-width:none;width:100%;margin:0}
html body.aid-shell .people-screen .page-heading,html body.aid-shell .team-heading{margin:0 0 24px}
html body.aid-shell .people-screen .fields{gap:20px 24px;margin:20px 0}
html body.aid-shell .people-screen .checks{gap:0 24px}
.project-choice{min-width:0;margin:0}
.project-choice>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:10px 12px;min-height:44px;border:1px solid var(--line2);border-radius:var(--r-m);list-style:none}
.project-choice>summary::-webkit-details-marker{display:none}
.project-choice>summary svg{width:18px;height:18px;flex:none;transition:transform .15s}
.project-choice[open]>summary svg{transform:rotate(180deg)}
.project-choice-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0 8px}
.project-choice-tools input[type=search]{flex:1 1 200px;min-width:0;width:auto}
.project-choice .project-choice-tools label{display:flex;gap:8px;align-items:center;font-size:var(--type-body);white-space:nowrap}
.project-choice .checks{max-height:260px;overflow:auto}
.project-choice-count{color:var(--muted);font-size:var(--type-body);margin-left:auto;white-space:nowrap}
.project-choice-empty{color:var(--muted);margin:16px 0}
/* Shared proportions for the two document shells. Specialized media/canvas
   controls keep their own geometry; page/forms/navigation use this scale. */
html body.aid-shell h1,html body.aid-shell:has(#planning) .team-heading h1{font-size:var(--type-h1);line-height:1.2;font-weight:600;letter-spacing:-.025em;text-wrap:balance}
html body.aid-shell :is(.page-heading,.team-heading){min-height:44px;gap:16px 24px;margin-bottom:24px}
html body.aid-shell :is(.section-heading,.sec,.client-section-head) h2{font-size:var(--type-section);line-height:1.3;letter-spacing:-.02em}
html body.aid-shell :is(.panel,.card){padding:24px}
html body.aid-shell .people-screen #create-account{padding:0}
html body.aid-shell :is(.fields label,.field label,form>label:not(.check):not(.row)){font-size:var(--type-label);line-height:1.45;font-weight:500}
html body.aid-shell .fields label{gap:var(--field-gap);min-width:0}
html body.aid-shell .field{gap:var(--field-gap)}
html body.aid-shell .field label{margin:0}
html body.aid-shell form>label:not(.check):not(.row){display:grid;gap:var(--field-gap)}
html body.aid-shell form.project-filter{align-items:flex-end}
html body.aid-shell form.project-filter>label{display:flex;align-items:center;gap:12px;font-weight:400}
html body.aid-shell input[type=search]{min-height:44px;padding:10px 12px;font-size:var(--type-lead);line-height:22px}
html body.aid-shell :is(.fields,.field,form>label) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=color]),select){min-height:var(--control-height);padding:10px 12px;font-size:var(--type-lead);line-height:22px;font-weight:400;border-radius:var(--r-m)}
html body.aid-shell :is(.fields,.field,form>label) textarea{font-size:var(--type-lead);line-height:1.5;font-weight:400;border-radius:var(--r-m)}
html body.aid-shell :is(.people-screen,.panel) legend{font-size:var(--type-lead);line-height:1.5;font-weight:600;margin-bottom:8px}
html body.aid-shell legend .ui-info{margin:0;vertical-align:middle}
html body.aid-shell form>.fields+button{margin-top:16px}
html body.aid-shell :is(.people-screen #create-account>form,.people-screen .people-edit){max-width:var(--form-max)}
html body.aid-shell .people-screen fieldset{margin:24px 0}
html body.aid-shell .people-screen fieldset>.fields:first-of-type{margin-top:8px;margin-bottom:12px}
html body.aid-shell .people-screen .actions{margin-top:24px}
html body.aid-shell .people-screen :is(.people-more,.ui-help){padding:12px 0;margin:16px 0;max-width:none}
html body.aid-shell .people-screen .ui-help>summary{padding:8px 0}
html body.aid-shell .employee-row{min-height:80px}
html body.aid-shell .employee-name strong{font-size:var(--type-lead);line-height:1.4}
html body.aid-shell .employee-name small{font-size:var(--type-label);line-height:1.4}
html body.aid-shell .employee-status{max-width:40%;overflow-wrap:anywhere}
html body.aid-shell .team-heading .calendar-assign{min-height:var(--control-height);padding:10px 16px;font-size:var(--type-label);line-height:22px;border-radius:var(--r-m)}
html body.aid-shell .clean-planner .plan-dates{gap:12px;margin-bottom:16px}
html body.aid-shell .clean-planner .plan-grid-head{height:56px}
html body.aid-shell .clean-planner .plan-owner-identity strong{font-size:var(--type-lead);line-height:1.4}
html body.aid-shell .clean-planner .plan-owner-department{margin-top:4px}
html body.aid-shell .clean-planner .plan-person-identity{padding-block:16px}
html body.aid-shell .clean-planner .plan-person-lanes{padding-block:8px}
html body.aid-shell .clean-planner .plan-person-block{margin-top:8px}
html body.aid-shell .clean-planner .plan-person-block:first-of-type{margin-top:0}
html body.aid-shell .clean-planner .plan-person-block.is-idle .plan-track{min-height:64px}
html body.aid-shell dialog{overscroll-behavior:contain}
/* Sidebar: equal link targets, deliberate section gaps, readable account tools. */
html body.aid-shell>header.aid-nav{padding:24px 16px 16px}
html body.aid-shell .aid-nav .brand{font-size:var(--type-page);line-height:1.3;letter-spacing:-.03em;margin-bottom:24px}
html body.aid-shell .aid-nav .nav-links{min-height:0;gap:2px}
html body.aid-shell .aid-nav .nav-links a{font-size:var(--type-label);line-height:20px;min-height:44px;white-space:normal;overflow-wrap:anywhere}
html body.aid-shell .aid-nav .nav-section{font-size:var(--type-meta);line-height:20px;padding:16px 12px 8px}
html body.aid-shell .aid-nav .nav-client-heading{margin-top:8px}
html body.aid-shell .aid-nav .nav-client-heading .nav-section{padding:0}
html body.aid-shell .aid-nav .nav-client-list{margin-bottom:0}
html body.aid-shell .aid-nav .nav-more{margin-top:16px;padding-top:8px}
html body.aid-shell .aid-nav .nav-more summary{font-size:var(--type-label);line-height:20px}
html body.aid-shell .aid-nav .nav-account{margin-top:16px;padding:16px 8px 0}
html body.aid-shell .aid-nav .nav-identity{min-height:44px}
html body.aid-shell .aid-nav .nav-identity b{font-size:var(--type-label)}
html body.aid-shell .aid-nav :is(.nav-identity span,.role-preview-switch label){font-size:var(--type-meta);line-height:1.4}
html body.aid-shell .aid-nav .nav-account .role-preview-switch{margin:8px 0;gap:4px}
html body.aid-shell .aid-nav .nav-account .role-preview-switch select{min-height:44px;font-size:var(--type-label)}
html body.aid-shell .aid-nav .nav-account .language-switch{padding:0;margin:8px 0;font-size:var(--type-meta);gap:4px}
html body.aid-shell .aid-nav .nav-account .language-switch button{min-height:40px;padding:6px;font-size:var(--type-meta)}
html body.aid-shell .aid-nav .nav-account>form:last-child{margin:8px 0 0 42px}
html body.aid-shell .aid-nav .nav-account>form:last-child button{min-height:40px;font-size:var(--type-meta)}
@media(min-width:901px) and (max-width:1180px){:root{--page-gutter:24px}}
@media(max-width:900px){:root{--page-gutter:16px}html body.aid-shell>main,html body.aid-shell:has(#planning)>main,html body.aid-shell>.wrap{padding-top:24px}}
@media(min-width:901px) and (max-width:1180px){html body.aid-shell>header.aid-nav{padding-inline:12px}html body.aid-shell .aid-nav .nav-account{padding-inline:4px}}
@media(max-width:900px){
 html body.aid-shell>header.aid-nav{padding:12px 16px 0;gap:8px 12px}
 html body.aid-shell .aid-nav .brand{margin:0;font-size:22px}
 html body.aid-shell .aid-nav .nav-links{gap:2px;padding-bottom:8px}
 html body.aid-shell .aid-nav .nav-links a{white-space:nowrap;font-size:var(--type-label);padding:10px}
 html body.aid-shell .aid-nav .nav-client-heading{margin:0}
 html body.aid-shell .aid-nav .nav-more{display:none}
 html body.aid-shell .aid-nav .nav-mobile-more{display:inline-flex;min-height:44px}
 html body.aid-shell .aid-nav .nav-account{padding:0;margin:0 0 0 auto;gap:8px}
 html body.aid-shell .aid-nav .nav-account .language-switch{width:auto;padding:0;margin:0}
 html body.aid-shell .aid-nav .nav-account .language-switch>span{display:none}
 html body.aid-shell .aid-nav .nav-account .language-switch button{min-height:44px;padding:6px}
 html body.aid-shell .aid-nav .nav-account .role-preview-switch{margin:0}
 html body.aid-shell .aid-nav .nav-account .role-preview-switch label{display:none}
 html body.aid-shell .aid-nav .nav-account .role-preview-switch select{font-size:var(--type-meta);min-height:44px}
 html body.aid-shell .aid-nav .nav-account>form:last-child{margin:0}
 html body.aid-shell .aid-nav .nav-account>form:last-child button{min-height:44px}
}
@media(max-width:600px){
 :root{--type-h1:1.625rem}
 html body.aid-shell :is(.panel,.card){padding:16px}
 html body.aid-shell .people-screen #create-account{padding:0}
 html body.aid-shell :is(.page-heading,.team-heading){gap:12px}
 html body.aid-shell .people-screen .fields{gap:16px;margin:16px 0}
 html body.aid-shell form.project-filter>label{flex-direction:column;align-items:flex-start;gap:8px}
 html body.aid-shell .employee-status{max-width:calc(100% - 60px)}
}

/* Сотруднику название проекта — крупным заголовком над разделами: другого
   заголовка на его страницах нет (owner, 2026-09-20). */
/* Возврат один: если он стоит под названием, из полосы разделов убираем (owner, 2026-09-20) */

/* На страницах со своим крупным заголовком имя проекта в полосе разделов не повторяем */
html body.aid-shell .has-project-title .project-tabs-name{display:none}
html body.aid-shell .project-tabs.project-tabs-staff{flex-wrap:wrap;row-gap:6px}
html body.aid-shell .project-tabs.project-tabs-staff .project-tabs-name{flex:1 1 100%;order:-1;font-size:var(--type-page);font-weight:700;letter-spacing:-.02em;color:var(--ink);white-space:normal}
/* Approved palette: exact #FF3000 for small active marks, never a blanket CTA fill. */
/* palette lives in _tokens.html */
.aid-shell ::selection{background:#3a4a63;color:#f3f4f6}
.aid-shell a:focus-visible,.aid-shell button:focus-visible,.aid-shell [tabindex]:focus-visible,
.aid-shell input:focus-visible,.aid-shell select:focus-visible,.aid-shell textarea:focus-visible{
  outline:2px solid var(--focus);outline-offset:3px;
}
.aid-shell button,.aid-shell .btn,.aid-shell .button{background:var(--primary);color:var(--btnfg);border-color:transparent}
.aid-shell button:hover,.aid-shell .btn:hover,.aid-shell .button:hover{background:var(--btnhov);color:var(--btnfg)}
.aid-shell .secondary,.aid-shell button.ghost,.aid-shell .btn.ghost{
  background:var(--chip);border-color:var(--line2);color:var(--ink2);
}
.aid-shell .secondary:hover,.aid-shell button.ghost:hover,.aid-shell .btn.ghost:hover{background:#37414e;color:var(--ink);border-color:#657183}
.aid-shell input[type=checkbox],.aid-shell input[type=radio],.aid-shell input[type=range],.aid-shell progress{accent-color:var(--primary)}
.aid-nav .brand span{color:var(--ink)}.aid-nav .brand::after{content:'';display:inline-block;width:5px;height:5px;margin-left:3px;border-radius:50%;background:var(--accent);vertical-align:baseline}
.aid-nav .brand:has(small)::after{display:none}.aid-nav .brand:has(small) span::after{content:'';display:inline-block;width:5px;height:5px;margin-left:3px;border-radius:50%;background:var(--accent)}
.aid-nav .nav-links a[aria-current=page]{background:#1c232c;color:var(--ink);box-shadow:inset 2px 0 var(--accent)}
.aid-nav .nav-links a[aria-current=page] svg{color:var(--accent)}
.aid-nav .nav-account button,.aid-nav .nav-account button:hover{background:transparent;color:var(--muted);border:0}
.aid-shell .eyebrow,.aid-shell .task-state,.aid-shell .decision-status{color:var(--ink2)}
.aid-shell .person.active{background:var(--bg);color:var(--ink);box-shadow:inset 2px 0 var(--accent)}
.aid-shell .notice,.aid-shell .msg{background:#252e37;border:1px solid #465565;color:var(--ink2)}
.aid-shell .notice.error,.aid-shell .err{background:#39252b;border-color:#88515a;color:#ffd8df}
.aid-shell .home-project-title:hover,.aid-shell .home-service:hover strong,.aid-shell .home-service:hover strong span{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px}
.aid-shell .home-project-actions .open-project{color:var(--ink)}.aid-shell .home-project-status.done::before{background:var(--ok)}
.aid-shell .text-link:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px}
/* Studio-wide production marks: small accents, never flashing beside playback. */
.aid-shell .folder-tabs button,.aid-shell .folder-tabs button:hover{background:transparent;border:0;color:var(--muted)}
.aid-shell .folder-tabs button.active{background:var(--bg);box-shadow:inset 2px 0 var(--accent)}
.aid-shell .folder-tabs button.active strong{color:var(--ink)}.aid-shell .folder-tabs button.active svg{color:var(--accent)}
.aid-shell .folder-tabs button.active small,.aid-shell .folder-tabs button.active .folder-count{color:var(--muted)}
.aid-shell .folder-workspace.drag-over{outline:2px solid var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}
.aid-shell .file-trash,.aid-shell .file-trash:hover{background:transparent;border:0;color:#ffadba;box-shadow:none}
.aid-shell .g-today{background:var(--accent)}.aid-shell .g-today::before{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .stage-approve,.aid-shell .stage-approve:hover{background:var(--chip);color:var(--ink2);border-color:var(--line2)}
.aid-shell .tl-now{background:var(--accent)}.aid-shell .tl-now::after{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
/* Selected states stay neutral. The red line identifies the active item. */
.aid-shell .review-tabs .episode-button,.aid-shell .comment-filters button{background:transparent;color:var(--muted)}
.aid-shell .review-tabs .episode-button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .review-tabs .episode-button[aria-pressed=true] span{color:var(--accent-text)}
.aid-shell .comment-filters button[aria-pressed=true]{background:var(--bg);color:var(--accent-text);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .version-badge{background:var(--chip);color:var(--ink2)}
.aid-shell .comment-time{background:var(--bg);color:var(--accent-text);border:0}
.aid-shell .comment-time:hover{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .review-comment.highlighted{background:var(--bg);box-shadow:inset 2px 0 var(--accent)}
.aid-shell .comment-reply{background:var(--chip);border-left-color:var(--line2)}
.aid-shell .done-label{color:var(--ok)}.aid-shell .review-comment.done>.comment-body{color:var(--muted)}
.aid-shell .reply-target{color:var(--ink2)}
.aid-shell .comment-actions button,.aid-shell .control-row button{background:transparent;border:0;color:var(--muted);box-shadow:none}
.aid-shell .comment-actions button:hover,.aid-shell .control-row button:hover{background:var(--chip);color:var(--ink)}
.aid-shell .annotation-tools button{background:var(--chip);color:var(--ink2);border-color:transparent}
.aid-shell .annotation-tools button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent);border-color:transparent}
.aid-shell .decision-buttons [aria-pressed=true]{outline:0;box-shadow:inset 0 -2px var(--accent)}
.aid-shell .timeline-mark{background:transparent;color:var(--accent)}.aid-shell .timeline-mark.resolved{color:var(--muted)}
.aid-shell .timeline-mark:hover{background:var(--accent-soft);color:var(--accent)}
.aid-shell .range-edge{background:transparent;color:var(--accent);border:0;box-shadow:none}
.aid-shell .range-edge:hover{background:var(--accent-soft);color:var(--accent)}
.aid-shell .draft-range.dragging{filter:none}
/* Legacy project, board and team player share the same visual language. */
.aid-shell .vbar{border:0;background:var(--panel)}
.aid-shell .vbig{width:64px;height:64px;border-radius:50%;padding:0;display:grid;place-items:center}
.aid-shell .vbar .vbtn{background:transparent;color:var(--ink2);border:0}
.aid-shell .vbar .vbtn:hover{background:var(--chip);color:var(--ink)}
.aid-shell .vbar .vbtn.on{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .cbox button[type=submit],.aid-shell .pubbtn,.aid-shell .undobar button{background:var(--primary);color:var(--btnfg);border-color:transparent}
.aid-shell .vchip.on{background:var(--bg);color:var(--ink);border-color:var(--line2);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .vchip.on .pubdot{color:var(--ok)}.aid-shell .vchip.on .vvdel{color:#ffadba}
.aid-shell .ephead{border:0;border-bottom:1px solid var(--line);box-shadow:none;border-radius:0;overflow-y:hidden}
.aid-shell .eptab.on{background:var(--bg)}.aid-shell .eptab.on::after{background:var(--accent);bottom:0;height:2px}
.aid-shell .cm.adm{background:transparent;border-left-color:var(--line2)}
.aid-shell .cm.adm .av,.aid-shell .admchip{background:var(--chip);color:var(--ink2)}
.aid-shell .cm.adm .hd b,.aid-shell .cm.adm .meta .rl{color:var(--ink2)}
.aid-shell .cm.flash{box-shadow:inset 2px 0 var(--accent);background:var(--bg)}
.aid-shell .cm .tc{background:var(--bg);color:var(--accent-text)}
.aid-shell .cvwrap{background:#1a2029;border:0;box-shadow:var(--sh)}
.aid-shell .cv-tools,.aid-shell .cv-zoom,.aid-shell .stickpick,.aid-shell .imenu{background:var(--panel);border-color:var(--line);box-shadow:var(--sh2)}
.aid-shell .cv-tools .tb,.aid-shell .cv-zoom button,.aid-shell .imenu button{background:transparent;color:var(--ink2);border:0}
.aid-shell .cv-tools .tb.on{background:var(--bg);color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
.aid-shell .node.sel{outline:2px solid var(--accent)}.aid-shell .node.note{border-left:2px solid var(--line2)}
.aid-shell .cropbadge{background:var(--bg);color:var(--ink);border-bottom:2px solid var(--accent)}
.aid-shell .cvhelp{background:var(--chip);color:var(--ink2);border-radius:var(--r-m)}
.aid-shell .imenu .del{color:#ffadba}
/* Quiet chrome; the video, discussion and available actions have different weights. */
.aid-icon{display:inline-block;flex:none;vertical-align:middle;pointer-events:none}
.quality-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block:8px;color:var(--muted);font-size:var(--type-body)}.quality-row label{display:flex;align-items:center;gap:10px}.aid-shell .quality-row select{width:auto;min-width:112px;min-height:44px;padding:6px 10px;font-size:var(--type-body)}.quality-status{font-size:var(--type-meta)}
.aid-shell button:has(>.aid-icon){gap:8px}
.aid-shell .vplay [data-icon=pause],.aid-shell #play [data-icon=pause],.aid-shell #mute [data-icon=muted]{display:none}
.aid-shell .vbig [data-icon=pause]{display:none}
.aid-shell .vplay.is-playing [data-icon=play],.aid-shell #play.is-playing [data-icon=play],.aid-shell #mute.is-muted [data-icon=volume],.aid-shell .vbig.is-playing [data-icon=play]{display:none}
.aid-shell .vbig.is-playing [data-icon=pause]{display:block}
.aid-shell .vplay.is-playing [data-icon=pause],.aid-shell #play.is-playing [data-icon=pause],.aid-shell #mute.is-muted [data-icon=muted]{display:block}
.aid-nav .nav-section{padding:22px 12px 8px;font-size:var(--type-caption);line-height:1.4;font-weight:500;letter-spacing:0;color:#8e9aab}
.aid-nav .nav-links a[aria-current=page]{background:#29323f;box-shadow:none;position:relative;font-weight:600}
.aid-nav .nav-links a[aria-current=page]::after{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent);margin-left:auto;flex:none}
.aid-shell .ephead{gap:6px;background:transparent;padding:0 0 12px;border:0}
.aid-shell .eptab{display:grid;grid-template-columns:auto minmax(70px,1fr) auto;grid-template-rows:auto auto;gap:3px 12px;padding:12px 16px;min-height:68px;border:0;border-radius:var(--r-m);background:transparent}
.aid-shell .eptab .n{grid-row:1 / 3;font-size:var(--type-lead);color:var(--muted)}
.aid-shell .eptab b{grid-column:2;font-size:var(--type-lead);line-height:1.4;color:var(--ink)}
.aid-shell .eptab>.mono{grid-column:2;grid-row:2;font-size:var(--type-caption)!important}
.aid-shell .eptab.on{background:#29323f}.aid-shell .eptab.on::after{left:16px;right:16px;height:2px}
.aid-shell .eptab .tabcnt,.aid-shell .eptab.on .tabcnt{grid-column:3;grid-row:1 / 3;display:flex;align-items:center;gap:6px;padding:0 0 0 12px;background:transparent;color:var(--muted);border-radius:0;font-size:var(--type-meta);font-weight:500}
.aid-shell .epwrap{border:0;border-radius:var(--r-l);background:transparent;box-shadow:none;gap:24px}
.aid-shell .epplayer{border:0;background:#131820;border-radius:var(--r-l);padding:20px;gap:12px;box-shadow:var(--sh-card)}
.aid-shell .epcol{background:#252e3a;border:0;border-radius:var(--r-l);overflow:hidden}
.aid-shell .epcol h4{padding:20px;align-items:center;border-bottom:1px solid #3a4555;background:transparent}
.aid-shell .epcol .discussion-title{font-size:18px;line-height:1.4;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.aid-shell .discussion-title small{display:block;margin-top:3px;font-size:var(--type-meta);letter-spacing:0;font-weight:400;color:var(--muted)}
.aid-shell .epcol .ccount{font-size:var(--type-meta);color:var(--muted)}
.aid-shell .epcol .cbox{background:#252e3a;padding:20px;border-top:1px solid #3a4555}
.aid-shell .vbar{background:transparent;padding:4px 0;gap:8px;border:0;border-radius:0}
.aid-shell .vbar .vbtn{width:44px;height:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:var(--r-s)}
.aid-shell .vbar .vplay{background:#e7e9ed;color:#171c24}.aid-shell .vbar .vplay:hover{background:white;color:#171c24}
.aid-shell .vtools{display:flex;gap:4px;align-items:center;margin-left:auto;max-width:100%}
.aid-shell .vbar .vcmt{width:auto;padding:0 12px;gap:8px}
.aid-shell .vbar .vbtn.on{background:#29323f;color:var(--ink);box-shadow:none}
.aid-shell .vbar .vbtn.on svg{color:var(--accent)}
.aid-shell .vtool-label{font-size:var(--type-meta);font-weight:500}.aid-shell .vtime{font-variant-numeric:tabular-nums;font-size:var(--type-meta);margin-left:4px}
.aid-shell .vtimeline-caption{padding-inline:0}.aid-shell .vrhint{font-size:var(--type-caption);line-height:1.5;color:#98a3b3}
.aid-shell .vversions{gap:8px;padding-top:16px;margin-top:8px;border-top:1px solid #303b49}
.aid-shell .vversions>.hint2{font-size:var(--type-meta);margin-right:8px!important}
.aid-shell .vversion{display:inline-flex;align-items:center;gap:2px}
.aid-shell .vchip,.aid-shell .vchip.pub{border:0;border-bottom:2px solid transparent;border-radius:var(--r-s) var(--r-s) 0 0;min-height:44px;padding:8px 12px;background:transparent;color:var(--muted);font-size:var(--type-body);box-shadow:none;gap:8px}
.aid-shell .vchip:hover{background:#242e3a;color:var(--ink)}
.aid-shell .vchip.on{background:#303b49;color:var(--ink);border-color:var(--accent);box-shadow:none}
.aid-shell .version-client{font-size:var(--type-caption);color:#9edbc3;font-weight:400}
.aid-shell .vvdel,.aid-shell .vvdel:hover{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:var(--r-s);background:transparent;color:var(--muted);box-shadow:none;transform:none}
.aid-shell .vvdel:hover{background:#422b34;color:#ffc2cd}
.aid-shell .cbox .tchip,.aid-shell #take-time{display:inline-flex;gap:8px;background:transparent;color:var(--ink2);border:0;border-radius:var(--r-s);padding:4px 8px;font-variant-numeric:tabular-nums}
.aid-shell .uprow .upbtn{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--muted);border-color:#3b4655}
.aid-shell .uprow .upbtn:hover{background:#242e3a;color:var(--ink)}
.aid-shell .video-shell #big-play{display:grid;place-items:center;padding:0}
.aid-shell .annotation-tools button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.aid-shell .review-discussion,.aid-shell .review-composer{background:#252e3a}
.aid-shell .discussion-heading h2{font-size:var(--type-title);line-height:1.4}.aid-shell .discussion-heading h2 span{display:block;margin:3px 0 0;font-size:var(--type-meta)}
.aid-shell .discussion-heading #refresh-review{background:transparent;color:var(--muted);border:0;padding:10px}
.aid-shell .review-player{background:#131820;border-radius:var(--r-l);padding:20px}
.aid-shell .epwrap.on.nocm .epcol{display:none}
.aid-shell .epwrap:fullscreen,.aid-shell .epwrap:-webkit-full-screen{gap:0;border-radius:0}
.aid-shell .epwrap:fullscreen .epplayer,.aid-shell .epwrap:-webkit-full-screen .epplayer{padding:0;border-radius:0}
@media(prefers-reduced-motion:no-preference){.aid-shell .vbtn,.aid-shell .vchip,.aid-shell .eptab{transition:background .16s ease,color .16s ease}.aid-shell .vbtn:active{transform:translateY(1px)}}
@media(max-width:1180px){.aid-shell .vtool-label{display:none}.aid-shell .vbar .vcmt{width:44px;padding:0}}
@media(max-width:900px){.aid-nav .nav-section{display:none}.aid-nav .nav-links a[aria-current=page]{box-shadow:inset 0 -2px var(--accent)}.aid-nav .nav-links a[aria-current=page]::after{display:none}}
@media(max-width:900px){.aid-shell .epwrap{gap:18px}.aid-shell .epplayer,.aid-shell .review-player{padding:14px}.aid-shell .epcol h4,.aid-shell .epcol .cbox{padding:16px}.aid-shell .vtools{gap:0}.aid-shell .vbar{gap:4px}.aid-shell .vversions{gap:4px}.aid-shell .vversions>.hint2{flex:0 0 100%;margin-bottom:4px}.aid-shell .vtime{font-size:var(--type-caption)}.aid-shell .eptab{min-width:180px}}
.stage-approvals{margin:24px 0;border-block:1px solid var(--line);padding:16px 0}.stage-approvals>summary{min-height:44px;cursor:pointer;font-size:var(--type-lead);font-weight:600;display:list-item;list-style-position:inside}.stage-approvals>summary span{font-size:var(--type-body);font-weight:400;color:var(--muted);margin-left:16px}.stage-approvals>.pn{margin-top:12px}.project-inline-review{margin:28px 0 36px}
body.aid-shell .review-shell{align-items:stretch}body.aid-shell .review-discussion{align-self:stretch;max-height:none;min-height:0}body.aid-shell .review-comments{min-height:0;flex:1;overflow-y:auto}body.aid-shell .review-discussion .review-composer{margin-top:auto}body.aid-shell .close-fullscreen-discussion{display:none}body.player-expanded{overflow:hidden}
/* Full-screen is a viewport-sized WORKSPACE. Controls consume their actual
   height; the video uses only the remaining space, never an estimated 110px. */
body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded){position:fixed;inset:var(--player-top,0) 0 auto;z-index:10000;width:100%;height:var(--player-height,100dvh);max-height:var(--player-height,100dvh);margin:0;padding:0;border:0;border-radius:0;background:#10151d;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,32%);grid-template-rows:minmax(0,1fr);gap:0;isolation:isolate}
body.aid-shell :is(.epwrap,.review-shell).is-expanded{width:100vw}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded).nocm,body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded).discussion-closed{grid-template-columns:minmax(0,1fr)}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{height:100%;min-height:0;display:flex;flex-direction:column;align-self:stretch;padding:0;gap:0;overflow:hidden}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{display:grid;grid-template-rows:minmax(0,1fr) auto;flex:1;min-height:0;height:auto;gap:0}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap{width:100%;height:100%;min-height:0;max-height:100%;aspect-ratio:auto;margin:0;border-radius:0;flex:auto;background:#0b1016}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vbar{padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));margin:0;flex:none;background:#0b1016}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.pubinfo,.vversions,.pubrow2,.uprow,.pullrow,.quality-row){display:none}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vdrawbar[style*="flex"]{display:flex;padding:8px 12px;margin:0;flex:none;background:#202936}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vdrawbar .hint2{display:none}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vtimeline-caption{display:none}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vmarks{max-height:56px}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vbtn.vcmt{display:inline-flex;width:auto;padding-inline:12px;gap:8px}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vtool-label{display:inline;font-size:var(--type-body)}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{height:100%;min-height:0;border-radius:0;overflow:hidden;display:flex;flex-direction:column}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded).nocm .epcol{display:none}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .cmts{min-height:0;max-height:none;flex:1;overflow:auto}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .cbox{flex:none;padding:14px}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .cbtext{min-height:80px;max-height:25dvh}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-player{height:100%;min-height:0;display:flex;flex-direction:column;gap:0;border-radius:0;padding:12px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));overflow:hidden}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .video-shell{width:100%;height:auto;max-width:none;min-height:0;flex:1;aspect-ratio:auto;border-radius:0;margin:0}
/* Собранный стол (desk-ready) кладёт сцену в ряд с выравниванием по центру: высота auto у кадра без потока (видео absolute)
   давала 0 px — клиент в полном экране видел чёрный экран на любом устройстве (владелец, 11.10). Кадр тянется на высоту сцены. */
body.aid-shell .review-shell.desk-ready:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage>.video-shell{align-self:stretch}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-controls{flex:none;padding-top:4px}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.decision-panel,.quality-row,.review-topline,.timeline-hint){display:none}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .saved-marks{max-height:56px}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .annotation-tools{margin-top:4px;flex:none}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .draw-tools{margin-top:4px;flex:none}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .draw-tools>span{display:none}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-discussion{height:100%!important;min-height:0;max-height:100%;border-radius:0;display:flex}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded).discussion-closed .review-discussion{display:none}
body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded) .close-fullscreen-discussion{display:inline-flex;align-self:flex-end;min-height:44px;padding:8px 12px;flex:none;background:transparent;color:var(--ink);border:0;font-size:var(--type-body)}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) #fullscreen-comment{display:inline-flex;gap:6px;color:var(--ink)}
body.aid-shell #fullscreen-comment{display:inline-flex;gap:6px;font-size:var(--type-body)}
body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-composer{flex:none;padding-bottom:max(12px,env(safe-area-inset-bottom))}
body.aid-shell #review-alert{margin:8px 14px;flex-shrink:0;max-height:100px;overflow:auto;font-size:var(--type-body)}
@media(max-width:900px){
 body.aid-shell .review-discussion{height:auto!important}body.aid-shell .review-comments{min-height:100px;max-height:50dvh}
 body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:minmax(0,1fr)}
 body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-discussion,body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{position:absolute;inset:auto 0 0;z-index:20;height:min(60dvh,var(--player-height,100dvh))!important;max-height:100%;box-shadow:0 -12px 40px #0009;border-radius:var(--r-l) var(--r-l) 0 0;background:#222c39}
 body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-comments{order:2;min-height:0;max-height:none}
 body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) .review-composer{order:3;min-height:0;flex-shrink:1;overflow:auto;max-height:calc(var(--player-height,100dvh) * .65)}
 body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .cbox{min-height:0;flex-shrink:1;overflow:auto;max-height:calc(var(--player-height,100dvh) * .65)}
 body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) #note-body{min-height:70px;max-height:20dvh}
 body.aid-shell .review-shell:is(:fullscreen,:-webkit-full-screen,.is-expanded) #fullscreen-comment span{display:inline}
 body.aid-shell .stage-approvals>summary span{display:block;margin:4px 0 0 20px}
}
@media(max-width:600px){
 body.aid-shell .control-row{flex-wrap:wrap;row-gap:4px}
 body.aid-shell .client-orders,body.aid-shell .home-project-list,body.aid-shell .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;justify-content:stretch}
 body.aid-shell .client-order,body.aid-shell .home-project,body.aid-shell .poster-grid :is(.ocard,.dcard){border-radius:var(--r-m);touch-action:pan-y pinch-zoom}
 body.aid-shell :is(.project-card-body,.client-order-content){padding:12px;max-height:none;overflow:visible;overscroll-behavior:auto;touch-action:pan-y pinch-zoom}
 body.aid-shell :is(.project-card-body,.client-order-content) h3{font-size:var(--type-lead);line-height:1.2;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 body.aid-shell .client-order-meta{margin-bottom:6px;gap:4px;font-size:var(--type-body)}.aid-shell .client-order-meta>span:last-child{display:none}
 body.aid-shell .client-order-data{font-size:var(--type-body);line-height:1.25}.aid-shell .client-order-data>span:first-child{display:none}
 body.aid-shell .client-order-attention{font-size:var(--type-body);line-height:1.25;margin-top:8px;gap:5px}.aid-shell .client-order-attention svg{flex:none}
 body.aid-shell .client-order-bottom{margin-top:4px;padding:0;border:0}.aid-shell .client-order-bottom>.text-link{display:none}.aid-shell .client-order-bottom a{font-size:var(--type-body);min-height:36px}
 body.aid-shell .poster-brand,body.aid-shell .poster-pending{display:none}body.aid-shell .poster-index{font-size:clamp(42px,13vw,72px);top:22px;left:14px}
 body.aid-shell .poster-index.poster-name{font-size:var(--type-page);right:12px;max-height:80px}body.aid-shell .home-project-title{font-size:var(--type-lead)}
 body.aid-shell .home-project-actions{gap:8px;margin-top:8px;padding-top:0}.aid-shell .home-project-actions a{font-size:var(--type-body);min-height:36px}
 body.aid-shell .poster-grid .ocard .m,body.aid-shell .poster-grid .ocard .row2 .pct,body.aid-shell .poster-grid .ocard .row2 .due{font-size:var(--type-body);line-height:1.3}
 body.aid-shell .poster-grid .ocard .m{display:none}.aid-shell .poster-grid .ocard .row2 .pct{font-size:var(--type-lead)}.aid-shell .project-card-body .pbar{margin:8px 0}
 /* A project heading ABOVE its track: no frozen column consuming phone width.
    All rows retain the same date axis and native horizontal scrolling. */
 body.aid-shell .gantt{max-height:430px;padding-top:0;touch-action:pan-x pan-y pinch-zoom}
 body.aid-shell .g-in{--namew:0px}body.aid-shell .g-corner{display:none}
 body.aid-shell .g-row{display:block;min-height:116px;padding-bottom:26px}
 body.aid-shell .g-name{position:sticky;left:0;width:calc(100vw - 48px);max-width:100%;height:auto;min-height:70px;padding:10px 12px;border-right:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:start;z-index:5}
 body.aid-shell .g-name>a{font-size:var(--type-body);grid-column:1;line-height:1.35}.aid-shell .g-name .m{font-size:var(--type-body);grid-column:2;grid-row:1;margin:0}.aid-shell .g-name .m .stat{font-size:var(--type-body)}
 body.aid-shell .g-episode-count{display:none}body.aid-shell .g-dates{grid-column:1 / -1;font-size:var(--type-body);margin:0;flex-wrap:nowrap}
 body.aid-shell .g-track{height:18px;min-height:18px;margin-top:6px;width:100%}.aid-shell .g-today{z-index:1}
 body.aid-shell .g-months div{padding:8px}.aid-shell .g-ticks{height:26px}.aid-shell .glegend{gap:8px 16px;padding:10px 0;border:0;background:transparent}.aid-shell .glegend span{font-size:var(--type-body);letter-spacing:0;text-transform:none}
 body.aid-shell #fullscreen-comment span{display:none}body.aid-shell .ohero .meta{gap:16px}.aid-shell .project-toolbar{gap:12px}
}
.project-search{display:flex;align-items:center;gap:8px;flex:1 1 240px;max-width:360px}.project-search label{margin:0;flex:1;min-width:0}.project-search input{width:100%}.task-brief{padding:14px 18px;border-left:3px solid var(--accent-text);background:var(--panel);border-radius:var(--r-m);margin-bottom:20px}.task-brief h3{font-size:var(--type-meta);color:var(--muted)}.task-brief p{margin:8px 0}.agenda-person.is-idle{padding-block:6px}.agenda-person.is-idle .agenda-free{display:none}.agenda-person.is-idle header{min-height:44px}
@media(max-width:520px){html body.aid-shell>header{flex-wrap:wrap}html body.aid-shell .phone-menu-toggle{flex-shrink:1;min-width:0;max-width:100%;white-space:normal}}
/* Раскладка стола плеера — стили. Поведение в _player_layout.html.
   Стили уехали в <head>, чтобы страница не показывалась наполовину
   собранной: раньше первый кадр был со старым видом кнопок и списков (owner, 2026-09-20). */
/* A bounded desk with ONE shared footer baseline, not two content-sized columns. */
body.aid-shell :is(.epwrap.on,.review-shell):not(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:minmax(0,1fr) minmax(320px,360px);align-items:stretch;gap:16px}
body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded){height:clamp(620px,calc(100svh - 190px),780px)}
body.aid-shell .desk-ready :is(.epplayer,.review-player){display:flex;flex-direction:column;align-self:stretch;height:100%;min-height:0;padding:0;gap:0;border:0;overflow:hidden;box-sizing:border-box}
body.aid-shell .desk-ready :is(.pubinfo,.review-topline){flex:none;min-height:40px;padding:10px 16px;margin:0;font-size:var(--type-meta);line-height:20px}
body.aid-shell .desk-ready .vstage{display:flex;flex:1 1 0;flex-direction:row;justify-content:center;align-items:center;min-height:0;height:auto;gap:0;padding:8px 16px 16px;overflow:hidden}
body.aid-shell .desk-ready .vwrap{width:auto;height:100%;max-height:100%;max-width:100%;aspect-ratio:9/16;margin:0;flex:none}
body.aid-shell .desk-ready .vwrap video{width:100%;height:100%;max-height:100%;object-fit:contain}
/* кадр клиента теперь тот же .vwrap, что и на столе — размеры берутся из правил выше */
body.aid-shell .desk-ready .epnovid{flex:1 1 0;min-height:0;width:auto;height:auto;aspect-ratio:auto;margin:16px}
body.aid-shell .desk-footer{flex:0 0 var(--desk-footer-height,240px);height:var(--desk-footer-height,240px);min-height:0;border-top:0;padding:12px 16px;box-sizing:border-box;overflow:auto;scrollbar-width:thin}
body.aid-shell .desk-footer-content{display:flex;flex-direction:column;gap:8px;min-width:0}
body.aid-shell .desk-footer .vbar{padding:0;margin:0;gap:4px 8px;flex:none;background:transparent}
body.aid-shell .desk-footer .review-controls{padding:0}
body.aid-shell .desk-footer .vtools{margin-left:auto}
body.aid-shell .desk-footer .vtools{gap:0}
body.aid-shell .desk-footer .vtools .vtool-label{display:none}
body.aid-shell .desk-secondary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
body.aid-shell .desk-secondary .quality-row{margin:0;padding:0;flex:none}
body.aid-shell .desk-secondary .quality-row label{font-size:0;gap:0}
body.aid-shell .desk-secondary .quality-row select{font-size:var(--type-meta);width:96px;min-height:40px;padding:8px}
body.aid-shell .desk-secondary .vversions{flex:1;min-width:100px;margin:0;padding:0;border:0;flex-wrap:nowrap;overflow:auto;gap:4px}
body.aid-shell .desk-secondary .vversions>.hint2{display:none}
body.aid-shell .desk-secondary .vversion{flex:none}
body.aid-shell .desk-secondary .uprow{margin-left:auto}
body.aid-shell .desk-secondary .upbtn{min-height:40px;padding:8px;font-size:var(--type-meta)}
body.aid-shell .desk-secondary .annotation-tools{flex:1;margin:0;padding:0;gap:8px}
body.aid-shell .desk-secondary .annotation-tools button{white-space:nowrap;padding:8px;font-size:var(--type-meta);min-height:40px}
body.aid-shell .desk-footer :is(.pubrow2,.vdrawbar,.draw-tools){margin:0;gap:8px}
body.aid-shell .desk-footer :is(.vdrawbar,.draw-tools){max-height:96px;overflow:auto}
body.aid-shell .desk-footer .decision-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:8px 0 0;max-height:112px;overflow:auto}
body.aid-shell .desk-footer .decision-heading{margin:0;gap:8px}
body.aid-shell .desk-footer .decision-heading h2{display:none}
body.aid-shell .desk-footer .decision-buttons{flex:1;gap:8px}
body.aid-shell .desk-footer .decision-buttons button{min-height:40px;padding:8px}
body.aid-shell .desk-footer #time-options{flex-basis:100%;margin:0}
body.aid-shell .epwrap.on.nocm:not(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:minmax(0,1fr)}
body.aid-shell :is(.epcol,.review-discussion){position:relative;contain:size;min-height:0;height:auto;max-height:none;align-self:stretch;padding-bottom:var(--composer-rest,0px);overflow:hidden;border-radius:0 0 var(--r-l) 0}
body.aid-shell :is(.epcol,.review-discussion)>:not(.cmts,.review-comments,.cbox,.review-composer){flex-shrink:0}
body.aid-shell :is(.cmts,.review-comments){flex:1 1 0;min-height:0;max-height:none;overflow:auto;overscroll-behavior:auto;scroll-padding:16px}
body.aid-shell :is(.epcol .cbox,.review-discussion .review-composer){position:absolute;inset:auto 0 0;margin:0;z-index:5;max-height:var(--composer-limit,75%);overflow:auto;overscroll-behavior:auto;padding:16px;background:transparent;border:0;gap:12px;box-shadow:none}
body.aid-shell :is(.cbox .cbtext,#note-body){display:block;width:100%;min-height:80px;height:80px;max-height:var(--composer-text-max,280px);resize:none;overflow-y:auto;font-size:var(--type-lead);line-height:24px;padding:12px;box-sizing:border-box}
body.aid-shell :is(.cbox .cbtext,#note-body):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.aid-shell :is(.cbox .cbrow,.note-target,.composer-bottom){margin:0;gap:8px;min-height:36px}
body.aid-shell .review-composer{display:flex;flex-direction:column}
body.aid-shell .review-composer .composer-bottom{margin-top:0}
body.aid-shell .epcol h4{margin:0;padding:16px;gap:12px}
body.aid-shell .discussion-heading{padding:16px}
body.aid-shell .epcol .work-comment-filters{padding:8px 16px}
body.aid-shell .cbox .admchip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.aid-shell .handoff-controls{padding:16px;gap:8px;border-bottom:1px solid var(--line)}
body.aid-shell .handoff-destination{width:100%;min-height:44px;font-size:var(--type-body);font-weight:600;padding:10px 12px;background:var(--primary);color:var(--btnfg);border:0;border-radius:var(--r-m);cursor:pointer}
body.aid-shell .handoff-destination option{background:var(--panel);color:var(--ink)}
body.aid-shell .handoff-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
body.aid-shell .handoff-buttons:empty{display:none}
body.aid-shell .handoff-buttons button{width:100%;min-height:44px;line-height:20px;padding:8px;font-size:var(--type-body);white-space:normal}
/* Both tracks keep their geometry even before a draft or a saved mark exists. */
body.aid-shell :is(.vbar .vmarks,.saved-marks){min-height:14px;max-height:none;overflow:visible;scrollbar-width:none}
body.aid-shell :is(.vcomment-track,.draft-track){height:44px;min-height:44px}
body.aid-shell :is(.vcomment-track,.draft-track)[hidden]{display:block!important;visibility:hidden;pointer-events:none}
body.aid-shell .desk-footer .vtimeline-caption{order:0;flex:none;height:36px;min-height:36px;margin:0;flex-wrap:nowrap;align-items:center}
body.aid-shell .desk-footer .vtimeline-caption{gap:0}
body.aid-shell .desk-footer .vrhint.sr-only{min-width:0}
body.aid-shell .desk-footer .vtimeline-caption .vclear-range{width:36px;min-width:36px;padding:0;font-size:var(--type-title)}
body.aid-shell .vclear-range[hidden]{display:block!important;visibility:hidden;pointer-events:none}
body.aid-shell .review-range-help{height:36px;display:flex;align-items:center;margin:0;flex:none}
body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vtimeline-caption,.review-range-help){display:none}
body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){padding-bottom:var(--composer-rest,0px)}
body.aid-shell .desk-ready:is(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{display:flex;flex-direction:row;flex:1 1 0;padding:8px;min-height:0}
body.aid-shell .desk-ready:is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){padding:0;gap:0}
/* Клиентская комната играет по тем же правилам, что и стол команды: разметка у неё
   своя (.video-shell/.review-controls вместо .vwrap/.vbar), поэтому селекторы общие
   (owner, 2026-09-20).
   Side desk (owner sketch, 2026-09-15): the control bar lives INSIDE the video box as a hover overlay, at every width and in
   full screen; on wide screens the vertical video is a tall narrow column and the discussion takes the rest. */
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls){position:absolute;inset:0;z-index:4;display:block;padding:0;margin:0;background:transparent;border:0;line-height:normal;pointer-events:none;opacity:0;transition:opacity .18s ease}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell):is(:hover,:focus-within) :is(.vbar,.review-controls),body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell):is(.is-drawing,.has-draft) :is(.vbar,.review-controls){opacity:1}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls)>*{pointer-events:auto}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vtimeline,.review-timeline){position:absolute;left:0;right:0;bottom:44px;margin:0;padding:10px 12px 4px;background:linear-gradient(180deg,#0b0f1500,#0b0f1580 45%,#0b0f15a6)}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row){position:absolute;left:0;right:0;bottom:0;height:44px;padding:0 12px;display:flex;align-items:center;gap:10px;background:#0b0f15a6}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vleft,.control-row) :is(.vtime,.review-time){color:#e6e9ee;font-variant-numeric:tabular-nums}
/* повтор серии и автопереход — справа в нижней строке, напротив кнопки воспроизведения; включённый — красная черта (owner, 2026-09-22) */
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vright{position:absolute;right:6px;bottom:0;height:44px;display:flex;align-items:center;gap:2px;z-index:1}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vright .vbtn{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:0;border-radius:var(--r-s);background:transparent;box-shadow:none;color:#e6e9ee;opacity:.72}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vright .vbtn:hover{opacity:1;background:#ffffff1a}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vright .vbtn[aria-pressed=true]{opacity:1;color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
/* звук — в нижней строке рядом с воспроизведением, в том же виде, что повтор и автопереход (owner, 2026-09-25) */
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vmute{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:0;border-radius:var(--r-s);background:transparent;box-shadow:none;color:#e6e9ee;opacity:.72}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vmute:hover,body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vmute.is-muted{opacity:1}body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vmute:hover{background:#ffffff1a}
/* громкость поверх кадра — вертикальным ползунком над динамиком при наведении: строка узкая, иначе время уезжает под кнопки справа */
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vsound{position:relative}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vvolume{position:absolute;left:50%;bottom:calc(100% + 52px);z-index:3;box-sizing:border-box;width:104px;max-width:none;height:28px;margin:0;padding:0 8px;transform:translate(-50%,50%) rotate(-90deg);background:#0b0f15d9;border:1px solid #ffffff1a;border-radius:var(--r-s);accent-color:#e6e9ee;opacity:0;pointer-events:none;transition:opacity .15s}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vleft .vsound:is(:hover,:focus-within) .vvolume{opacity:1;pointer-events:auto}
/* в верхней панели (плеер клиента) громкость открывается вниз */
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools .vsound{position:relative;display:flex}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools .vvolume{position:absolute;left:50%;top:calc(100% + 52px);z-index:3;box-sizing:border-box;width:104px;max-width:none;height:28px;margin:0;padding:0 8px;transform:translate(-50%,-50%) rotate(-90deg);background:#0b0f15d9;border:1px solid #ffffff1a;border-radius:var(--r-s);accent-color:#e6e9ee;opacity:0;pointer-events:none;transition:opacity .15s}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools .vsound:is(:hover,:focus-within) .vvolume{opacity:1;pointer-events:auto}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools{position:absolute;top:10px;left:50%;right:auto;transform:translateX(-50%);margin:0;display:flex;align-items:center;gap:2px;padding:4px;background:#0b0f1547;border:1px solid #ffffff1a;border-radius:10px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools .vbtn{color:#e6e9ee}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools .quality-row select{min-height:34px;padding:6px 26px 6px 8px;font-size:var(--type-meta)}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) :is(.vtimeline-caption,.vtool-label,.review-range-help){display:none}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtrack{background:#ffffff40}
/* Комната клиента собрана из тех же частей, что и стол (.vstage/.vwrap/.vbar),
   поэтому размеры и пропорции берутся из общих правил выше (owner, 2026-09-20). */
/* Решение клиента стоит в подвале ровной строкой — там же, где у команды этапы;
   «Ожидает проверки» не пишем, об этом говорят сами кнопки (owner, 2026-09-20). */
body.aid-shell .review-shell.desk-side .decision-panel{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin:0;padding:2px 0;border:0;background:none}
body.aid-shell .review-shell.desk-side .decision-panel :is(.decision-heading,#decision-caption,.decision-status){display:none}
body.aid-shell .review-shell.desk-side .decision-buttons{display:flex;gap:10px;flex:1;min-width:0}
body.aid-shell .review-shell.desk-side .decision-buttons button{flex:1;min-height:40px}
body.aid-shell :is(.epwrap,.review-shell).desk-side .desk-footer .handoff-controls{padding:0;border:0;margin:0}
body.aid-shell :is(.epwrap,.review-shell).desk-side .desk-footer .episode-handoff-destination{width:100%;max-width:none}
/* Сенсор: накладку показывает и прячет касание кадра (класс ставит _ep_js.html), а не
   наведение, которого на телефоне нет. Скрытая накладка не должна ловить касания —
   иначе по кадру попадаешь в невидимые кнопки (owner, 2026-09-20). */
@media(pointer:coarse){
 body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls),
 body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell):is(:hover,:focus-within) :is(.vbar,.review-controls){opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s linear .18s}
 body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell):is(.controls-on,.is-drawing,.has-draft) :is(.vbar,.review-controls){opacity:1;visibility:visible;transition:opacity .18s ease}
 /* Пока накладка открыта, большая кнопка работает паузой: тянуться к маленькой у
    таймлинии на телефоне неудобно (owner, 2026-09-20). */
 html body.aid-shell :is(.vwrap,.video-shell).playing.controls-on .vbig{display:grid}
 html body.aid-shell :is(.vwrap,.video-shell).playing:not(.controls-on) .vbig{display:none}
 /* Ускоренный просмотр по удержанию показывает себя значком «×2» */
 html body.aid-shell :is(.vwrap,.video-shell).is-fast::after{content:'×2';position:absolute;top:12px;right:12px;z-index:6;padding:4px 10px;border-radius:99px;background:#0b0f15b8;color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em;pointer-events:none}
 /* Верхняя группа инструментов держится одной строкой */
 html body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools{flex-wrap:nowrap;max-width:calc(100% - 20px);gap:0;padding:3px}
 html body.aid-shell .vtools .quality-row select{min-width:0;width:auto;max-width:92px}
}
/* the video box is sized by its own width (9:16) at every width; only the column split differs */
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded){height:auto;align-items:stretch}
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{height:auto!important;max-height:none;flex:none;overflow:visible}
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{position:relative;display:block;flex:none;height:auto;padding:0 10px 10px;overflow:visible;border-radius:0;background:transparent}
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap{width:100%;height:auto;max-height:none;aspect-ratio:9/16;margin:0;border-radius:10px}
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap video{width:100%;height:100%;max-height:none}
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer{flex:none!important;height:auto!important;max-height:none;padding:10px 12px 12px;overflow:visible;border-top:0}
/* the comment field always stays at the bottom of the discussion column (owner, 2026-09-15) */
body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer .episode-work-items{gap:6px 12px}
/* Short screens (768px laptops): the stage row stays on one scrollable line so the player and the comment box fit without scrolling. */
@media(max-height:820px){body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer .pipe-chips{flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer .pipe-chips>*{white-space:nowrap;flex:none}}
/* Two columns survive a half-screen laptop window (owner's MacBook, 2026-09-15); phones stack from 640px down. */
@media(min-width:641px){
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:auto minmax(0,1fr)}
 /* The column is sized by width AND by the window height (owner, 2026-09-15): on a 768px laptop the whole player must fit once the desk is scrolled into view. */
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{width:max(280px,min(clamp(320px,33vw,470px),calc((100svh - 330px) * 9 / 16)))}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{height:auto;max-height:none}
}
@media(max-width:640px){
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{width:auto}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{height:560px!important}
}
/* Fullscreen and the expanded view: the desk footer (hand-off, pipeline) leaves the screen; the drawing bar stays when open. */
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer{flex:none;height:auto;max-height:none;padding:0 12px;border-top:0;overflow:visible}
body.aid-shell .epwrap:is(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer :is(.handoff-controls,.episode-work-state){display:none}
/* The navigation is a fixed layer and view transitions make <main> its own stacking context: lift it while the player is expanded. */
body.aid-shell.player-expanded>:is(main,.wrap){position:relative;z-index:200}
/* End of an episode in fullscreen: the «Next episode» card (the browser only moves fullscreen on a click). */
body.aid-shell .vnext{position:absolute;left:0;right:0;bottom:22%;z-index:6;display:flex;justify-content:center;pointer-events:none;line-height:normal}
body.aid-shell .vnext-btn{pointer-events:auto;min-height:48px;padding:12px 24px;border-radius:12px;border:1px solid #ffffff1f;background:#101623d9;color:#fff;font:inherit;font-size:var(--type-title);font-weight:600;letter-spacing:.01em;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:inset 0 -2px 0 var(--accent),0 12px 32px -8px #ff30008c;transition:background .15s ease,transform .15s ease}
body.aid-shell .vnext-btn:hover,body.aid-shell .vnext-btn:focus-visible{background:#182033ee;transform:translateY(-1px);outline:none}
.vwrap>.vnext{position:absolute;left:0;right:0;bottom:22%;z-index:6;display:flex;justify-content:center;pointer-events:none;line-height:normal}
.vwrap>.vnext .vnext-btn{pointer-events:auto;min-height:44px;padding:12px 24px;border-radius:12px;border:1px solid #ffffff1f;background:#101623d9;color:#fff;font:inherit;font-size:var(--type-lead);font-weight:600;cursor:pointer}
.vbtn.vsubs-none{opacity:.35;cursor:not-allowed}
@media(max-width:1180px) and (min-width:641px){body.aid-shell .vtools .vtool-label{display:none}}
@media(max-width:900px){
 body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded){height:auto}
 body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){height:680px;max-height:none}
 body.aid-shell :is(.epwrap.on,.review-shell):not(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:minmax(0,1fr);gap:16px}
 body.aid-shell :is(.epcol,.review-discussion){height:640px!important;max-height:none}
 body.aid-shell :is(.cmts,.review-comments){order:2;min-height:0;max-height:none}
 body.aid-shell :is(.epwrap,.review-shell):is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){height:min(75dvh,var(--player-height,100dvh))!important;max-height:100%}
 body.aid-shell .cbsend button[type=submit]{width:auto;margin-left:auto}
 body.aid-shell .control-row #fullscreen-comment span{display:none}
 body.aid-shell .control-row{flex-wrap:nowrap}
}
/* 641–900px: the phone rules above stay for the review room; the side desk keeps two columns with a narrower video. */
@media(max-width:900px) and (min-width:641px){
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded){grid-template-columns:auto minmax(0,1fr);gap:12px}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{width:max(280px,min(40vw,470px,calc((100svh - 330px) * 9 / 16)));padding:0}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{height:auto!important;max-height:none;border-top:0}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .cmts{max-height:none;min-height:160px;order:0}
 body.aid-shell :is(.epwrap,.review-shell).desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap{width:100%}
}
/* Пока стол не собран, серию не показываем. Сборку делает скрипт в конце страницы:
   он переносит панель управления, поле ввода и передачу под видео. Без этой занавески
   первый кадр показывал старую раскладку, и она на глазах перескакивала (owner, 2026-09-20).
   Если скрипт почему-то не отработал, занавеску снимает таймер ниже. */
html:not(.desk-late) body.aid-shell :is(.epwrap,.review-shell):not(.desk-ready),
html:not(.desk-late) body.aid-shell :is(.epwrap,.review-shell):not(.chat-ready){opacity:0}
body.aid-shell :is(.epwrap,.review-shell).desk-ready.chat-ready{animation:desk-appear 160ms ease-out both}
@keyframes desk-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){body.aid-shell :is(.epwrap,.review-shell).desk-ready{animation:none}}

/* Метка пишущегося комментария — как во Frame.io (owner, 2026-09-22): в момент письма на шкале встаёт точка;
   за точку тянешь вправо — растёт участок с линией и двумя точками по краям; середину можно перенести целиком.
   Пока метка стоит, накладка не прячется (.has-draft). Полоса сохранённых меток — без скроллбара, ряды по 14 px. */
html body.aid-shell .desk-side :is(.vbar .vmarks,.saved-marks){min-height:14px;margin:0!important;overflow:visible!important;scrollbar-width:none}
body.aid-shell .desk-side .vbar .vmarks .vmk{height:14px;min-height:14px;width:14px;min-width:14px;border-radius:4px}
body.aid-shell .desk-side .vbar .vmarks .vmk::before{top:4px;left:calc(50% - 3px);width:6px;height:6px}
body.aid-shell .desk-side .vbar .vmarks .vmk.rng::before{top:5.5px;left:0;right:0;width:auto;height:3px;border-radius:2px}
body.aid-shell .desk-side .saved-marks .timeline-mark{height:14px;min-height:14px}
body.aid-shell .desk-side .saved-marks .timeline-mark i{top:5.5px}
body.aid-shell .desk-side .saved-marks .timeline-mark::after{top:3.5px}
body.aid-shell .desk-side :is(.vcomment-track,.draft-track){height:22px!important;min-height:22px!important;margin:0!important}
body.aid-shell .desk-side :is(.vrange,.draft-range){position:absolute;top:0;height:22px!important;min-width:0;background:transparent;color:var(--accent);cursor:default;touch-action:none;filter:none}
body.aid-shell .desk-side .vrange::before,body.aid-shell .desk-side .range-move i{content:'';position:absolute;left:0;right:0;top:9.5px;height:3px;border-radius:2px;background:var(--accent);box-shadow:0 0 0 1px #0b0f1566;pointer-events:none}
body.aid-shell .desk-side .vrange.pt::before{display:none}
html body.aid-shell .desk-side .vbar .vrange .m,html body.aid-shell .desk-side .vbar .range-move{position:absolute;left:0;right:0;top:0;height:22px;min-height:0;width:auto;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;cursor:grab;border-radius:0;display:block}
html body.aid-shell .desk-side .vbar .vrange.pt .m,html body.aid-shell .desk-side .vbar .draft-range.point .range-move{display:none}
body.aid-shell .desk-side :is(.vrange.drag .m,.draft-range.dragging .range-move){cursor:grabbing}
/* ручки: точка 10 px с тёмным кольцом, зона касания 24 px; над ручкой — время */
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge){position:absolute;top:0;width:24px;min-width:24px;height:22px;min-height:22px;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:ew-resize;z-index:2;color:var(--accent);overflow:visible}
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge)::after{content:'';position:absolute;left:7px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px #0b0f15,0 0 0 3px #ffffff40;transition:transform .12s ease}
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge):is(:hover,:focus-visible)::after,html body.aid-shell .desk-side .vbar :is(.vrange.drag .h,.draft-range.dragging .range-edge)::after{transform:scale(1.3)}
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge)::before{content:attr(data-time);position:absolute;left:50%;bottom:24px;transform:translateX(-50%);padding:2px 6px;border-radius:6px;background:#0b0f15e6;color:#fff;font:600 11px/14px Manrope,sans-serif;letter-spacing:.01em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease}
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge):is(:hover,:focus-visible)::before,html body.aid-shell .desk-side .vbar :is(.vrange.drag .h,.draft-range.dragging .range-edge)::before{opacity:1}
html body.aid-shell .desk-side .vbar :is(.vrange .h.l,.range-edge.start){left:-12px}
html body.aid-shell .desk-side .vbar :is(.vrange .h.r,.range-edge.end){right:-12px}
html body.aid-shell .desk-side .vbar .vrange.pt .h.l{display:none}
/* полоса проигрывания у клиента — как на столе: тонкая линия, светлая пройденная часть, точка 10 px, без рамки (owner, 2026-09-22) */
html body.aid-shell .desk-side .review-controls #review-seek{-webkit-appearance:none;appearance:none;width:100%;height:20px;min-height:20px;margin:0;padding:0;border:0;background:transparent;outline:none!important;box-shadow:none;cursor:pointer}
html body.aid-shell .desk-side .review-controls #review-seek::-webkit-slider-runnable-track{height:2px;border-radius:1px;background:linear-gradient(90deg,#fff 0,#fff var(--p,0%),#ffffff40 var(--p,0%),#ffffff40 100%)}
html body.aid-shell .desk-side .review-controls #review-seek::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;margin-top:-4px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0b0f1580}
html body.aid-shell .desk-side .review-controls #review-seek::-moz-range-track{height:2px;border-radius:1px;background:#ffffff40}
html body.aid-shell .desk-side .review-controls #review-seek::-moz-range-progress{height:2px;border-radius:1px;background:#fff}
html body.aid-shell .desk-side .review-controls #review-seek::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0b0f1580}
html body.aid-shell .desk-side .review-controls #review-seek:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #ff300066}
/* выделенная заметка: на шкале остаётся только её метка, в ленте у неё тонкая красная рамка */
body.aid-shell .desk-side :is(.vbar .vmarks,.saved-marks).is-focus :is(.vmk,.timeline-mark):not(.is-current){display:none}
body.aid-shell .desk-side :is(.vbar .vmarks,.saved-marks) :is(.vmk,.timeline-mark).is-current{filter:drop-shadow(0 0 4px #ff3000aa)}
html body.aid-shell .cmts .cm.is-focus>.bd{box-shadow:0 0 0 1px var(--accent)}
html body.aid-shell .cmts .cm.is-focus:not(:has(>.bd)){box-shadow:0 0 0 1px var(--accent);border-radius:var(--r-m)}
html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge):hover,html body.aid-shell .desk-side .vbar :is(.vrange .h,.range-edge):focus-visible{background:transparent;outline:none}
/* наши субтитры: строки как в файле, без подложки; когда управление поверх кадра — выше шкалы с метками (owner, 2026-09-28) */
.vsubs-layer{position:absolute;left:0;right:0;bottom:11%;z-index:3;display:grid;justify-items:center;gap:0;pointer-events:none;color:#fff;font-weight:600;line-height:1.25;text-align:center;white-space:pre;text-shadow:0 0 2px #000,0 0 4px #000,0 1px 3px #000}
.vsubs-layer[hidden]{display:none}
body.aid-shell :is(.epwrap,.review-shell).desk-side :is(.vwrap,.video-shell) .vsubs-layer,:is(.epwrap,.review-shell,.vwrap,.video-shell):fullscreen .vsubs-layer{bottom:108px}
/* Production desk refinements (owner, 2026-09-14): the frame gets the room the timeline used
   to take, the client status and its action sit together, the discussion column opens with
   its filters, the composer folds to one line and sends with an icon, and the hand-off select
   lives in the player control row. Loaded after _player_layout.html; delete this include
   to roll the desk back. */
/* publication line: status text and its action together, one short row */
html body.aid-shell .desk-ready .publication-bar{justify-content:center;gap:6px 12px;min-height:36px;padding:8px 16px 12px}
html body.aid-shell .publication-bar .pubbtn{margin-left:0}
html body.aid-shell .desk-ready .vstage{padding:4px 16px 8px}
/* footer: the controls take only what they need */
html body.aid-shell .desk-footer{padding:6px 16px 10px}
html body.aid-shell .desk-footer-content{gap:4px}
html body.aid-shell .desk-footer .vbar{gap:2px 8px}
html body.aid-shell :is(.vbar .vmarks,.saved-marks){height:14px!important;min-height:14px;max-height:14px}
html body.aid-shell .vbar .vmarks .vmk{height:14px;min-height:14px}
html body.aid-shell .vbar .vmarks .vmk::before{top:5px}
html body.aid-shell .vbar .vmarks .vmk.rng::before{top:6px;height:2px}
/* the comment range: a hairline with two slim handles */
html body.aid-shell :is(.vcomment-track,.draft-track){height:20px;min-height:20px}
html body.aid-shell .vbar .vrange{height:20px}
html body.aid-shell .vbar .vrange::before{top:9px;height:2px;border-radius:1px}
html body.aid-shell .vbar .vrange .range-part{height:20px;min-height:20px}
html body.aid-shell .vbar .vrange .m{left:12px;right:12px}
html body.aid-shell .vbar .vrange .h{width:24px;min-width:24px}
html body.aid-shell .vbar .vrange .h::after{left:11px;top:5px;width:2px;height:10px;border-radius:1px}
html body.aid-shell .vbar .vrange .h.l{left:-12px}
html body.aid-shell .vbar .vrange .h.r{right:-12px}
html body.aid-shell .vbar .vrange.tight:not(.pt) .h.l{left:-24px}
html body.aid-shell .vbar .vrange.tight:not(.pt) .h.l::after{left:21px}
html body.aid-shell .vbar .vrange.tight:not(.pt) .h.r{right:-24px}
html body.aid-shell .vbar .vrange.tight:not(.pt) .h.r::after{left:1px}
/* playback line */
html body.aid-shell .vbar .vseek{height:20px;margin:0 16px}
html body.aid-shell .vbar .vtrack{top:9px;height:2px}
html body.aid-shell .vprog::after{width:8px;height:8px;margin-top:-4px;right:-4px}
/* control row */
html body.aid-shell .vbar .vbtn{width:36px;height:36px;min-height:36px}
html body.aid-shell .vbar .vcmt{width:auto}
html body.aid-shell .desk-footer .quality-row select{min-height:32px;width:auto;padding:4px 8px;font-size:var(--type-meta)}
html body.aid-shell .desk-footer .vtimeline-caption{height:32px;min-height:32px}
html body.aid-shell .desk-footer .vtimeline-caption .vclear-range{width:32px;min-width:32px;min-height:32px}
html body.aid-shell .desk-secondary .upbtn{min-height:32px;padding:4px 10px}
html body.aid-shell .desk-footer .episode-work-state{padding-top:2px;border-top:1px solid #ffffff0c}
html body.aid-shell .episode-work-item,html body.aid-shell .episode-work-history summary{min-height:28px;font-size:var(--type-meta)}
/* hand-off: in the middle of the control row */
html body.aid-shell .desk-footer .vbar .handoff-controls{display:flex;flex:0 1 auto;order:0;margin:0 auto;padding:0;border:0;background:transparent}
html body.aid-shell .desk-footer .vbar .episode-handoff-destination{appearance:none;-webkit-appearance:none;width:auto;min-width:148px;max-width:220px;min-height:34px;padding:4px 30px 4px 12px;font-size:var(--type-meta);font-weight:600;color:var(--ink);border:1px solid #ffffff14;border-radius:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c7cfda' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center/14px,linear-gradient(180deg,#313b49,#28313d);box-shadow:var(--edge-light);cursor:pointer;transition:border-color 150ms}
html body.aid-shell .desk-footer .vbar .episode-handoff-destination:hover{border-color:#ffffff2a}
/* discussion column: filters first, no heading */
html body.aid-shell .epcol h4.discussion-head{padding:8px 16px 8px 52px;gap:8px;border-bottom:1px solid #ffffff10;background:linear-gradient(180deg,#ffffff06,#ffffff00)}
html body.aid-shell .epcol h4.discussion-head .h4r{flex:1 1 auto;min-width:0;gap:8px}
html body.aid-shell .epcol h4.discussion-head select{flex:1 1 0;min-width:0;max-width:none;min-height:34px;padding:4px 26px 4px 10px;font-size:var(--type-meta);border-radius:8px;border:1px solid #ffffff14;background:linear-gradient(180deg,#2c3542,#252e3a);color:var(--ink);letter-spacing:0}
html body.aid-shell .epcol h4.discussion-head .ccount{flex:none;min-width:22px;height:22px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;background:#ffffff10;font-size:var(--type-caption);font-weight:700;color:var(--ink2);text-align:center}
html body.aid-shell .epcol .comment-audience{padding:6px 16px;font-size:var(--type-caption);color:#8f9aab}
html body.aid-shell .epcol .pullrow{padding:10px 16px 2px}
html body.aid-shell .pullbtn.is-quiet{opacity:.72}html body.aid-shell .pullbtn.is-quiet:hover{opacity:1}
html body.aid-shell .cmts{padding-bottom:24px}
/* composer: dissolves out of the list, folds to one line, sends with the icon */
html body.aid-shell .epcol .cbox{padding:8px 26px 12px 52px;gap:0;box-shadow:none;background:transparent}
html body.aid-shell .cbox .cbhead{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:26px;padding:2px 0 4px}
html body.aid-shell .cbox .cbhead .replying{flex:1 1 auto;min-width:0;padding:0;margin:0;font-size:var(--type-caption)}
html body.aid-shell .cbox .cbfold{width:28px;height:22px;min-height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:#8f9aab;display:inline-flex;align-items:center;justify-content:center;box-shadow:none}
html body.aid-shell .cbox .cbfold:hover{background:#ffffff10;color:var(--ink)}
html body.aid-shell .cbox .cbfold svg{transition:transform 220ms var(--ease)}
html body.aid-shell .cbox.is-collapsed .cbfold svg{transform:rotate(180deg)}
html body.aid-shell .cbox.is-collapsed .cbfield,html body.aid-shell .cbox.is-collapsed .cbhead .replying{display:none}
html body.aid-shell .cbox.is-collapsed{padding-bottom:2px}
html body.aid-shell .cbox .cbfield{position:relative;display:block}
html body.aid-shell .cbox .cbtext{padding:10px 46px 12px 12px!important;font-size:var(--type-body)!important;line-height:22px!important;border:1px solid #ffffff10;border-radius:10px;background:#1a2028;color:var(--ink);box-shadow:inset 0 1px 0 #00000040;transition:border-color 150ms,box-shadow 150ms}
html body.aid-shell .cbox .cbtext:focus,html body.aid-shell .cbox .cbtext:focus-visible{outline:0!important;border-color:#ff300070;box-shadow:inset 0 1px 0 #00000040,0 0 0 3px #ff300022}
html body.aid-shell .cbox .cbsend-icon{position:absolute;right:8px;bottom:8px;width:30px;height:30px;min-height:30px;padding:0;border:0;border-radius:50%;background:#ffffff10;color:#c7cfda;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;transition:background 150ms,color 150ms,transform 90ms}
html body.aid-shell .cbox .cbsend-icon svg{margin-left:-1px}
html body.aid-shell .cbox .cbsend-icon:hover{background:var(--accent);color:#fff}
html body.aid-shell .cbox .cbsend-icon:disabled{opacity:.5}
html body.aid-shell .cbox .cbmeta{position:absolute;left:10px;bottom:9px;display:flex;align-items:center;gap:8px;pointer-events:none}
html body.aid-shell .cbox .tchip[hidden]{display:none}
html body.aid-shell .cbox .pend{margin:0;font-size:var(--type-caption);line-height:18px;padding:0 8px;border-radius:99px;background:#f3bd6c22;color:#f3bd6c}
@media(max-width:900px){html body.aid-shell .desk-footer .vbar .handoff-controls{flex:1 0 100%;order:1;margin:4px 0 0}html body.aid-shell .desk-footer .vbar .episode-handoff-destination{width:100%;max-width:none}}
/* Колода версий серии — стили. Поведение в _episode_deck.html.
   Стили уехали в <head>, чтобы страница не показывалась наполовину
   собранной: раньше первый кадр был со старым видом кнопок и списков (owner, 2026-09-20). */
body.aid-shell :is(.ephead,.review-tabs){display:flex;align-items:flex-start;gap:12px;margin:0 0 12px;padding:4px 2px 16px;border:0;overflow-x:auto;overflow-y:hidden;background:transparent;scrollbar-width:thin}
.episode-card{position:relative;flex:0 0 auto;min-width:0}
body.aid-shell :is(.eptab.episode-tab,.episode-button.episode-tab){display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;width:auto;min-width:132px;min-height:48px;max-width:none;margin:0;padding:12px 16px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:16px;line-height:24px;position:relative;z-index:1}
body.aid-shell :is(.eptab.episode-tab,.episode-button.episode-tab):hover{background:var(--chip)}
body.aid-shell :is(.eptab.episode-tab.on,.episode-button.episode-tab[aria-pressed=true]){background:var(--panel);color:var(--ink)}
body.aid-shell .episode-tab b{font-size:16px;line-height:24px;font-weight:600;white-space:nowrap}
body.aid-shell .episode-tab .episode-current{font-size:14px;line-height:24px;font-weight:500;letter-spacing:0;color:var(--muted);margin:0;white-space:nowrap}
body.aid-shell .episode-tab .episode-current::before{content:'·';margin-right:10px}
body.aid-shell .eptab.episode-tab::after{bottom:0;left:16px;right:16px;height:2px}
body.aid-shell :is(.episode-tab .tabcnt,.ccount,#comment-count){position:static;display:inline-flex;align-items:center;justify-content:center;flex:none;gap:5px;min-width:28px;min-height:28px;box-sizing:border-box;padding:4px 8px;margin:0;border:0;border-radius:8px;background:#ffb18a;color:#2b190f;font-family:inherit;font-size:14px;font-weight:700;line-height:20px;letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center}
body.aid-shell .episode-tab .tabcnt [data-comment-count]{font:inherit;letter-spacing:0;color:inherit;margin:0}
body.aid-shell .episode-tab .tabcnt svg{width:15px;height:15px}
body.aid-shell :is(.ccount,#comment-count)[data-empty=true]{background:var(--chip);color:var(--muted)}
body.aid-shell .episode-tab .tabcnt[hidden]{display:none}
body.aid-shell .discussion-heading h2{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.episode-peek{position:absolute;left:12px;right:12px;bottom:-7px;height:12px;border-radius:0 0 6px 6px;background:#364151;cursor:pointer}
.episode-card.deck-open .episode-peek{background:#4b596b}
body.aid-shell .episode-deck{position:fixed;inset:auto;margin:0;padding:8px;width:max-content;max-width:calc(100vw - 24px);max-height:min(300px,60vh);overflow:auto;border:1px solid var(--line2);border-radius:0 8px 8px 8px;background:var(--panel);color:var(--ink);z-index:120}
.episode-deck:not(:popover-open):not(.deck-fallback-open){display:none}
body.aid-shell .episode-deck .episode-version-row{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:0;padding:0;border:0;overflow-x:auto;min-width:0;max-width:100%}
body.aid-shell .episode-deck :is(.vversion,.episode-add){flex:0 0 auto}
body.aid-shell .episode-deck .vchip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:48px;height:44px;min-height:44px;margin:0;padding:8px 12px;border:0;border-radius:6px;background:var(--chip);color:var(--ink);font-size:14px;font-weight:600}
body.aid-shell .episode-deck .vchip.on{background:#465267;color:#fff;box-shadow:inset 0 -2px var(--accent)}
body.aid-shell .episode-deck .vchip:hover{background:#4c5a6f}
.version-published-dot{width:5px;height:5px;flex:none;border-radius:50%;background:#83e8c0}
body.aid-shell .episode-deck .episode-add{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:1px dashed #8a99af;border-radius:6px;background:var(--panel);color:var(--ink);position:sticky;right:0}
body.aid-shell .episode-deck .episode-add:hover{background:var(--primary);color:var(--btnfg);border-style:solid}
body.aid-shell .episode-deck .episode-add:disabled{opacity:.5;cursor:wait}
/* «···» — тонкая кнопка без плашки: это не действие, а переключатель режима */
body.aid-shell .episode-deck .episode-version-manage{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
body.aid-shell .episode-deck .episode-version-manage:hover{color:var(--ink);background:#ffffff10}
body.aid-shell .episode-deck .episode-version-manage[aria-pressed=true]{color:#ff8a7a}
/* корзинка появляется ПОД своей версией и не закрывает номер: только красные линии */
body.aid-shell .episode-deck .vversion{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px}
body.aid-shell .episode-deck .vvdel{display:none;order:2;position:static;width:28px;height:22px;min-height:0;margin:0;padding:0;border:0;border-radius:6px;color:#ff8a7a;cursor:pointer}
body.aid-shell .episode-deck .vvdel:hover{color:#fff}
body.aid-shell .episode-deck.deleting .vvdel{display:inline-flex;align-items:center;justify-content:center}
body.aid-shell .episode-deck :is(button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
body.aid-shell .desk-ready :is(.vtools,.control-row) .quality-row{position:relative;flex:none;margin:0;padding:0;gap:4px;align-items:center}
body.aid-shell .desk-ready :is(.vtools,.control-row) .quality-row label{font-size:0;gap:0;margin:0}
body.aid-shell .desk-ready :is(.vtools,.control-row) .quality-row select{width:88px;min-width:88px;min-height:44px;height:44px;margin:0;padding:8px;font-size:13px;background:var(--field)}
body.aid-shell .quality-row select{color-scheme:dark;color:var(--ink);background:var(--field)}
body.aid-shell .quality-row select option{color:var(--ink);background:var(--field)}
body.aid-shell .desk-ready :is(.vtools,.control-row) .quality-status:not(:empty){position:absolute;bottom:calc(100% + 8px);right:0;z-index:8;width:max-content;max-width:260px;padding:8px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:13px;line-height:20px}
body.aid-shell .desk-ready .vtools{gap:4px}
body.aid-shell .desk-secondary:empty{display:none}
body.aid-shell .desk-ready:is(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vtools,.control-row) .quality-row{display:flex}
@media(max-width:600px){body.aid-shell .eptab.episode-tab{padding:10px 12px;min-width:124px}body.aid-shell .desk-ready .vtools{flex:0 0 100%;flex-wrap:wrap;justify-content:flex-end}body.aid-shell .desk-ready .vtools .quality-row{margin-right:auto}body.aid-shell .desk-ready .control-row{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){.episode-peek{transition:background .16s ease}.episode-tab{transition:background .16s ease}
 /* появление и уход колоды рисует _episode_deck.html: одно движение, версии
    проявляются по порядку и уходят в обратном (owner, 2026-09-20) */}
/* Телефонный вид — стили. Поведение в _mobile_experience.html.
   Стили уехали в <head>, чтобы страница не показывалась наполовину
   собранной: раньше первый кадр был со старым видом кнопок и списков (owner, 2026-09-20). */
.phone-menu-toggle,.phone-menu,.plan-mobile-tools,.plan-agenda,.client-schedule-toggle{display:none}
@media(max-width:900px){
 html{scroll-padding-top:16px}
 html body.aid-shell{padding-left:0}
 html body.aid-shell>header.aid-nav.phone-nav-ready{position:relative;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;min-height:64px;height:auto;width:100%;padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));gap:12px}
 html body.aid-shell .aid-nav .phone-menu-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;margin-left:auto;font-size:var(--type-body);background:var(--chip);color:var(--ink);border:0}
 html body.aid-shell .aid-nav .phone-menu{inset:0 0 0 auto;margin:0;width:min(360px,100%);max-width:100%;height:100%;height:100dvh;max-height:100dvh;padding:16px 16px max(24px,env(safe-area-inset-bottom));border:0;border-radius:0;background:#171e26;color:var(--ink);overflow:auto;overscroll-behavior:contain}
 html body.aid-shell .phone-menu[open]{display:block}
 .phone-menu::backdrop{background:#080d16b3}
 html body.aid-shell:has(.phone-menu[open]){overflow:hidden}
 .phone-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
 .phone-menu-head strong{font-size:var(--type-title)}
 html body.aid-shell .phone-menu-head button{width:44px;min-height:44px;padding:10px;background:transparent;color:var(--ink);border:0}
 html body.aid-shell .aid-nav .phone-menu .nav-links{display:flex;position:static;flex-direction:column;align-items:stretch;flex-wrap:nowrap;width:100%;padding:0;overflow:visible;gap:4px;white-space:normal}
 html body.aid-shell .aid-nav .phone-menu .nav-links a{display:flex;align-items:center;min-height:48px;font-size:var(--type-lead);padding:12px;white-space:normal;border-radius:var(--r-m)}
 html body.aid-shell .aid-nav .phone-menu .nav-section{display:block;font-size:var(--type-meta);padding:16px 12px 4px}
 html body.aid-shell .aid-nav .phone-menu .nav-client-heading{margin-top:8px;padding-left:12px;justify-content:space-between}
 html body.aid-shell .aid-nav .phone-menu .nav-client-heading .nav-section{padding:0}
 html body.aid-shell .aid-nav .phone-menu .nav-client-heading a{min-height:44px;padding:0}
 html body.aid-shell .aid-nav .phone-menu .nav-client-list{display:flex;flex-direction:column;margin:0!important}
 html body.aid-shell .aid-nav .phone-menu .nav-more{display:block;margin-top:16px}
 html body.aid-shell .aid-nav .phone-menu .nav-more summary{font-size:var(--type-lead);min-height:48px}
 html body.aid-shell .aid-nav .phone-menu .nav-mobile-more{display:none}
 html body.aid-shell .aid-nav .phone-menu .nav-account{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:20px 12px 0;margin:20px 0 0;border-top:1px solid var(--line)}
 html body.aid-shell .aid-nav .phone-menu .nav-identity{display:flex;gap:12px}
 html body.aid-shell .aid-nav .phone-menu .nav-identity div{display:block}
 html body.aid-shell .aid-nav .phone-menu .nav-identity b{font-size:var(--type-lead)}
 html body.aid-shell .aid-nav .phone-menu .nav-identity span{display:block;font-size:var(--type-body)}
 html body.aid-shell .aid-nav .phone-menu .nav-account .language-switch{display:flex;margin:0}
 html body.aid-shell .aid-nav .phone-menu .nav-account .language-switch button{min-height:44px;padding:10px 12px;font-size:var(--type-body)}
 html body.aid-shell .aid-nav .phone-menu .nav-account .role-preview-switch{display:grid;gap:8px;margin:0}
 html body.aid-shell .aid-nav .phone-menu .nav-account .role-preview-switch label{display:block}
 html body.aid-shell .aid-nav .phone-menu .nav-account .role-preview-switch select{width:100%;font-size:var(--type-lead)}
 html body.aid-shell .aid-nav .phone-menu .nav-account>form:last-child{margin:0}
 html body.aid-shell .aid-nav .phone-menu .nav-account>form:last-child button{font-size:var(--type-body);padding:10px 12px}
 html body.aid-shell>main,html body.aid-shell:has(#planning)>main,html body.aid-shell>.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(32px,env(safe-area-inset-bottom))}
 html body.aid-shell :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]){font-size:var(--type-lead)}
 /* Phone media keeps useful picture area; controls no longer consume a fixed desk. */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){height:auto;min-height:0}
 /* Кадр клиента — тот же .vwrap внутри .vstage, что и на столе: высоту задаём сцене,
    а коробка кадра считает ширину по 9:16 (owner, 2026-09-20). */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{flex:0 0 auto;height:clamp(260px,38svh,380px);min-height:0;width:auto;max-width:100%;aspect-ratio:auto;margin:0;padding:8px 12px}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer{height:auto;flex:0 0 auto;overflow:visible;padding:8px 12px 12px}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){height:clamp(440px,72svh,620px)!important;scroll-margin-top:16px}
 html body.aid-shell .desk-footer :is(.control-row,.vtools){flex-wrap:wrap;gap:4px}
 html body.aid-shell .desk-footer :is(.control-row button,.vtools button,.vplay){min-width:44px;min-height:44px;padding:8px}
 html body.aid-shell .desk-footer :is(.control-row,.vtools) select{width:88px;min-height:44px;font-size:var(--type-lead);padding:8px}
 html body.aid-shell .desk-secondary .annotation-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
 html body.aid-shell .desk-secondary .annotation-tools button{width:100%;min-width:0;min-height:44px;padding:8px;font-size:var(--type-body);white-space:normal;line-height:18px}
 html body.aid-shell .desk-footer .decision-panel{display:grid;grid-template-columns:1fr auto;max-height:none;overflow:visible;gap:8px}
 html body.aid-shell .desk-footer .decision-panel>.ui-info{grid-column:2;grid-row:1;margin:0}
 html body.aid-shell .desk-footer .decision-panel>.decision-buttons{grid-column:1/-1}
 html body.aid-shell .desk-footer .decision-heading{justify-content:flex-start}
 html body.aid-shell .desk-footer .decision-status{max-width:none;text-align:left}
 html body.aid-shell .desk-footer .decision-buttons{display:flex;flex-wrap:wrap;gap:8px}
 html body.aid-shell .desk-footer .decision-buttons button{min-height:44px;font-size:var(--type-body)}
 html body.aid-shell .desk-footer .decision-panel #time-options{grid-column:1/-1;flex-wrap:wrap}
 html body.aid-shell :is(.comment-actions button,.comment-filters button,.composer-bottom button,.discussion-heading button){min-height:44px}
 html body.aid-shell :is(.review-tabs,.eptabs){scroll-snap-type:x proximity;overscroll-behavior-x:contain}
 html body.aid-shell :is(.episode-button,.eptab){scroll-snap-align:start;min-height:48px}
}
@media(max-width:900px){
 /* Agenda is a touch alternative; the full fourteen-day grid remains one tap away. */
 html body.aid-shell .phone-agenda-ready .plan-mobile-tools{display:flex;gap:4px;margin:0 0 12px;width:max-content;border:1px solid var(--line2);border-radius:var(--r-m);padding:3px}
 html body.aid-shell .plan-mobile-tools button{min-height:44px;padding:8px 24px;background:transparent;color:var(--muted);border:0;font-size:var(--type-body)}
 #planning .plan-mobile-tools button[aria-pressed=true]{background:var(--chip);color:var(--ink)}
 .phone-agenda-ready[data-phone-view=day] .plan-agenda{display:block}
 .phone-agenda-ready[data-phone-view=day] .plan-canvas{display:none}
 html body.aid-shell .clean-planner .plan-visible-filters{margin-bottom:12px;gap:8px}
 html body.aid-shell .clean-planner .plan-all-projects{min-height:44px;margin:0;font-size:var(--type-body)}
 html body.aid-shell .clean-planner .plan-dates{margin:12px 0;gap:8px}
 html body.aid-shell .clean-planner .plan-period-caption{margin:0;font-size:var(--type-body)}
 html body.aid-shell .clean-planner .plan-navigation button{min-height:44px;min-width:44px}
 .agenda-days{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin}
 #planning .agenda-days button{flex:0 0 48px;min-height:76px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;scroll-snap-align:start;background:var(--chip);color:var(--ink);border:1px solid transparent;border-radius:var(--r-m)}
 .agenda-days button span{font-size:var(--type-caption);font-weight:400;color:var(--muted)}
 .agenda-days button b{font-size:18px;font-variant-numeric:tabular-nums}
 .agenda-days button i{height:4px;width:4px;border-radius:50%;background:transparent}
 .agenda-days button i.has-tasks{background:currentColor}
 #planning .agenda-days button[aria-current=date]{border-color:var(--muted)}
 #planning .agenda-days button[aria-pressed=true]{background:var(--primary);color:var(--btnfg);border-color:var(--primary)}
 .agenda-days button[aria-pressed=true] span{color:inherit}
 .agenda-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:16px 0}
 .agenda-heading h2{font-size:var(--type-lead);line-height:1.5;margin:0;text-transform:capitalize}
 .agenda-heading>span{font-size:var(--type-meta);color:var(--muted);white-space:nowrap}
 .agenda-person{padding:16px 0;border-top:1px solid var(--line)}
 .agenda-person>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
 .agenda-person>header>div{min-width:0;overflow-wrap:anywhere}
 .agenda-person strong{font-size:var(--type-lead);line-height:1.4}
 .agenda-person small{display:block;font-size:var(--type-meta);line-height:1.5;color:var(--muted)}
 .agenda-person>header{position:static;width:auto;padding:0;background:transparent;box-shadow:none;border:0}
 #planning .agenda-person>header button{display:flex;align-items:center;justify-content:center;flex:none;width:44px;min-height:44px;background:var(--chip);color:var(--ink);border:1px solid var(--line2);padding:8px}
 #planning .agenda-person .agenda-task{display:grid;justify-content:stretch;justify-items:start;gap:4px;width:100%;padding:12px;margin-top:8px;background:#24313f;color:#ecf0f5;text-align:left;border:1px solid #475b71;border-radius:var(--r-m);white-space:normal;overflow-wrap:anywhere}
 #planning .agenda-task.edit{background:#493f2f;border-color:#8c724b;color:#fff1dc}
 #planning .agenda-task.sound{background:#493547;border-color:#8f6889;color:#ffe5f7}
 #planning .agenda-task.generation{background:#393650;border-color:#77729e;color:#eeebff}
 #planning .agenda-task small{color:inherit;font-weight:400}
 .agenda-task>span{font-size:var(--type-body);font-weight:400;line-height:1.4}
 .agenda-free{font-size:var(--type-body);margin:0;color:var(--muted)}
 .agenda-unscheduled summary,.agenda-unscheduled a{display:block;min-height:44px;padding:12px 0}
 html body.aid-shell .clean-planner #plan-editor[open]{display:flex;flex-direction:column;position:fixed;inset:0;margin:0;width:100%;max-width:100%;height:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:0;overflow:hidden}
 html body.aid-shell .clean-planner .plan-editor-heading{flex:none;min-height:64px;padding:12px 16px;gap:12px}
 html body.aid-shell .clean-planner .plan-editor-heading h2{font-size:var(--type-title);line-height:1.3}
 html body.aid-shell .clean-planner #plan-close{min-width:44px;min-height:44px}
 html body.aid-shell .clean-planner #plan-editor-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 0}
 html body.aid-shell .clean-planner #plan-form{display:flex;flex-direction:column;min-height:100%;gap:16px}
 html body.aid-shell .clean-planner #plan-form>*{flex-shrink:0}
 html body.aid-shell .clean-planner .plan-form-foot{position:sticky;bottom:0;margin:8px -16px 0;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:#1c2631;z-index:3;border-top:1px solid var(--line)}
 html body.aid-shell .clean-planner .plan-form-foot button{min-height:48px}
 html body.aid-shell .clean-planner #plan-form>label.plan-check{display:flex;align-items:center;gap:8px;min-height:44px}
 #planning .date-trigger{background:#191e26;border-color:#424c5b}
 #planning .plan-form-foot{margin-top:auto}
 html body.aid-shell .clean-planner .plan-episodes label{min-height:44px;min-width:48px}
 html body.aid-shell .date-picker{width:100%;max-width:100%;margin:auto 0 0;max-height:100dvh;border:0;border-radius:var(--r-l) var(--r-l) 0 0}
 html body.aid-shell .date-picker :is(button,.date-month-grid button){min-height:44px}
 html body.aid-shell .date-picker .date-icon-button{width:44px}
 .date-picker-actions{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .date-months{max-height:min(350px,44dvh);padding-inline:8px}
 .date-weekdays{padding-inline:8px}
 .date-picker-summary,.date-picker-nav{padding-inline:12px}
 /* Posters keep full artwork, visible progress and a distinct review entry. */
 html body.aid-shell .client-home{display:flex;flex-direction:column}
 html body.aid-shell .client-home .client-hero{gap:12px;margin-bottom:16px}
 html body.aid-shell .client-home .client-schedule{margin:8px 0 24px}
 html body.aid-shell .client-schedule-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px;background:var(--chip);color:var(--ink);font-size:var(--type-body);border:1px solid var(--line2);border-radius:var(--r-m)}
 .client-schedule-toggle svg{width:18px;height:18px;flex:none}
 .client-schedule-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
 .client-schedule-body.phone-collapsed{display:none}
 html body.aid-shell .client-orders,html body.aid-shell .home-project-list,html body.aid-shell .poster-grid{grid-template-columns:minmax(0,1fr);gap:20px;max-width:440px;margin-inline:auto}
 html body.aid-shell .client-order{aspect-ratio:auto;min-height:0;padding-top:90%;border-radius:var(--r-l)}
 html body.aid-shell .client-order>.project-poster{inset:0 0 auto;height:auto;aspect-ratio:10/9;background:#10161e}
 html body.aid-shell .client-order .client-order-content{position:relative;inset:auto;max-height:none;padding:16px;background:#222c38;overflow:visible}
 html body.aid-shell .client-order h3{font-size:var(--type-title);line-height:1.35;-webkit-line-clamp:unset;display:block;margin:12px 0}
 html body.aid-shell .client-order .client-order-meta>span:last-child,html body.aid-shell .client-order .client-order-data>span:first-child{display:inline}
 html body.aid-shell .client-order .client-order-meta{font-size:var(--type-meta);gap:8px;justify-content:space-between}
 html body.aid-shell .client-order .client-order-data{font-size:var(--type-body);line-height:1.5}
 html body.aid-shell .client-order .client-order-bottom{display:flex;flex-wrap:wrap;gap:8px}
 html body.aid-shell .client-order .client-order-bottom>.text-link{display:inline-flex;font-size:var(--type-body)}
 html body.aid-shell .client-order .client-order-bottom a{min-height:44px}
 html body.aid-shell .client-order .client-review-link{flex:1;justify-content:center}
 html body.aid-shell .people-screen .employee-row{flex-wrap:wrap;gap:8px 12px;padding-block:16px}
 html body.aid-shell .people-screen .employee-name{flex:1;min-width:120px}
 html body.aid-shell .people-screen .employee-status{font-size:var(--type-meta)}
}
@media(max-width:360px){html body.aid-shell .clean-planner .plan-form-pair{grid-template-columns:1fr}html body.aid-shell .date-month-grid{gap:0}}
@media(max-width:900px) and (orientation:landscape){html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{height:clamp(220px,64svh,360px)}}

/* Телефон: ряды не рассыпаются. Серии — одной прокручиваемой строкой, кнопки во всю
   ширину, шапка проекта в одну колонку (owner, 2026-09-20). */
@media(max-width:700px){
 /* вес: общая тема ниже по каскаду задаёт этой полосе overflow, поэтому здесь !important */
 html body.aid-shell :is(#ephead,.ephead,.review-tabs){flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 html body.aid-shell :is(#ephead,.ephead,.review-tabs)::-webkit-scrollbar{display:none}
 html body.aid-shell :is(#ephead,.ephead) .episode-card{flex:0 0 auto;scroll-snap-align:start}
 html body.aid-shell :is(#ephead,.ephead) .eptab{white-space:nowrap}
 html body.aid-shell .desk-toolbar{flex-direction:column;align-items:stretch;gap:8px}
 html body.aid-shell .desk-toolbar-side{display:flex;justify-content:stretch}
 html body.aid-shell .desk-toolbar :is(.button,.text-link){width:100%;justify-content:center;text-align:center}
 html body.aid-shell .hero .sub,html body.aid-shell .page-heading .sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
 html body.aid-shell .publication-bar{flex-wrap:wrap;gap:6px 10px}
 html body.aid-shell .publication-bar .pubbtn{flex:1 1 100%;justify-content:center}
 html body.aid-shell .work-comment-filters,html body.aid-shell .epcol h4.discussion-head .h4r{flex-wrap:wrap;gap:6px}
 /* Название проекта на телефоне одно: в полосе разделов оно дублировало заголовок
    страницы. У сотрудника заголовка нет — там название остаётся (owner, 2026-09-20). */
 html body.aid-shell .project-tabs:not(.project-tabs-staff) .project-tabs-name{display:none}
 html body.aid-shell .desk-toolbar :is(.button,.text-link){width:100%!important}
}
/* Матовое меню вместо системного списка — стили. Поведение в _select_menu.html.
   Стили уехали в <head>, чтобы страница не показывалась наполовину
   собранной: раньше первый кадр был со старым видом кнопок и списков (owner, 2026-09-20). */
.aid-select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;white-space:nowrap}
.aid-select-trigger>span{overflow:hidden;text-overflow:ellipsis;min-width:0}
.aid-select-trigger>svg{flex:none;opacity:.8}
.aid-menu{position:fixed;z-index:1200;min-width:160px;max-width:min(320px,calc(100vw - 16px));max-height:min(60vh,420px);overflow:auto;margin:0;padding:6px;scrollbar-width:thin}
.aid-menu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left}
.aid-menu[popover]{inset:auto;margin:0}
.aid-menu-group{padding:8px 12px 4px;color:var(--muted);font-size:var(--type-caption);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
html body.aid-shell .aid-menu button.is-active{background:#ffffff0c;color:var(--ink)}
html body.aid-shell :is(select,.aid-select-trigger).is-invalid{border-color:var(--accent);box-shadow:0 0 0 3px #ff30001f}
/* "Depth" (owner choice 2026-09-14, rebuilt overnight 2026-09-15 as ONE system, not overrides):
   the page is level 0 (#171c24); panels are level 1 (gradient 262f3b→1e2531, one hairline 3a4553,
   light top edge, one shadow); anything raised on a panel is level 2 (gradient 2a333f→222a35 that
   ends in the panel tone, so it dissolves instead of drawing a box). Controls never rely on a
   contrasting 1px outline: shape comes from the gradient, the light edge and a soft shadow.
   Loaded LAST in base.html/studio_base.html so it wins every equal-specificity contest.
   Roll back: git tag pre-redesign (or the server backup app.bak.redesign-*). */
:root{
  --ease:cubic-bezier(.2,.7,.2,1);--fast:160ms;--base:220ms;
  --s0:var(--surface-0);--s1:var(--surface-1);--s1-top:#20252c;--s1-bot:#171b21;
  --pan:linear-gradient(145deg,#20252b,#181c22 75%);
  --pan-top:linear-gradient(180deg,#242931,#1b2027);
  --pan2:linear-gradient(150deg,#292f37,#1d2229);
  --pan3:linear-gradient(145deg,#343c46,#242a32);
  --stage-dark:radial-gradient(120% 90% at 30% 20%,#202125,#101113 70%);
  --poster:radial-gradient(120% 90% at 30% 20%,#2a2b2f,#111214 70%);
  --edge:#3c3e44;--edge-soft:#2b2d32;--edge-faint:#ffffff0a;
  --sh:0 12px 30px #0a0e1466,inset 0 1px 0 #ffffff12;
  --sh-hover:0 18px 40px #0a0e1480,inset 0 1px 0 #ffffff18;
  --sh-btn:0 6px 16px #0a0e1466;--sh-pop:0 18px 44px #0a0e1480,inset 0 1px 0 #ffffff14;
  --light:inset 0 1px 0 #ffffff12;
  --field:#171b21;--field-edge:#62666e;--field-focus:#aaaeb8;
  --btn:linear-gradient(145deg,#ffffff07,#ffffff02);--btn-hover:#ffffff0a;--btn-edge:#ffffff18;--glass:#14191fdb;--btn-light:none;
  --r:16px;--r2:12px;--r3:8px;
  --hair:var(--edge-soft);--hair-2:var(--edge);--sub-grad:var(--pan2);--panel-grad:var(--pan);--panel-grad-2:var(--pan2);--edge-light:var(--light);--panel-hi:none;
}
/* ===== 0. page, type ===== */
html body.aid-shell{background:var(--s0);color:var(--ink)}
/* Выделение — спокойная подсветка, а не акцентная заливка: красным выделялись подписи,
   бейджи и кнопки, будто по ним что-то происходит. Сам интерфейс выделять нечего —
   выделяется только текст, который читают (owner, 2026-09-20). */
html body.aid-shell ::selection{background:#3a4a63;color:#f3f4f6}
html body.aid-shell :is(button,summary,label,.eptab,.vchip,.pipe-chip,.cmtail,.cvtag,.rl,.tc,.badge,.ccount,.cmday,.aid-nav,.folder-tabs,.comment-filters,.view-toggle,.pill,.chip,.episode-tab,.tabbar,.page-heading .meta-separator){user-select:none;-webkit-user-select:none}
html body.aid-shell :is(.comment-text,.cm p,input,textarea,[contenteditable],code,pre){user-select:text;-webkit-user-select:text}
html body.aid-shell h1{font-weight:700;letter-spacing:-.02em}
html body.aid-shell h2,html body.aid-shell h3{font-weight:700;letter-spacing:-.01em}
html body.aid-shell .section-heading h2,html body.aid-shell .sec h2{font-size:19px;font-weight:700}
html body.aid-shell :is(.eyebrow,.folder-section-label,.tl-st .tag,.dcard .row,.node.note .who,.scriptlink small,.scr-card .cap .m,.scr-novid,.epnovid,.uimenu .ttl,.plan-day-heads small,.clr-lbl,.clr-def,.legend-prev span,.g-months div,.g-today::before,.tl-now::after,.userchip .r,.logo span,.footer-note,.hero .kick,.hero .sub .k,.ohero .meta .k,.field label,th,.stat,.badge,.ocard .m,.sec .hint,.hint2,.pubinfo,.glegend span,.entry-kicker){text-transform:none;letter-spacing:0;font-family:inherit}
html body.aid-shell .eyebrow{font-size:var(--type-meta);font-weight:500;color:var(--muted);margin-bottom:8px}
html body.aid-shell .breadcrumb{color:var(--dim)}html body.aid-shell .breadcrumb span:last-child{color:var(--ink2)}
html body.aid-shell .text-link{color:var(--muted)}html body.aid-shell .text-link:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px}
/* ===== 1. sidebar ===== */
html body.aid-shell>header.aid-nav{background:linear-gradient(180deg,#1b212a,#141920);border-right:1px solid var(--edge-soft);box-shadow:none}
html body.aid-shell .aid-nav .nav-links a{border-radius:var(--r2);color:#a0acbd}
html body.aid-shell .aid-nav .nav-links a:hover{background:#ffffff08;color:var(--ink)}
html body.aid-shell .aid-nav .nav-links a[aria-current=page]{background:var(--pan2);color:var(--ink);box-shadow:var(--light);font-weight:600}
html body.aid-shell .aid-nav .nav-links a[aria-current=page] svg{color:var(--accent)}
html body.aid-shell .aid-nav .nav-account{border-top:1px solid var(--edge-soft)}
/* Нижний блок — одна колонка с одинаковыми строками: имя и роль, черта, настройки
   (кто смотрит, имена, язык) и выход во всю ширину. Раньше строки жили каждая по своим
   правилам: подпись с одним отступом, список с другим, «Выйти» вообще по центру и в
   41 пиксель шириной — блок выглядел случайным (owner, 2026-09-21). */
@media(min-width:901px){
 html body.aid-shell .aid-nav .nav-account{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px 10px 12px;margin-top:12px}
 html body.aid-shell .aid-nav .nav-account>*{width:100%;max-width:100%;min-width:0;margin:0}
 html body.aid-shell .aid-nav .nav-account .nav-identity{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 0 10px;border-bottom:1px solid var(--edge-soft)}
 html body.aid-shell .aid-nav .nav-account .nav-identity>div{min-width:0}
 html body.aid-shell .aid-nav .nav-account .nav-identity b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 html body.aid-shell .aid-nav .nav-account :is(.role-preview-switch,.hide-names-switch,.language-switch){margin:0;padding:0}
 html body.aid-shell .aid-nav .nav-account :is(.role-preview-switch label,.hide-names-switch label,.language-switch>span){font-size:var(--type-meta);line-height:1.3;color:var(--muted)}
 html body.aid-shell .aid-nav .nav-account .role-preview-switch{display:grid;gap:5px}
 html body.aid-shell .aid-nav .nav-account .role-preview-switch :is(select,.aid-select-trigger){display:flex;width:100%;max-width:100%;min-width:0;min-height:34px;height:34px}
 html body.aid-shell .aid-nav .nav-account .hide-names-switch label{display:flex;align-items:center;gap:8px;min-height:34px;margin:0}
 html body.aid-shell .aid-nav .nav-account .hide-names-switch input{width:16px;height:16px;margin:0;flex:none}
 html body.aid-shell .aid-nav .nav-account .language-switch{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap;min-height:34px;border:0}
 html body.aid-shell .aid-nav .nav-account .language-switch>div{flex:0 0 auto;display:flex;gap:2px;padding:2px;border:1px solid var(--edge-soft);border-radius:9px}
 html body.aid-shell .aid-nav .nav-account .language-switch button{min-height:26px;height:26px;padding:0 9px;border-radius:7px;font-size:var(--type-meta)}
 html body.aid-shell .aid-nav .nav-account>form:last-child{margin:4px 0 0}
 html body.aid-shell .aid-nav .nav-account>form:last-child button{width:100%;min-height:36px;border-radius:10px;background:var(--btn);color:var(--ink2);border:1px solid var(--btn-edge)}
 html body.aid-shell .aid-nav .nav-account>form:last-child button:hover{background:var(--btn-hover);color:var(--ink)}
}
html body.aid-shell .aid-nav .nav-identity i{background:var(--pan2);box-shadow:var(--light);border-radius:50%}
html body.aid-shell .aid-nav .nav-more summary{border-radius:var(--r2);min-height:40px;padding:8px 12px;font-size:var(--type-meta)}html body.aid-shell .aid-nav .nav-more summary:hover{background:#ffffff08;color:var(--ink)}
html body.aid-shell .aid-nav .nav-section{color:#8e9aab}
html body.aid-shell .aid-nav .phone-menu{background:var(--pan);border-left:1px solid var(--edge)}
html body.aid-shell .aid-nav .phone-menu-toggle{background:var(--pan2);box-shadow:var(--light);border-radius:var(--r2)}
/* ===== 2. panels (level 1) ===== */
html body.aid-shell :is(.panel,.tile,.card,.ocard,.pn,.pcard,.dcard,.scr-card,.file-browser,.home-attention,.attention-panel,.plan-shell,.client-order,.work-project,.production-card,.task-card,.assign-panel,.team-lane,.team-day,.team-project-list a,.personal-calendar,.epfiles,.dgate,.review-discussion,.tg-browser,.folder-workspace,.plan-project-item,#delivery-progress,.home-project){background:var(--pan);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh);outline:0}
html body.aid-shell :is(.gantt,.team-workload){background:#222a35;border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh)}
html body.aid-shell .clean-planner .plan-scroll{background:var(--pan);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh)}
html body.aid-shell .g-name,html body.aid-shell .g-bd em{background:#222a35}html body.aid-shell .g-head,html body.aid-shell .g-corner{background:#1e262f}html body.aid-shell .g-corner{border-color:var(--edge)}html body.aid-shell .g-row{border-top-color:var(--edge-soft)}html body.aid-shell .g-months{border-bottom-color:var(--edge)}html body.aid-shell .g-ticks{border-bottom-color:var(--edge-soft)}
html body.aid-shell .g-months div{font-size:var(--type-meta);font-weight:600;color:var(--ink2);border-left:1px solid var(--edge-soft)}html body.aid-shell .g-months div:first-child{border-left:0}
html body.aid-shell .team-workload :is(th,td){border-color:var(--edge-soft)}html body.aid-shell .team-workload th:first-child{background:#222a35}
html body.aid-shell .team-board{background:transparent;border:0;box-shadow:none;border-radius:0}
html body.aid-shell .team-day.today{box-shadow:var(--sh),inset 0 2px 0 var(--accent)}
/* cards lift, posters come closer */
html body.aid-shell :is(.client-order,.work-project,.production-card,.ocard,.home-project,.tile,.pcard,.dcard,.scr-card,.team-project-list a,.team-ticket){transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease),border-color var(--base),background var(--fast)}
html body.aid-shell :is(.client-order,.work-project,.production-card,.ocard,.home-project,.tile,.pcard,.dcard,.scr-card,.team-project-list a):hover{transform:translateY(-2px);box-shadow:var(--sh-hover);border-color:#4a5666;background:var(--pan)}
html body.aid-shell .project-poster img{transition:transform 260ms var(--ease),filter .2s ease}
html body.aid-shell :is(.client-order,.work-project,.production-card,.ocard,.home-project):hover .project-poster img{transform:scale(1.04)}
html body.aid-shell :is(.project-poster,.poster){background:var(--poster)}
/* Плашка с текстом лежит поверх кадра. У проекта в работе она уходит от почти
   прозрачного верха к глухому низу, у сданного — ровная тонировка на четверть:
   там текста мало и градиенту негде развернуться. Рамки сверху нет — тёмная
   линия читалась обводкой подложки (owner, 2026-09-20). */
html body.aid-shell :is(.client-order-content,.work-project .client-order-content,.project-card-body){background:linear-gradient(180deg,#1e25311a 0,#1e2531 100%);border-top:0;text-shadow:0 1px 3px #05080f99}
html body.aid-shell .work-project.complete .client-order-content{background:#1e253147}
/* Затемнённая панель — часть карточки, а не мёртвая зона: ссылкой была только обложка
   и сам заголовок, поэтому половина карточки не открывалась. Заголовок растягивает свою
   ссылку на всю панель, а её собственные ссылки и кнопки лежат выше (owner, 2026-09-20). */
html body.aid-shell :is(.client-order-content,.project-card-body) :is(h3 a,.home-project-title)::after{content:"";position:absolute;inset:0;z-index:0}
html body.aid-shell :is(.client-order-content,.project-card-body) :is(.work-project-edit,.client-order-bottom a,.home-project-actions a,button,summary){position:relative;z-index:1}
html body.aid-shell .client-order::before,html body.aid-shell .client-order::after{display:none}
html body.aid-shell .client-order.needs-action{border-color:#ff30006b;box-shadow:var(--sh),0 0 0 1px #ff300033}
html body.aid-shell .home-project-number{border-color:transparent}
html body.aid-shell .work-project .project-poster::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0a0e1466,#0a0e1426);opacity:0;transition:opacity var(--fast);pointer-events:none}
html body.aid-shell .work-project:hover .project-poster::after,html body.aid-shell .work-project:focus-within .project-poster::after{opacity:1}
/* level 2: sub-panels on a panel, no border, the gradient ends in the panel tone */
html body.aid-shell :is(.attachment-list,.task-attachments a,.team-ticket,.list a,.work-template-result,#working-files .file-rows.view-grid .file-row,.folder-content.view-grid .file-row,#working-files .file-selection){background:var(--pan2);border:0;border-radius:var(--r2);box-shadow:var(--light)}
html body.aid-shell .team-ticket:hover{transform:translateY(-2px);background:var(--pan3);box-shadow:var(--sh-btn),var(--light)}
html body.aid-shell .tg-person-actions{background:var(--pan2);border-top:1px solid var(--edge-soft)}
html body.aid-shell :is(.plan-predecessors,.plan-warnings,.task-input-warning,.client-review-status,.team-day a,.comment-reply){background:var(--pan2);border:0;border-left:2px solid var(--warn);border-radius:0 var(--r2) var(--r2) 0;box-shadow:none}
html body.aid-shell .client-review-status{border-left-color:var(--accent)}html body.aid-shell .comment-reply{border-left-color:var(--edge)}html body.aid-shell .team-day a.sound{border-left-color:var(--st-voice)}
html body.aid-shell :is(.stub,.epnovid){border:1px solid var(--edge-soft);background:#ffffff04;border-radius:var(--r)}
/* Полоса сериала в календаре сотрудника: цвет он выбирает сам, поэтому берём его из
   переменной --lane, а не из общей палитры (owner, 2026-09-20). */
html body.aid-shell .personal-assignment{background:linear-gradient(160deg,color-mix(in srgb,var(--lane,#3d5480) 82%,#fff) 0,var(--lane,#3d5480) 46%,color-mix(in srgb,var(--lane,#3d5480) 76%,#000) 100%);border:1px solid #ffffff2e;border-radius:9px;color:#fff;text-shadow:0 1px 2px #05080f66;box-shadow:0 8px 20px #05080f59,inset 0 1px 0 #ffffff3d,inset 0 -1px 0 #0000003d}
html body.aid-shell .personal-assignment:hover{filter:brightness(1.12);border-color:#ffffff4d}
html body.aid-shell :is(.personal-day.weekend,.personal-cell.weekend){background:#00000022}html body.aid-shell .personal-day.today{box-shadow:inset 0 2px 0 var(--accent);color:var(--accent-text)}
html body.aid-shell .cover-option{border-color:var(--edge)}html body.aid-shell .cover-option[aria-pressed=true]{border-color:#ff7a5c99;box-shadow:0 0 0 3px #ff30001f}html body.aid-shell .clr-sw{border-color:var(--edge);box-shadow:none}
html body.aid-shell #delivery-progress{padding:18px 20px}html body.aid-shell .dp-head{font-size:var(--type-meta);color:var(--muted)}
/* panel tops: toolbars that head a panel share its top tone and a soft divider */
html body.aid-shell .file-toolbar{background:var(--pan-top);border:0;border-bottom:1px solid var(--edge-soft);border-radius:var(--r) var(--r) 0 0}
html body.aid-shell .file-list-toolbar,html body.aid-shell .upload-tools{background:transparent;border:0;border-bottom:1px solid var(--edge-soft)}
html body.aid-shell #working-files :is(.file-breadcrumbs,.file-subfolder,.file-folder-form){border-color:var(--edge-soft)}html body.aid-shell .file-row{border-top-color:var(--edge-soft);border-bottom-color:var(--edge-soft)}
html body.aid-shell .file-tree{border-right:1px solid var(--edge-soft)}
html body.aid-shell .savebar{background:linear-gradient(180deg,#2b3542,#252e3a);border-top:1px solid var(--edge);box-shadow:0 -12px 30px #0a0e1466,inset 0 1px 0 #ffffff14}html body.aid-shell .savebar.dirty{border-top:2px solid var(--accent)}
html body.aid-shell .role-preview-banner{background:linear-gradient(180deg,#2b3542,#252e3a);border-bottom:1px solid var(--edge)}
/* ===== 3. buttons: shape from gradient and light, never from a contrasting outline ===== */
/* plain buttons stay at element-level weight so two-class widget rules (bubbles, canvas tools, grids) keep their own look */
/* action buttons: a lit slab. The accent underline is reserved for a selected tab, filter or tool, so a plain button never reads as switched on (owner, 2026-09-15). */
html body.aid-shell button{min-height:38px;padding:6px 14px;border:1px solid var(--btn-edge);border-radius:var(--r2);font-size:var(--type-body);font-weight:500;letter-spacing:0;background:var(--pan2);color:var(--ink);box-shadow:var(--light);transition:background var(--fast),color var(--fast),transform 90ms var(--ease),box-shadow var(--fast),filter var(--fast)}
html body.aid-shell :is(.btn,.button){min-height:38px;padding:6px 14px;border:1px solid var(--btn-edge);border-radius:var(--r2);font-size:var(--type-body);font-weight:500;letter-spacing:0;background:var(--pan2);color:var(--ink);box-shadow:var(--light);transition:background var(--fast),color var(--fast),transform 90ms var(--ease),box-shadow var(--fast),filter var(--fast)}
html body.aid-shell button:hover,html body.aid-shell :is(.btn,.button):hover{background:linear-gradient(180deg,#333437,#27282b);color:var(--ink);filter:none}
html body.aid-shell button:active,html body.aid-shell :is(.btn,.button):active{transform:scale(.97)}
html body.aid-shell :is(.tg-bubble,.g-create-track,button.text-link,.date-month-grid button,.node button,.stickpick button,.cvhelp button,.cv-acts button,.board-tool){background:transparent;box-shadow:none;border-color:transparent;min-height:0;padding:0;color:inherit;font-weight:inherit;font-size:inherit;border-radius:0}
html body.aid-shell .tg-bubble{border-radius:50%}html body.aid-shell button.text-link{color:var(--muted)}html body.aid-shell button.text-link:hover{color:var(--ink);background:transparent}
html body.aid-shell .g-create-track{background:transparent;border-radius:0}
html body.aid-shell #target-folder button,html body.aid-shell .folder-location button{background:transparent;box-shadow:none;border-color:transparent;color:var(--muted);font-weight:500;padding:0 6px;min-height:0;border-radius:8px}
html body.aid-shell #target-folder button:hover{background:#ffffff08;color:var(--ink)}
html body.aid-shell #target-folder button[aria-current]{color:var(--ink);font-weight:600}html body.aid-shell .g-create-track:hover{background:#ffffff06}
html body.aid-shell :is(.secondary,button.secondary,.button.secondary,.btn.secondary,.ghost,button.ghost,.btn.ghost,.button.ghost,:where(#working-files) .file-selection button,.work-project-actions .secondary,.work-project-actions a,.uprow .upbtn,.annotation-tools button,.upload-actions .secondary,.date-picker-actions [data-date-cancel],:where(#planning) .agenda-person>header button,.client-schedule-toggle,.production-action .secondary,.file-browser .upload-label,.employee-open,.delivery-state button,.review-heading .button,:where(#working-files) .file-breadcrumbs button,:where(#target-folder) button,.date-picker button,.client-project-dialog .client-stage-tools button,:where(#materials-ready) button,:where(#final-new-folder),:where(#final-folder-form) button,:where(#final-selection) button,:where(#working-files) #file-new-folder,:where(#working-files) .file-folder-form button,.plan-split,.clean-planner .plan-navigation button,.planning .plan-cancel,.stage-approve,.back,.task-files .button,.role-preview-banner button,.episode-version-delete button){background:var(--btn);color:var(--ink2);border-color:var(--btn-edge);box-shadow:none}
html body.aid-shell :is(.secondary,button.secondary,.button.secondary,.btn.secondary,.ghost,button.ghost,.btn.ghost,.button.ghost,:where(#working-files) .file-selection button,.work-project-actions .secondary,.work-project-actions a,.uprow .upbtn,.annotation-tools button,.upload-actions .secondary,.date-picker-actions [data-date-cancel],:where(#planning) .agenda-person>header button,.client-schedule-toggle,.production-action .secondary,.file-browser .upload-label,.employee-open,.delivery-state button,.review-heading .button,:where(#working-files) .file-breadcrumbs button,:where(#target-folder) button,.date-picker button,.client-project-dialog .client-stage-tools button,:where(#materials-ready) button,:where(#final-new-folder),:where(#final-folder-form) button,:where(#final-selection) button,:where(#working-files) #file-new-folder,:where(#working-files) .file-folder-form button,.plan-split,.clean-planner .plan-navigation button,.planning .plan-cancel,.stage-approve,.back,.task-files .button,.role-preview-banner button,.episode-version-delete button):hover{background:var(--btn-hover);color:var(--ink);border-color:#ffffff2a}
html body.aid-shell .aid-nav button,html body.aid-shell .aid-nav .nav-account button,html body.aid-shell .aid-nav .nav-client-toggle{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}
html body.aid-shell .aid-nav button:hover{background:#ffffff08;color:var(--ink)}
html body.aid-shell #planning .agenda-person>header button,html body.aid-shell #working-files .file-selection button,html body.aid-shell #materials-ready button{background:var(--btn);color:var(--ink2);border:1px solid var(--btn-edge);box-shadow:none;border-radius:10px}
html body.aid-shell .planning .plan-color-save{background:var(--btn)!important;border:1px solid var(--btn-edge)!important;color:var(--ink2)!important;box-shadow:none!important;border-radius:var(--r2)}
html body.aid-shell :is(.planning .plan-delete,.file-trash,.danger,button.danger,.button.danger,.imenu .del){background:transparent!important;border:1px solid transparent!important;color:var(--danger)!important;box-shadow:none!important}
html body.aid-shell :is(.planning .plan-delete,.file-trash,.danger,button.danger,.button.danger,.imenu .del):hover:not(:disabled){background:#ff879a14!important}
html body.aid-shell :is(button,.btn,.button):disabled,html body.aid-shell [aria-disabled=true]{background:#252628!important;border-color:transparent!important;color:#85868d!important;box-shadow:none!important;opacity:1;transform:none}
/* quiet icon buttons: transparent until touched */
html body.aid-shell :is(.vbar .vbtn,.stage-pause-add,.comment-actions button,.control-row button,.cv-tools .tb,.cv-zoom button,.imenu button,.discussion-heading #refresh-review,.ui-info>summary,.aid-nav .nav-account button,.phone-menu-head button,.date-picker .date-icon-button,.episode-version-manage>summary,.cbfold,.vclear-range,.vvdel,.efdel){background:transparent;color:var(--muted);border-color:transparent;box-shadow:none}
html body.aid-shell :is(.vbar .vbtn,.stage-pause-add,.comment-actions button,.control-row button,.cv-tools .tb,.cv-zoom button,.imenu button,.discussion-heading #refresh-review,.ui-info>summary,.date-picker .date-icon-button,.episode-version-manage>summary,.cbfold,.vclear-range,.efdel):hover{background:#ffffff0a;color:var(--ink)}
html body.aid-shell .vbar .vplay{background:var(--btn);color:var(--ink);border-color:var(--btn-edge);box-shadow:none}html body.aid-shell .vbar .vplay:hover{background:var(--btn-hover)}
html body.aid-shell :is(.vbar .vbtn.on,.cv-tools .tb.on,.comment-filters button[aria-pressed=true],.annotation-tools button[aria-pressed=true]){background:var(--pan2);color:var(--ink);box-shadow:var(--light)}
html body.aid-shell .vbar .vbtn.on svg{color:var(--accent)}
html body.aid-shell .vvdel:hover{background:#422b34;color:#ffc2cd}
html body.aid-shell .stage-pause-add{width:30px;height:30px;min-height:30px;padding:0;border-radius:8px;display:inline-grid;place-items:center;margin-left:6px}
/* sizes: one desk, nothing taller than 38px; phones get 44px back further down */
html body.aid-shell :is(.file-toolbar .actions button,.file-toolbar .actions .button,.file-list-toolbar button,.heading-actions button,.heading-actions .button,.page-heading button,.page-heading .button){min-height:38px;padding:6px 14px;font-size:var(--type-body)}
html body.aid-shell :is(.file-browser .upload-label,.work-project-actions a,.employee-open,.delivery-state button,.review-heading .button,#working-files .file-breadcrumbs button,#target-folder button,.date-picker button,.client-project-dialog .client-stage-tools button,#materials-ready button,#final-new-folder,#final-folder-form button,#final-selection button,#working-files #file-new-folder,#working-files .file-selection button,#working-files .file-folder-form button){min-height:36px;padding:6px 12px;border-radius:10px}
html body.aid-shell .date-picker .date-icon-button{width:36px}
html body.aid-shell :is(#plan-editor .plan-handoff-open,.planning .plan-cancel,.planning .plan-save,.handoff-destination,.handoff-buttons button,.clean-planner .plan-navigation button,.clean-planner .plan-navigation select,.team-heading .heading-actions .calendar-assign,.clean-planner .plan-new,.desk-footer .decision-buttons button,.desk-footer .annotation-tools button,.desk-footer .control-row button){min-height:38px;height:auto;border-radius:var(--r2)}
html body.aid-shell .production-action .secondary{min-height:34px;padding:5px 12px;font-size:var(--type-meta);border-radius:10px}
html body.aid-shell .task-files .button{min-height:32px;padding:4px 12px;font-size:var(--type-meta);border-radius:99px}
html body.aid-shell .folder-tabs button{min-height:56px}html body.aid-shell .role-preview-banner button{min-height:36px;padding:6px 12px;border-radius:10px}
html body.aid-shell .undobar button{min-height:30px;padding:4px 12px;font-size:var(--type-meta);border-radius:99px}
/* the one red action, and its two states */
/* «Показать клиенту»: пока клиент версию не видит — тихая стеклянная кнопка;
   как только увидел — она горит красным и сама говорит, какую версию (owner, 2026-09-20). */
html body.aid-shell .publication-bar .pubbtn{min-height:36px;padding:7px 18px;border-radius:9px;font-size:var(--type-meta);font-weight:600;background:var(--pan2);color:var(--ink);border:1px solid var(--btn-edge);box-shadow:var(--light),inset 0 -2px 0 #6b7684,0 4px 10px -6px #6b768480;gap:6px;margin-left:0}
html body.aid-shell .publication-bar .pubbtn:hover{filter:none;background:linear-gradient(180deg,#333437,#27282b);color:#fff}
html body.aid-shell .publication-bar .pubbtn[aria-pressed=true],html body.aid-shell .decision-buttons [aria-pressed=true]{background:linear-gradient(180deg,#2c5648,#20443a);color:#adf3d3;border-color:transparent;box-shadow:var(--light);outline:0}
html body.aid-shell .publication-bar .pubbtn[aria-pressed=true]{background:var(--pan2);color:var(--ink);border-color:var(--btn-edge);box-shadow:var(--light),inset 0 -2px 0 var(--accent),0 6px 14px -6px #ff3000cc}
html body.aid-shell .publication-bar .pubbtn[aria-pressed=true]:hover{background:linear-gradient(180deg,#333437,#27282b);color:#fff}
html body.aid-shell .publication-bar .pubbtn:disabled{background:#252628!important;color:#85868d!important;box-shadow:none!important}
/* ===== 4. fields: sunken into the panel, a soft ring on focus ===== */
html body.aid-shell :is(:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color])),select,textarea,.date-trigger,.project-choice>summary,.plan-filters>summary,.clr-hex,input[type=search],.cbox .cbtext){background:var(--field);border:1px solid var(--field-edge);border-radius:10px;box-shadow:inset 0 1px 2px #00000066;color:var(--ink)}
html body.aid-shell :is(:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color])),select,textarea,.cbox .cbtext):is(:focus,:focus-visible){border-color:var(--field-focus);box-shadow:inset 0 1px 2px #00000066,0 0 0 3px #ff30001f;outline:0}
html body.aid-shell :is(.date-trigger,.project-choice>summary,.plan-filters>summary):is(:hover,:focus-visible){border-color:var(--field-focus)}
html body.aid-shell #planning .date-trigger{background:var(--field);border:1px solid var(--field-edge);border-radius:10px;box-shadow:inset 0 1px 2px #00000066;color:var(--ink)}
html body.aid-shell select:not([multiple]){appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6adba' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}
html body.aid-shell select option{background:#1c232c;color:var(--ink)}
html body.aid-shell :is(.fields,.field,form>label) :is(:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=color])),select,textarea){border-radius:10px}
html body.aid-shell .field-help{color:var(--dim)}
/* raised selects that act as buttons (hand-off, filters, quality) */
html body.aid-shell :is(.desk-footer .vbar .episode-handoff-destination,.publication-bar .handoff-destination,.epcol h4.discussion-head select,.work-comment-filters select,.desk-ready .quality-row select,.vfilter,.note-version-filter select,.clean-planner .plan-navigation select,.aid-nav .nav-account .role-preview-switch select,.project-filter select,.aid-select-trigger){background:var(--btn);border:1px solid var(--btn-edge);border-radius:10px;box-shadow:none;color:var(--ink2);font-weight:600;font-size:var(--type-meta);min-height:34px;padding:4px 12px;cursor:pointer;line-height:1.3;transition:background var(--fast),color var(--fast)}
html body.aid-shell select:is(.desk-footer .vbar .episode-handoff-destination,.publication-bar .handoff-destination,.epcol h4.discussion-head select,.work-comment-filters select,.desk-ready .quality-row select,.vfilter,.note-version-filter select,.clean-planner .plan-navigation select,.aid-nav .nav-account .role-preview-switch select,.project-filter select){padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c7cfda' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),var(--btn);background-repeat:no-repeat,no-repeat;background-position:right 10px center,0 0;background-size:14px,100% 100%}
html body.aid-shell :is(.desk-footer .vbar .episode-handoff-destination,.publication-bar .handoff-destination,.epcol h4.discussion-head select,.work-comment-filters select,.desk-ready .quality-row select,.vfilter,.note-version-filter select,.clean-planner .plan-navigation select,.project-filter select,.aid-select-trigger):hover{background:var(--btn-hover);color:var(--ink);border-color:#ffffff2a}
html body.aid-shell .desk-footer .vbar .episode-handoff-destination{min-width:148px;max-width:220px;width:auto}
html body.aid-shell .plan-visible-filters .aid-select-trigger{width:100%;min-height:44px;font-size:var(--type-body);font-weight:500}
html body.aid-shell .plan-visible-filters .calendar-assign,html body.aid-shell .calendar-assign,html body.aid-shell .clean-planner .plan-new{margin-left:auto;flex:none;min-height:44px;padding:8px 16px;background:var(--pan2)!important;border:1px solid var(--btn-edge)!important;color:var(--ink)!important;box-shadow:var(--light)!important;border-radius:var(--r2);font-size:var(--type-body);font-weight:600}
html body.aid-shell .plan-visible-filters .calendar-assign:hover{background:var(--btn-hover)!important}
html body.aid-shell .plan-dates .aid-select-trigger,html body.aid-shell .role-preview-switch .aid-select-trigger{min-height:38px;width:100%}
html body.aid-shell .desk-footer .vbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px 8px}
html body.aid-shell .desk-footer .vbar .vtimeline{grid-column:1/-1;grid-row:1}
html body.aid-shell .desk-footer .vbar .vleft{grid-column:1;grid-row:2;display:flex;align-items:center;gap:8px;justify-self:start;min-width:0}
html body.aid-shell .desk-footer .vbar .handoff-controls{grid-column:2;grid-row:2;justify-self:center;margin:0;padding:0;border:0;background:transparent}
html body.aid-shell .desk-footer .vbar .vtools{grid-column:3;grid-row:2;justify-self:end;margin:0}
html body.aid-shell .quality-trigger{background:var(--btn);border:1px solid var(--btn-edge);border-radius:10px;box-shadow:none;color:var(--ink2);font-weight:600;font-size:var(--type-meta);min-height:34px;padding:4px 12px}html body.aid-shell .quality-trigger:hover{background:var(--btn-hover);color:var(--ink)}
/* checkboxes: the fill grows, the tick draws */
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,#working-files .file-row input[data-file-select],#file-select-all,#working-files [data-folder-select],.final-select-check input,.plan-check input,.plan-episodes input,.plan-sort input,.production-checks input,.work-template-stage input[type=checkbox],#materials-ready input[type=checkbox],.episode-handoff-dialog input[type=checkbox],.project-filter input[type=checkbox],.fields input[type=checkbox]){appearance:none;-webkit-appearance:none;width:18px;height:18px;min-width:18px;margin:0;padding:0;display:inline-grid;place-items:center;flex:none;border:1.5px solid #495463;border-radius:5px;background:var(--field);box-shadow:inset 0 1px 2px #0004;cursor:pointer;transition:background var(--fast),border-color var(--fast);vertical-align:middle}
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,#working-files .file-row input[data-file-select],#file-select-all,#working-files [data-folder-select],.final-select-check input,.plan-check input,.plan-episodes input,.plan-sort input,.production-checks input,.work-template-stage input[type=checkbox],#materials-ready input[type=checkbox],.episode-handoff-dialog input[type=checkbox],.project-filter input[type=checkbox],.fields input[type=checkbox])::after{content:"";width:9px;height:5px;margin-top:-2px;border:2px solid #0f2a1a;border-top:0;border-right:0;transform:rotate(-45deg) scale(0);transition:transform var(--fast) var(--ease)}
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,#working-files .file-row input[data-file-select],#file-select-all,#working-files [data-folder-select],.final-select-check input,.plan-check input,.plan-episodes input,.plan-sort input,.production-checks input,.work-template-stage input[type=checkbox],#materials-ready input[type=checkbox],.episode-handoff-dialog input[type=checkbox],.project-filter input[type=checkbox],.fields input[type=checkbox]):is(:checked,:indeterminate){background:var(--ok);border-color:var(--ok)}
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,#working-files .file-row input[data-file-select],#file-select-all,#working-files [data-folder-select],.final-select-check input,.plan-check input,.plan-episodes input,.plan-sort input,.production-checks input,.work-template-stage input[type=checkbox],#materials-ready input[type=checkbox],.episode-handoff-dialog input[type=checkbox],.project-filter input[type=checkbox],.fields input[type=checkbox]):checked::after{transform:rotate(-45deg) scale(1)}
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,#working-files .file-row input[data-file-select],#file-select-all,#working-files [data-folder-select],.final-select-check input,.plan-check input,.plan-episodes input,.plan-sort input,.production-checks input,.work-template-stage input[type=checkbox],#materials-ready input[type=checkbox],.episode-handoff-dialog input[type=checkbox],.project-filter input[type=checkbox],.fields input[type=checkbox]):indeterminate::after{width:9px;height:0;margin-top:0;border-width:0 0 2px;transform:none}
html body.aid-shell :is(.check>input[type=checkbox],.work-completion input,.plan-check input,.plan-episodes input):disabled{opacity:.45;cursor:not-allowed}
/* ===== 5. chips, badges, counters, dots ===== */
html body.aid-shell :is(.badge,.employee-status,.task-state,.cvtag,.version-badge,.efdl,.tile .number,.work-template-episodes label,.chip,.sound-state){display:inline-flex;align-items:center;gap:6px;min-height:0;padding:3px 9px;border-radius:99px;border:1px solid #495463;background:transparent;color:var(--muted);font-family:inherit;font-size:12px;line-height:1.3;font-weight:500;letter-spacing:0;text-transform:none;white-space:nowrap}
html body.aid-shell .badge.b-admin{color:var(--danger);border-color:#ff879a66}html body.aid-shell .badge.b-staff{color:var(--info);border-color:#7ca8ff66}html body.aid-shell .badge.b-client,html body.aid-shell .badge.b-ok,html body.aid-shell .sound-state.is-merged{color:var(--ok);border-color:#2f6b45}html body.aid-shell .badge.b-viewer{color:#c4b5fd;border-color:#c4b5fd66}html body.aid-shell .badge.b-off{color:var(--dim);border-color:#3a4553}html body.aid-shell .sound-state.is-pending{color:var(--warn);border-color:#7a5a1e}
html body.aid-shell .task-state{color:var(--ink2)}html body.aid-shell .employee-status{white-space:normal}html body.aid-shell .efdl{min-height:28px}html body.aid-shell .tile .number{color:var(--muted);border-color:transparent;background:#ffffff0a;font-weight:600}html body.aid-shell .work-template-episodes label{min-height:36px;padding:4px 12px;color:var(--ink2)}
html body.aid-shell :is(.ccount,#comment-count){display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:99px;border:0;background:#ffffff10;color:var(--ink2);font-size:12px;font-weight:700;line-height:1}html body.aid-shell :is(.ccount,#comment-count)[data-empty=true]{background:transparent;box-shadow:inset 0 0 0 1px #3a4553;color:var(--muted)}
html body.aid-shell .plan-episodes label{min-height:32px;padding:4px 10px;border:1px solid #495463;border-radius:99px;font-size:var(--type-meta);background:transparent;color:var(--muted)}
html body.aid-shell .plan-episodes label:has(:checked),html body.aid-shell #plan-editor .plan-episodes label:has(input:checked){background:var(--pan2);border-color:#ff7a5c99;color:var(--ink);box-shadow:var(--light)}
html body.aid-shell :is(.stat::before,.team-badge::before,.status-dot,.client-order-status::before,.home-project-status::before,.client-action-count.has-action::before){width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 13%,transparent);flex:none}
html body.aid-shell .client-action-count.has-action::before{box-shadow:0 0 0 3px #ff300026}
html body.aid-shell .stat{font-size:12px;font-weight:600;gap:9px}html body.aid-shell .client-order-status{font-size:12px;color:var(--muted)}
html body.aid-shell .glegend span,html body.aid-shell .plan-key{font-size:12px;color:var(--muted)}html body.aid-shell .glegend i,html body.aid-shell .plan-key>span::before,html body.aid-shell .legend-prev i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px #ffffff14}
html body.aid-shell .work-project-state>span:first-child,html body.aid-shell .production-stage{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted)}
html body.aid-shell .work-project-state>span:first-child::before,html body.aid-shell .production-stage::before{content:"";width:8px;height:8px;border-radius:50%;background:#8fa3ba;box-shadow:0 0 0 3px #ffffff14;flex:none}
html body.aid-shell .work-project-state[data-stage=script]>span:first-child::before,html body.aid-shell .production-stage[data-stage=script]::before,html body.aid-shell .client-order-status[data-stage=script]::before{background:var(--st-script)}
html body.aid-shell .work-project-state[data-stage=pre]>span:first-child::before,html body.aid-shell .production-stage[data-stage=pre]::before,html body.aid-shell .client-order-status[data-stage=pre]::before{background:var(--st-pre)}
html body.aid-shell .work-project-state[data-stage=gen]>span:first-child::before,html body.aid-shell .production-stage[data-stage=gen]::before,html body.aid-shell .client-order-status[data-stage=gen]::before{background:var(--st-gen)}
html body.aid-shell .work-project-state[data-stage=edit]>span:first-child::before,html body.aid-shell .production-stage[data-stage=edit]::before,html body.aid-shell .client-order-status[data-stage=edit]::before{background:var(--st-edit)}
html body.aid-shell .work-project-state[data-stage=voice]>span:first-child::before,html body.aid-shell .production-stage[data-stage=voice]::before,html body.aid-shell .client-order-status[data-stage=voice]::before{background:var(--st-voice)}
html body.aid-shell .work-project-state[data-stage=fin]>span:first-child::before,html body.aid-shell .production-stage[data-stage=fin]::before,html body.aid-shell .client-order-status[data-stage=fin]::before{background:var(--st-fin)}
html body.aid-shell .work-project-state[data-stage=delivered]>span:first-child::before,html body.aid-shell .production-stage[data-stage=delivered]::before,html body.aid-shell .client-order-status[data-stage=delivered]::before{background:var(--st-delivered)}
html body.aid-shell .work-project-state[data-stage=planned]>span:first-child::before,html body.aid-shell .production-stage[data-stage=planned]::before{background:#5c6a7b}
/* progress: 4px, round */
html body.aid-shell progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:4px;border:0;border-radius:99px;background:#2c3541;color:var(--ok);accent-color:var(--ok);overflow:hidden}
html body.aid-shell progress::-webkit-progress-bar{background:#2c3541;border-radius:99px}html body.aid-shell progress::-webkit-progress-value{background:var(--ok);border-radius:99px;transition:width var(--base) var(--ease)}html body.aid-shell progress::-moz-progress-bar{background:var(--ok);border-radius:99px}
html body.aid-shell :is(.pbar,.poster-grid .ocard .pbar,.dp-bar,.dp-mini,.upprog .bar,.efprog .bar,.file-upload-progress,.bar){height:4px;border-radius:99px;background:#2c3541;overflow:hidden}html body.aid-shell :is(.pbar,.poster-grid .ocard .pbar,.dp-bar,.dp-mini,.upprog .bar,.efprog .bar,.bar) i{border-radius:99px;background:var(--ok)}
/* ===== 6. tables, lists, rows: hairlines and a whisper on hover ===== */
html body.aid-shell th{font-size:12px;font-weight:500;color:var(--dim);border-bottom:1px solid var(--edge);padding:8px 10px}
html body.aid-shell td{border-bottom:1px solid var(--edge-soft)}html body.aid-shell tr:last-child td{border-bottom:0}
html body.aid-shell :is(.table-scroll,.production-table-scroll,.team-report,.assign-preview) tbody tr:hover>td{background:#ffffff06}
html body.aid-shell .production-output :is(th,td){padding:12px 16px}
html body.aid-shell :is(.employee-row,.role-default-row,.storage-row,.home-deadline,.clr-row,.work-template-stage,.task-log p,.plan-task-links a,.plan-preview-list>div,.legacy-material-row,.batch-history,.scre,.log,.tl-foot,.task-events div,.agenda-person,.production-action,.decision-panel,.review-comment,.people-more,.access-preset-editor,.work-template-stages,.task-actions,.stage-approvals,.plan-color-panel,.plan-episode-dates fieldset,.unfinished-uploads,.handoff-controls,.episode-work-state,.efhead,.efrow,.efprog,.dp-row,.attention-group,.attention-row,.home-service,.home-services,.folder-location,.upload-footnote,.final-subfolders button,.final-subfolders [data-final-folder-row],#final-selection,#final-folder-form,.personal-day,.personal-cell,.project-toolbar,.hero .sub,.hero .sub>div,.client-order-bottom,.vversions,.desk-footer,.epcol h4,.people-tools,.team-tabs,.personal-tabs,.plan-switch,.comment-filters,.delivery-state,.plan-editor-heading,.plan-form-foot,.date-weekdays,.nav-settings-dialog .language-switch,.project-stages-popover .project-work-stage,.task .actions,.ohero,.sec){border-color:var(--edge-soft)}
html body.aid-shell .sec .ln{background:var(--edge)}html body.aid-shell .team-list{background:transparent;border:1px solid var(--edge);border-radius:var(--r)}html body.aid-shell .team-row{background:#222b36}html body.aid-shell .team-row:hover{background:#283240}
html body.aid-shell :is(.employee-row,.attention-row,#working-files .file-row,#working-files .file-subfolder,.final-subfolders button,.cm[data-cid]):hover{background:#ffffff06}
html body.aid-shell #working-files .file-row.is-selected,html body.aid-shell #working-files .file-subfolder.is-selected,html body.aid-shell #folder-workspace .is-selected{background:#ffffff0c;box-shadow:inset 2px 0 0 var(--accent);color:var(--ink)}
html body.aid-shell #working-files .file-rows.view-grid .file-row.is-selected{box-shadow:inset 0 0 0 1px #ff7a5c99,var(--light)}
html body.aid-shell #working-files [data-folder].is-drop-folder{background:#ffffff10;box-shadow:inset 2px 0 0 var(--accent)}html body.aid-shell #working-files .file-drop-cover{border-color:var(--accent-text)}
html body.aid-shell :is(.file-thumb,#working-files .file-thumb,.file-extension,#working-files .file-extension){border:0;background:#1c2530;border-radius:8px;box-shadow:var(--light)}
html body.aid-shell .folder-section-label{font-size:12px;color:var(--dim);font-weight:500}html body.aid-shell .epfiles.drop{border-color:var(--accent-text);box-shadow:0 0 0 3px #ff30001f}
html body.aid-shell .hero .sub .v{font-weight:700}
/* ===== 7. tabs, segmented controls, filters: quiet strip, the active item a gradient pill that dissolves ===== */
html body.aid-shell .review-tabs{gap:6px;padding:0 0 6px;margin:0 0 16px;border:0;border-bottom:1px solid var(--edge);align-items:center;overflow:visible;flex-wrap:wrap}
html body.aid-shell .review-tabs .episode-button{position:relative;min-height:40px;padding:8px 12px;border:0;border-radius:var(--r2);background:transparent;color:var(--muted);box-shadow:none;justify-content:center}
html body.aid-shell .review-tabs .episode-button:hover{background:#242d38}html body.aid-shell .review-tabs .episode-button[aria-pressed=true]{background:var(--pan2);color:var(--ink);box-shadow:none}
html body.aid-shell .review-tabs .episode-button[aria-pressed=true]::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:var(--accent)}html body.aid-shell .review-tabs .episode-button[aria-pressed=true] span{color:var(--ink)}
html body.aid-shell .comment-filters{gap:4px;padding:0 14px 10px}html body.aid-shell .comment-filters button{border-radius:10px;padding:6px 10px;min-height:34px;font-size:var(--type-meta);background:transparent;color:var(--muted);box-shadow:none;border-color:transparent}
html body.aid-shell :is(.vchip.on,.episode-deck .vchip.on,.language-switch button[aria-pressed=true],.aid-nav .nav-account .language-switch button[aria-pressed=true],.planning .plan-switch [aria-pressed=true],.view-toggle button[aria-pressed=true],#working-files .view-toggle button[aria-pressed=true],.date-picker-summary button[aria-pressed=true],.file-browser .file-tree button[aria-pressed=true],.folder-tabs button.active,.tg-chat[aria-pressed=true],.tg-topic[aria-pressed=true],.person.active,.uimenu button.on,.quality-menu button[aria-selected=true],#planning .plan-mobile-tools button[aria-pressed=true],.personal-tabs a[aria-current=page]){background:var(--pan2);color:var(--ink);box-shadow:var(--light);border-color:transparent}
html body.aid-shell :is(.language-switch button,.aid-nav .nav-account .language-switch button,.planning .plan-switch button,.view-toggle button,#working-files .view-toggle button,.date-picker-summary button,.file-browser .file-tree button,.folder-tabs button,.tg-chat,.tg-topic,.uimenu button,.quality-menu button,.work-stage-menu button,#planning .plan-mobile-tools button,.plan-mobile-tools button){background:transparent;color:var(--muted);border:1px solid transparent;border-radius:10px;box-shadow:none}
html body.aid-shell :is(.language-switch button,.planning .plan-switch button,.view-toggle button,.file-browser .file-tree button,.folder-tabs button,.tg-chat,.tg-topic,.uimenu button,.quality-menu button,.work-stage-menu button):hover{background:#ffffff0a;color:var(--ink)}
html body.aid-shell .folder-tabs button.active strong,html body.aid-shell .folder-tabs button.active svg{color:var(--ink)}
html body.aid-shell .vchip,html body.aid-shell .vchip.pub{min-height:32px;padding:4px 10px;border:0;border-radius:99px;font-size:var(--type-meta);background:transparent;color:var(--muted);box-shadow:none}html body.aid-shell .vchip:hover{background:#242d38;color:var(--ink)}
html body.aid-shell .planning .plan-switch [aria-pressed=true]{border-bottom-width:1px}html body.aid-shell .team-tabs a{padding:10px 0;font-size:var(--type-body)}
html body.aid-shell :is(.view-toggle,#working-files .view-toggle,.plan-mobile-tools,.language-switch){border:0;background:#ffffff08;border-radius:12px;padding:2px}html body.aid-shell :is(.view-toggle button,#working-files .view-toggle button,.plan-mobile-tools button,.language-switch button){border-radius:10px}
html body.aid-shell .date-month-grid button[aria-current=date]:not([aria-selected=true]){border-color:transparent;color:var(--accent-text);font-weight:600;box-shadow:inset 0 2px 0 var(--accent)}
html body.aid-shell #planning .agenda-days button{background:transparent;border-radius:10px;border-color:transparent;box-shadow:none;color:var(--muted)}html body.aid-shell #planning .agenda-days button[aria-current=date]{box-shadow:inset 0 2px 0 var(--accent)}html body.aid-shell #planning .agenda-days button[aria-pressed=true]{background:var(--btn-hover);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}html body.aid-shell #planning .agenda-person .agenda-task{border-radius:10px;border-color:transparent;box-shadow:var(--light)}
html body.aid-shell .tg-chats{background:#ffffff04;border-right-color:var(--edge-soft)}html body.aid-shell .tg-chat.tg-related{box-shadow:none}html body.aid-shell .tg-chat.tg-related::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);margin-left:auto;flex:none;box-shadow:0 0 0 3px #67dbb122}
html body.aid-shell :is(.review-tabs .episode-button,.comment-filters button,.vchip,.folder-tabs button,.tg-chat,.tg-topic,.file-tree button,.person,.view-toggle button,.date-picker-summary button,.nav-links a){transition:background var(--fast),color var(--fast),box-shadow var(--fast)}
/* ===== 8. the episode desk: ONE panel — tabs on top, the frame as a dark stage, the discussion on the panel ===== */
html body.aid-shell #ephead,html body.aid-shell .ephead{display:flex;align-items:center;gap:6px;position:relative;padding:10px 12px 6px;margin:0;border:1px solid var(--edge);border-bottom:1px solid var(--edge);border-radius:var(--r) var(--r) 0 0;background:var(--pan-top);box-shadow:inset 0 1px 0 #ffffff12;overflow:visible}
html body.aid-shell .ephead .episode-card{flex:0 0 auto;min-width:0}
html body.aid-shell .ephead .eptab{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:8px;width:auto;min-width:0;max-width:none;min-height:0;margin:0;padding:9px 12px 11px;border:0;border-radius:10px 10px 0 0;background:transparent;color:var(--muted);font-size:14px;font-weight:400;line-height:21px;letter-spacing:0;box-shadow:none;transition:color var(--fast),background var(--fast)}
html body.aid-shell .ephead .eptab b{color:var(--ink);font-weight:600;font-size:14px;line-height:21px;white-space:nowrap}
html body.aid-shell .ephead .eptab .n,html body.aid-shell .ephead .eptab .episode-current{font-size:14px;font-weight:400;line-height:21px;letter-spacing:0;color:var(--muted);margin:0;opacity:1;white-space:nowrap}
html body.aid-shell .ephead .eptab .episode-current::before{content:"·";margin:0 4px 0 0}
/* при наведении серия не заливается прямоугольником: светлеет подпись и появляется
   серая полоска-закладка снизу — тот же язык, что у выбранной серии (owner, 2026-09-20) */
html body.aid-shell .ephead .eptab:hover{background:transparent;color:var(--ink)}
html body.aid-shell .ephead .eptab:hover b{color:#fff}
/* Выбранная серия — закладка папки. Заливка и контур растворяются книзу (маска),
   поэтому нижнего края не видно и закладка не «упирается» в линию. Контур едва заметный:
   он подсказывает форму, а не рисует рамку (owner, 2026-09-20). */
html body.aid-shell .ephead .eptab.on{color:var(--ink);background:transparent;box-shadow:none;border:0;outline:0}
html body.aid-shell .ephead .eptab.on::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:10px 10px 0 0;
  background:linear-gradient(180deg,#303a47 0,#2a3340 60%,#232b36 100%);
  box-shadow:inset 0 1px 0 #ffffff0a,inset 1px 0 0 #ffffff05,inset -1px 0 0 #ffffff05;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%)}
html body.aid-shell .ephead .eptab.on .episode-current{color:var(--ink)}
html body.aid-shell .ephead .eptab:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
html body.aid-shell .ephead .eptab.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:0;background:var(--accent);transform-origin:left;animation:aid-underline var(--base) var(--ease) both}
@keyframes aid-underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* счётчик — нейтральная пилюля с иконкой сообщения: цифра без иконки читалась как код,
   а цветом кричали все серии сразу (owner, 2026-09-20) */
/* Комната клиента берёт те же детали, что и стол: счётчик у вкладки, выбор версии
   правок и подпись под строкой ввода (owner, 2026-09-20). */
html body.aid-shell .review-tabs .eptab .tabcnt{position:static;display:inline-flex;align-items:center;justify-content:center;gap:4px;height:22px;min-height:22px;padding:2px 8px;border:0;border-radius:99px;font-size:12px;font-weight:400;line-height:18px;font-variant-numeric:tabular-nums;background:#ffffff0f;color:var(--muted)}
html body.aid-shell .note-version-filter{margin-left:auto}

html body.aid-shell .review-composer .cbhint{display:block;margin:2px 0 0;padding:0 4px;color:var(--muted);font-size:var(--type-meta)}
/* Счётчик правок у вкладки серии выглядит одинаково у плеера и в окне переноса */
html body.aid-shell :is(#ephead .eptab.episode-tab,#transfer-ephead .eptab) .tabcnt{position:static;display:inline-flex;align-items:center;justify-content:center;flex:none;gap:4px;width:auto;min-width:0;height:22px;min-height:22px;box-sizing:border-box;margin:0;padding:2px 8px;border:0;border-radius:99px;font-size:12px;font-weight:400;line-height:18px;letter-spacing:0;font-variant-numeric:tabular-nums;background:#ffffff0f;color:var(--muted)}
html body.aid-shell :is(#ephead .eptab.episode-tab,#transfer-ephead .eptab) .tabcnt [data-comment-count]{font:inherit;color:inherit}
html body.aid-shell :is(#ephead .eptab.episode-tab,#transfer-ephead .eptab) .tabcnt svg{display:block;width:12px;height:12px;opacity:.8}
html body.aid-shell :is(#ephead .eptab.episode-tab,#transfer-ephead .eptab) .tabcnt.all-done,html body.aid-shell :is(#ephead,#transfer-ephead) .eptab.on .tabcnt.all-done{background:#ffffff0f;color:var(--muted)}
html body.aid-shell .eptab.on .tabcnt{background:#ffffff1a;color:var(--ink2)}
html body.aid-shell .episode-card .episode-peek{left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:#4b596b;opacity:0;transition:opacity var(--fast)}
html body.aid-shell .episode-card:hover .episode-peek,html body.aid-shell .episode-card.deck-open .episode-peek{opacity:1}
html body.aid-shell .epwrap{border:0;border-radius:var(--r);background:transparent;box-shadow:none}
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded){gap:12px;padding:12px;margin:0 0 24px;background:linear-gradient(180deg,#232b36,#1e2531);border:1px solid var(--edge);border-top:0;border-radius:0 0 var(--r) var(--r);box-shadow:0 12px 30px #0a0e1466}
/* Плеер больше не тёмное окно: фон общий со столом, а кадр лежит карточкой поверх него.
   Кнопки видео, показ клиенту и стадии остаются на одном фоне (owner, 2026-09-20). */
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) :is(.epplayer,.review-player){background:transparent;border:0;border-radius:0;box-shadow:none}
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) :is(.vwrap,.video-shell){border-radius:14px;overflow:hidden;box-shadow:0 24px 48px -24px #000000d9,0 0 0 1px #ffffff14}
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) .desk-footer{border-top:0}
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded) .epcol{background:transparent;border:0;border-radius:0;box-shadow:none}
html body.aid-shell .review-shell .review-player{background:var(--stage-dark);border:0;border-radius:var(--r)}
html body.aid-shell .epcol h4.discussion-head{padding:6px 16px 10px 52px;gap:8px;border:0;border-bottom:1px solid var(--edge-soft);background:transparent}
html body.aid-shell .epcol .comment-audience{padding:8px 10px;font-size:var(--type-caption);color:#8f9aab}
html body.aid-shell .epcol .pullrow{padding:10px 8px 2px}
html body.aid-shell .pullbtn{background:var(--pan2);color:var(--ink);border:1px solid var(--btn-edge);box-shadow:var(--light);border-radius:10px;font-family:inherit;letter-spacing:0}
html body.aid-shell .handoff-controls{border:0}
html body.aid-shell .desk-footer{border-top:1px solid #ffffff0a}
html body.aid-shell .desk-footer .episode-work-state{border-top:1px solid #ffffff0a}
/* Пульт задачи стоит в шапке плеера рядом с «Показать клиенту»: одна строка, кнопки по
   содержимому. Под перепиской он был панелью во всю колонку с пустотой (owner, 2026-09-20). */
html body.aid-shell .publication-bar .handoff-controls{order:-2;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;border:0;background:transparent}
html body.aid-shell .publication-bar .handoff-controls .team-error:not([hidden]){flex:1 0 100%}
/* «Передать» — обычная кнопка, без подсветки: её вид задаёт общий стиль списков ниже */
html body.aid-shell .publication-bar .handoff-destination{width:auto;min-height:36px;border-radius:9px}
html body.aid-shell .publication-bar .handoff-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:0}
html body.aid-shell .publication-bar .handoff-buttons button{width:auto;min-height:36px;padding:7px 14px;border-radius:9px;font-size:var(--type-meta);font-weight:600;white-space:nowrap}
/* Кого просят о помощи — списком в один столбец, с ролью под именем */
html body.aid-shell .help-dialog .help-people{display:grid;gap:2px;max-height:40dvh;overflow:auto;margin:0 0 14px;padding:0;border:0}
html body.aid-shell .help-dialog .help-people legend{padding:0;margin:0 0 6px;color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .help-dialog .help-people label{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 8px;border-radius:9px;cursor:pointer}
html body.aid-shell .help-dialog .help-people label:hover{background:#ffffff0d}
html body.aid-shell .help-dialog .help-people input{width:18px;height:18px;margin:0;accent-color:var(--accent);cursor:pointer}
html body.aid-shell .help-dialog .help-people small{color:var(--muted)}
html body.aid-shell .help-dialog textarea{width:100%}
html body.aid-shell .help-dialog #help-error:not([hidden]){margin:0 0 8px;color:#ffb2a6;font-size:var(--type-meta)}
html body.aid-shell .publication-status{color:var(--muted);order:0}html body.aid-shell .publication-bar .pubbtn{order:-1}html body.aid-shell .publication-bar .sound-state{order:1}html body.aid-shell .publication-error{order:2}
html body.aid-shell .vbar .vtrack{background:#2c3541}
html body.aid-shell :is(.vtimeline-caption,.vrhint){color:#8f9aab}
/* comments in the column */
html body.aid-shell .cmts{padding:0 4px 24px}
html body.aid-shell .cm{border-top:1px solid var(--edge-soft);padding:12px 8px;transition:opacity var(--base) var(--ease),background var(--fast)}html body.aid-shell .cm:first-child{border-top:0}
html body.aid-shell .cm.is-selected,html body.aid-shell .cm[data-cid]:focus-visible{outline:0;background:#ffffff06;box-shadow:inset 2px 0 0 var(--accent)}
html body.aid-shell .cm .av{width:32px;flex-basis:32px;height:32px;border-radius:50%;background:#2f3947;color:var(--ink2);font-size:var(--type-meta);font-weight:600;border:0}html body.aid-shell .cm .av.cl{background:#3a2a24;color:#ffb39a}
html body.aid-shell .cm .hd{font-size:var(--type-meta);color:var(--muted);gap:8px}html body.aid-shell .cm .hd b{font-size:var(--type-meta);color:var(--ink);font-weight:600}
html body.aid-shell .cm .tc{background:transparent;border:0;padding:0 2px;min-height:0;color:var(--accent-text);font-variant-numeric:tabular-nums;font-family:inherit;border-radius:4px}html body.aid-shell .cm .tc:hover{text-decoration:underline;text-underline-offset:3px}
html body.aid-shell .cm p{font-size:var(--type-body);line-height:1.45;margin:4px 0 8px}html body.aid-shell .cm .meta{font-size:var(--type-meta);color:var(--dim);font-family:inherit}html body.aid-shell .cm.reply{border-left:2px solid var(--edge);margin-left:36px}
html body.aid-shell .cm.res{opacity:.72}
html body.aid-shell .cm.adm{background:transparent;border-left-color:var(--edge)}html body.aid-shell .cm.adm .av,html body.aid-shell .admchip{background:var(--pan2);color:var(--ink2)}
html body.aid-shell .comment-time{background:transparent;color:var(--accent-text);font-variant-numeric:tabular-nums;padding:0 2px;min-height:0}html body.aid-shell .review-comment.highlighted{background:#ffffff06;box-shadow:inset 2px 0 0 var(--accent)}
/* the composer dissolves out of the list and rises a little at the bottom of the column */
/* Строка ввода стоит там же, где сами сообщения: слева — за аватаром, справа — по краю
   пузырей, не залезая под полосу прокрутки. Фон совпадает с низом панели, иначе плашка
   читается светлым прямоугольником вокруг поля (owner, 2026-09-20). */
html body.aid-shell :is(.epcol .cbox,.review-discussion .review-composer){background:transparent;border:0;border-radius:0;box-shadow:none;padding:8px 26px 12px 52px}
html body.aid-shell .cbox .cbtext{background:var(--field);border:1px solid var(--field-edge);border-radius:10px;box-shadow:inset 0 1px 2px #00000066;color:var(--ink)}
html body.aid-shell .cbox .cbtext:is(:focus,:focus-visible){border-color:var(--field-focus);box-shadow:inset 0 1px 2px #00000066,0 0 0 3px #ff30001f;outline:0!important}
html body.aid-shell .cbox .cbsend-icon{background:var(--pan2);color:#c7cfda;box-shadow:var(--light)}html body.aid-shell .cbox .cbsend-icon:hover{background:var(--accent);color:#fff}
html body.aid-shell .cbox .pend{background:#f3bd6c22;color:#f3bd6c}
html body.aid-shell .cbox .cbfold{color:#8f9aab}html body.aid-shell .cbox .cbfold:hover{background:#ffffff0a;color:var(--ink)}
html body.aid-shell .cbox .tclear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-height:0;padding:0;margin:0 2px 0 -2px;border:0;border-radius:4px;background:transparent;box-shadow:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer}
html body.aid-shell .cbox .tclear:hover{color:var(--ink);background:#ffffff14}
html body.aid-shell .cbox .tclear[hidden]{display:none}
html body.aid-shell .cbox .tchip,html body.aid-shell #take-time{min-height:0;padding:0 6px;line-height:18px;color:var(--accent-text);font-variant-numeric:tabular-nums;font-size:var(--type-caption);background:transparent;box-shadow:none}
html body.aid-shell .vversions{border-top:1px solid var(--edge-soft)}
/* the versions deck under a tab */

/* ===== 9. calendar (clean planner) — the whole thing is one panel, as the mock's .cal ===== */
html body.aid-shell .plan-track{min-height:44px}
html body.aid-shell .plan-idle-row .plan-track{min-height:40px}
/* Полосы планировщика оформлены так же, как календарь сотрудника: градиент сверху
   вниз, светлая кромка и тень — объём вместо плоской заливки (owner, 2026-09-20). */
/* Точки по числу серий в конце полосы: объём работы виден не только по надписи */
html body.aid-shell .plan-bar .plan-bar-marks{display:flex;gap:3px;flex:none;margin-left:auto;padding-left:8px}
html body.aid-shell .plan-bar .plan-bar-marks i{width:5px;height:5px;border-radius:2px;background:#ffffffb3}
html body.aid-shell .plan-bar{top:6px;height:22px;min-height:22px;padding:0 8px;display:flex;align-items:center;border-radius:11px;border-left-width:3px;background-image:linear-gradient(160deg,#ffffff3d 0,#ffffff0f 46%,#00000026 100%);text-shadow:0 1px 2px #05080f66;box-shadow:0 8px 18px #05080f59,inset 0 1px 0 #ffffff3d,inset 0 -1px 0 #0000003d}
html body.aid-shell .plan-bar b.plan-bar-title{display:flex;font-size:11.5px;font-weight:600;min-width:0;white-space:nowrap;line-height:1.2}
html body.aid-shell .plan-bar .plan-bar-project{flex:none}
html body.aid-shell .plan-bar .plan-bar-episodes{overflow:hidden;text-overflow:ellipsis;min-width:0}
html body.aid-shell .plan-bar small{display:none}
html body.aid-shell .plan-person-identity strong{font-size:var(--type-body)}
html body.aid-shell .plan-owner-department{font-size:var(--type-caption)}
html body.aid-shell .plan-track,html body.aid-shell .plan-idle-row .plan-track{min-height:30px}
html body.aid-shell .plan-task-row>.plan-label{padding-block:2px}
html body.aid-shell .plan-person-identity{padding-block:6px}
html body.aid-shell .plan-owner-avatar{width:28px;height:28px;font-size:11px}
html body.aid-shell .clean-planner .plan-person-lanes .plan-task-row .plan-track,html body.aid-shell .clean-planner .plan-person-block .plan-track{height:34px;min-height:34px}
html body.aid-shell .clean-planner .plan-person-lanes .is-expanded .plan-track{height:28px;min-height:28px}
html body.aid-shell .clean-planner .plan-person-block.is-idle .plan-track,html body.aid-shell .planning .plan-idle-row>.plan-track{min-height:34px}
html body.aid-shell .plan-person-block .plan-owner{min-height:40px}
html body.aid-shell .plan-grid-row{min-width:calc(var(--p-label) + var(--days)*82px)}
html body.aid-shell .clean-planner.planning .plan-bar{top:6px;height:22px;min-height:22px;padding:0 7px;border-radius:11px;display:flex;align-items:center}
html body.aid-shell .clean-planner .plan-bar .plan-bar-title{font-size:11px;font-weight:600;line-height:1.2;display:flex;white-space:nowrap;min-width:0;letter-spacing:-.01em;gap:0}
html body.aid-shell .clean-planner .plan-bar .plan-bar-project{flex:none}
html body.aid-shell .clean-planner .plan-bar .plan-bar-episodes{overflow:hidden;text-overflow:ellipsis;min-width:0}
html body.aid-shell .clean-planner .plan-bar small{display:none}
html body.aid-shell .clean-planner .plan-person-block{margin:0;min-height:76px;border-top:1px solid var(--edge-soft);border-bottom:0;background:transparent}
html body.aid-shell .clean-planner .plan-person-block:first-of-type{border-top:0}
html body.aid-shell .clean-planner .plan-person-block .plan-person-identity{align-self:start;padding:10px 12px;background:#ffffff04;box-shadow:none;border-right:1px solid var(--edge-soft);min-height:100%}
html body.aid-shell .clean-planner .plan-person-lanes{padding:6px 0 8px;display:flex;flex-direction:column;align-self:stretch}
html body.aid-shell .clean-planner .plan-person-block .plan-track{background-color:transparent;--p-day-line:#ffffff08}
html body.aid-shell .clean-planner .plan-weekend,html body.aid-shell .planning .plan-weekend{background:#00000024}
html body.aid-shell .plan-day-heads>div{position:relative;background:transparent;border-right:1px solid var(--edge-soft);color:var(--dim);font-size:var(--type-meta);box-shadow:none}
html body.aid-shell .plan-day-heads>div b{font-weight:600;color:var(--ink2)}
html body.aid-shell .plan-day-heads>div.is-weekend,html body.aid-shell .plan-day-heads .is-weekend{background:#00000024;box-shadow:none}
html body.aid-shell .plan-day-heads>div.is-today{color:var(--accent-text);box-shadow:none}
html body.aid-shell .plan-day-heads>div.is-today b{color:var(--accent-text)}
html body.aid-shell .plan-day-heads>div.is-today::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--accent)}
html body.aid-shell .plan-day-heads>div.is-today::after{display:none}
html body.aid-shell .planning .plan-day-heads .is-today,html body.aid-shell .clean-planner .plan-day-heads .is-today{border-bottom:0;box-shadow:none}
html body.aid-shell .plan-grid-head{background:var(--pan-top);box-shadow:none;border-bottom:1px solid var(--edge)}
html body.aid-shell .plan-grid-head .plan-label{background:transparent;color:var(--muted);font-size:var(--type-body)}
html body.aid-shell .plan-owner-identity strong{font-size:var(--type-body)}
html body.aid-shell .clean-planner .plan-person-block.is-idle{min-height:48px}
html body.aid-shell .clean-planner .plan-person-block.is-idle .plan-idle-row .plan-track{min-height:34px}
html body.aid-shell .clean-planner .plan-person-block.is-idle .plan-owner-department{display:none}
html body.aid-shell .clean-planner .plan-person-block .plan-label.plan-person-identity{display:flex;align-items:flex-start;justify-content:flex-start;align-self:stretch}
html body.aid-shell .clean-planner .plan-person-lanes>.plan-grid-row:last-child{flex:1;display:flex;flex-direction:column}
html body.aid-shell .clean-planner .plan-person-lanes>.plan-grid-row:last-child .plan-track{flex:1 1 auto;height:auto;min-height:34px}
html body.aid-shell .plan-split-row{margin:14px 0 0}
/* ===== 10. dialogs, popovers, menus, toasts: one raised surface, one entrance ===== */
@keyframes aid-pop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes aid-fade{from{opacity:0}to{opacity:1}}
@keyframes aid-lift{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes aid-slide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes aid-rise{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}
html body.aid-shell :is(dialog:not(.phone-menu),.file-action-dialog,.publication-dialog,.episode-handoff-dialog,.handoff-dialog,.client-project-dialog,.tg-dialog,.date-picker,.nav-settings-dialog,#materials-ready,#final-delete-dialog,.clean-planner dialog.plan-editor,.planning .plan-editor){background:var(--pan);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-pop);color:var(--ink)}
/* menus, popovers, tooltips: one frosted, tinted glass (iOS-like), one entrance */
html body.aid-shell :is(.aid-menu,.quality-menu,.uimenu,.imenu,.work-stage-menu,.plan-hover,.ui-info-body,.plan-filter-popover,.board-uploads,.project-stages-popover,.stickpick,.cv-tools,.cv-zoom,.cvhelp,.desk-ready .quality-status:not(:empty)),html body.aid-shell #working-files .file-row[data-who]::after{background:var(--glass);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);border:1px solid #ffffff14;border-radius:12px;box-shadow:0 18px 44px #0a0e1480,inset 0 1px 0 #ffffff14;color:var(--ink)}
html body.aid-shell :is(.aid-menu,.quality-menu,.uimenu,.work-stage-menu) button{display:flex;align-items:center;justify-content:flex-start;width:100%;text-align:left;min-height:36px;padding:8px 12px;border-radius:8px;background:transparent;box-shadow:none;border-color:transparent;color:var(--ink2);font-weight:500;font-size:var(--type-body)}
html body.aid-shell :is(.aid-menu,.quality-menu,.uimenu,.work-stage-menu) button:hover{background:#ffffff0c;color:var(--ink)}
html body.aid-shell :is(.aid-menu,.quality-menu,.uimenu,.work-stage-menu) button:is([aria-selected=true],.on){background:#ffffff14;color:var(--ink);box-shadow:none}
html body.aid-shell .aid-menu button.with-icon{gap:10px}
html body.aid-shell .aid-menu button.with-icon .aid-icon{flex:none;opacity:.85}
/* Position is measured on opening; transform animation would corrupt that measurement. */
html body.aid-shell .aid-menu,html body.aid-shell .aid-menu[popover]:popover-open{animation:aid-fade 160ms var(--ease) both}
html body.aid-shell dialog:not(.phone-menu)[open]{animation:aid-pop var(--base) var(--ease) both}
html body.aid-shell dialog::backdrop{background:#080d16b8;animation:aid-fade var(--base) var(--ease) both}
html body.aid-shell .phone-menu[open]{animation:aid-slide 240ms var(--ease) both}html body.aid-shell .phone-menu::backdrop{background:#080d16b3;animation:aid-fade var(--base) var(--ease) both}
html body.aid-shell [popover]:popover-open,html body.aid-shell .episode-deck.deck-fallback-open,html body.aid-shell :is(.plan-hover,.uimenu,.quality-menu,.work-stage-menu,.imenu,.stickpick,.plan-filter-popover,.board-uploads,.project-stages-popover):not([hidden]),html body.aid-shell .ui-info[open]>.ui-info-body{animation:aid-pop 180ms var(--ease) both}
/* колода версий живёт по своим правилам: её появление и уход рисует _episode_deck.html
   одним движением, а общий поп со сдвигом и масштабом сбивал замер положения (owner, 2026-09-20) */
html body.aid-shell .episode-deck:is(:popover-open,.deck-fallback-open){animation:none}
html body.aid-shell :is(.undobar,.plan-message,.toast){background:#0e141bf5;color:var(--ink);border:1px solid #3f4d5d;border-radius:var(--r2);box-shadow:0 12px 30px #0009,inset 2px 0 0 var(--accent);padding:10px 16px 10px 18px;font-size:var(--type-body)}
html body.aid-shell .undobar{animation:aid-lift var(--base) var(--ease) both}html body.aid-shell .undobar .ub-k{opacity:.7}
html body.aid-shell :is(.notice,.msg){background:var(--pan2);border:1px solid transparent;border-radius:var(--r2);box-shadow:inset 2px 0 0 var(--accent),var(--light);color:var(--ink2);padding:12px 16px 12px 18px}
html body.aid-shell .msg{box-shadow:inset 2px 0 0 var(--ok),var(--light)}
html body.aid-shell :is(.notice.error,.err,.team-error,.episode-upload-error){background:var(--pan2);border:1px solid transparent;border-radius:var(--r2);box-shadow:inset 2px 0 0 var(--danger),var(--light);color:#ffd8df;padding:12px 16px 12px 18px}
html body.aid-shell .plan-editor-heading{border-bottom-color:var(--edge-soft)}html body.aid-shell .plan-form-foot{border-top-color:var(--edge-soft);background:transparent}
html body.aid-shell .tg-dialog .panel{background:transparent;border:0;border-top:1px solid var(--edge-soft);border-radius:0;box-shadow:none}
html body.aid-shell .ui-help{background:transparent;border:0;border-radius:0;box-shadow:none}html body.aid-shell .ui-help[open]{box-shadow:inset 2px 0 0 var(--accent);padding-left:14px;border-radius:0}
html body.aid-shell .ui-info>summary>span[aria-hidden]{border-color:#495463}
/* lists arrive as one motion: cards rise with a short stagger */
html body.aid-shell :is(.client-orders .client-order,.work-projects .work-project,.production-cards .production-card,.home-projects article,.tiles .tile,.grid .tile){animation:aid-rise 240ms var(--ease) both;animation-delay:var(--order-delay,0ms)}
html body.aid-shell :is(.work-projects .work-project,.production-cards .production-card,.home-projects article,.grid .tile):nth-child(2){--order-delay:40ms}
html body.aid-shell :is(.work-projects .work-project,.production-cards .production-card,.home-projects article,.grid .tile):nth-child(3){--order-delay:80ms}
html body.aid-shell :is(.work-projects .work-project,.production-cards .production-card,.home-projects article,.grid .tile):nth-child(4){--order-delay:120ms}
html body.aid-shell :is(.work-projects .work-project,.production-cards .production-card,.home-projects article,.grid .tile):nth-child(n+5){--order-delay:160ms}
/* ===== 11. card type ===== */
html body.aid-shell :is(.home-section-title h2,.client-section-head h2,.folder-empty h3){font-weight:600}
html body.aid-shell :is(.client-order h3,.project-card-body h3,.home-project-title,.production-card h2,.production-card h3,.ocard h3,.tile h2){font-weight:700;letter-spacing:-.01em}
html body.aid-shell :is(.ocard,.poster-grid .ocard) .m{font-size:var(--type-meta);color:var(--muted);margin:0 0 8px}html body.aid-shell :is(.ocard,.poster-grid .ocard) .pct{font-size:var(--type-body);font-weight:600;font-variant-numeric:tabular-nums}html body.aid-shell :is(.ocard,.poster-grid .ocard) .pct small{font-size:var(--type-meta);color:var(--muted);font-weight:400;margin-left:3px}html body.aid-shell :is(.ocard,.poster-grid .ocard) .due{font-size:var(--type-meta);color:var(--muted);font-weight:400}
html body.aid-shell .work-project-progress,html body.aid-shell .work-project-date{font-size:var(--type-meta);color:var(--muted)}html body.aid-shell .work-project-progress strong{color:var(--ink)}
html body.aid-shell .ohero .meta .k{font-size:var(--type-meta);color:var(--muted);margin-bottom:4px}
html body.aid-shell .g-today::before,html body.aid-shell .tl-now::after{font-weight:600}html body.aid-shell .tl-now::after{background:transparent;color:var(--accent-text);border:1px solid #ff7a5c80;box-shadow:none}
/* ===== 12. phones ===== */
@media(max-width:900px){
 html body.aid-shell>header.aid-nav{border-right:0;border-bottom:1px solid var(--edge-soft);background:linear-gradient(180deg,#1b212a,#171c24)}
 html body.aid-shell #ephead,html body.aid-shell .ephead{padding:8px 8px 6px;border-radius:var(--r2) var(--r2) 0 0;flex-wrap:wrap;row-gap:10px}
 html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded){padding:8px;gap:12px;border-radius:0 0 var(--r2) var(--r2)}
 html body.aid-shell dialog.date-picker{border:0;border-radius:var(--r) var(--r) 0 0}html body.aid-shell .clean-planner #plan-editor[open]{border:0;border-radius:0;box-shadow:none;animation:none}
 html body.aid-shell .clean-planner .plan-form-foot{background:#1e2531}
 html body.aid-shell .desk-footer .vbar .handoff-controls{grid-column:1/-1;grid-row:3;justify-self:stretch}
}
@media(max-width:700px){html body.aid-shell tr[data-settings-stage] td{border:0}}
@media(max-width:600px){
 html body.aid-shell :is(button,.btn,.button){min-height:44px}
 html body.aid-shell :is(.work-project-actions a,.file-browser .upload-label,.employee-open,#working-files .file-breadcrumbs button,#target-folder button,.date-picker button,.folder-tabs button,.delivery-state button,.handoff-buttons button,.handoff-destination,.review-heading .button,.production-action .secondary,.cbox button[type=submit]:not(.cbsend-icon),.planning .plan-cancel,.planning .plan-save,#plan-editor .plan-handoff-open,.team-heading .heading-actions .calendar-assign,.clean-planner .plan-new,.client-project-dialog .client-stage-tools button,#materials-ready button,#final-selection button,#final-folder-form button,#working-files .file-selection button,#working-files #file-new-folder,#final-new-folder,.clean-planner .plan-navigation button,.role-preview-banner button){min-height:44px;height:auto}
 html body.aid-shell :is(.vbar .vbtn,.cbfold,.cbsend-icon,.vclear-range,.ui-info>summary){min-height:0}
 html body.aid-shell :is(.client-order,.work-project,.production-card,.ocard,.home-project,.tile,.pcard,.dcard,.scr-card,.team-project-list a,.team-ticket):hover{transform:none}
}
@media(prefers-reduced-motion:reduce){html body.aid-shell *,html body.aid-shell *::before,html body.aid-shell *::after,html body.aid-shell dialog::backdrop{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* production process on cards: stage line, then status · who · due in one muted line (owner, 2026-09-15) */
html body.aid-shell .project-work-stages{gap:6px;margin-top:10px}
html body.aid-shell .project-work-stages .project-work-stage{min-height:0;padding:2px 0;gap:0 6px;font-size:var(--type-meta);line-height:18px}
html body.aid-shell .project-work-stage strong{flex-basis:100%;font-size:var(--type-meta);font-weight:600;color:var(--ink)}
html body.aid-shell .project-work-stage span{color:var(--muted)}
html body.aid-shell .project-work-stage .project-work-who::before,html body.aid-shell .project-work-stage .project-work-due::before{content:"·";margin-right:6px;color:var(--dim)}
html body.aid-shell .project-work-stage .project-work-due{color:var(--ink2)}
html body.aid-shell .project-work-stages .project-work-more{min-height:0;font-size:var(--type-meta);color:var(--muted);padding:2px 0}
/* episode facts on cards and the desk */
html body.aid-shell .project-facts{display:grid;gap:3px;margin-top:10px;font-size:var(--type-meta);line-height:18px}
html body.aid-shell .project-facts-summary{color:var(--ink2);font-weight:600;margin-bottom:2px}
html body.aid-shell .project-fact{display:flex;gap:8px;color:var(--muted);min-width:0}
html body.aid-shell .project-fact b{flex:none;width:22px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
html body.aid-shell .project-fact span{min-width:0;overflow-wrap:anywhere}
html body.aid-shell .episode-work-items .episode-fact{flex:0 0 100%;min-height:28px}
html body.aid-shell .project-fact-more span{color:var(--dim)}
html body.aid-shell .episode-work-item.episode-fact strong{color:var(--ink)}
/* series × stage board (owner, 2026-09-14) */
html body.aid-shell .pipe-legend,html body.aid-shell .pipe-dots{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--type-meta);line-height:18px}
html body.aid-shell .pipe-legend{color:var(--dim);font-size:10px;letter-spacing:.04em;text-transform:uppercase;margin-top:6px}
html body.aid-shell .pipe-legend b,html body.aid-shell .pipe-dots b{flex:none;width:22px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
html body.aid-shell .pipe-legend span{flex:none;width:14px;text-align:center;overflow:visible;white-space:nowrap}
html body.aid-shell .pipe-dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid #4a5666;background:transparent;box-sizing:border-box}
html body.aid-shell .pipe-dots .pipe-dot{margin:0 2px}
html body.aid-shell .pipe-dot.is-done,html body.aid-shell .pipe-dot.is-delivered,html body.aid-shell .pipe-dot.is-approved{background:var(--ok);border-color:var(--ok)}
html body.aid-shell .pipe-dot.is-progress{background:var(--accent);border-color:var(--accent)}
html body.aid-shell .pipe-dot.is-planned{border-color:#8ca0b8}
html body.aid-shell .pipe-dot.is-overdue{background:var(--danger);border-color:var(--danger)}
html body.aid-shell .pipe-dot.is-blocked,html body.aid-shell .pipe-dot.is-waiting{border-color:var(--warn);background:linear-gradient(90deg,var(--warn) 50%,transparent 50%)}
html body.aid-shell .pipe-dot.is-mix,html body.aid-shell .pipe-dot.is-stale{border-color:var(--ok);background:linear-gradient(90deg,var(--ok) 50%,transparent 50%)}
html body.aid-shell .pipe-dot.is-changes{background:var(--warn);border-color:var(--warn)}
html body.aid-shell .pipe-dot.is-pending,html body.aid-shell .pipe-dot.is-time{border-color:var(--info);background:linear-gradient(90deg,var(--info) 50%,transparent 50%)}
html body.aid-shell .pipe-client{min-width:0;margin-left:6px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Стадии — невидимая таблица: точка, стадия, имя и срок стоят в своих колонках,
   поэтому вторая подпись в каждой строке начинается на одном месте (owner, 2026-09-20). */
/* Третий столбик появляется, когда полосе хватает ширины: шесть этапов встают в два
   ряда вместо трёх. Считаем по ширине самой полосы, а не экрана — под плеером она
   узкая даже на большом мониторе, и имена там обрезались (owner, 2026-09-20). */
html body.aid-shell .episode-work-items{container-type:inline-size}
html body.aid-shell .pipe-chips{flex:0 0 100%;display:grid;grid-template-columns:repeat(2,auto minmax(0,1fr));align-items:center;gap:0 10px;padding:2px 0}
@container (min-width:520px){html body.aid-shell .pipe-chips{grid-template-columns:repeat(3,auto minmax(0,1fr))}}
@media(max-width:1100px){html body.aid-shell .epcol .pipe-chips,html body.aid-shell .desk-footer .pipe-chips{grid-template-columns:repeat(2,auto minmax(0,1fr))}}
html body.aid-shell .pipe-chip{display:contents}
html body.aid-shell .pipe-chip>*{min-height:22px;display:inline-flex;align-items:center}
html body.aid-shell .pipe-chip>i{width:10px;height:10px;min-height:0;flex:none;align-self:center;border-radius:50%}
/* Этап называет знак, состояние — его цвет: слова «Монтаж» и «Генерация» ушли,
   полное имя и состояние остаются в подсказке строки (owner, 2026-09-20). */
/* Состояние читается цветом знака: в работе — зелёный, просрочено — жёлтый,
   ждёт и не начато — полупрозрачный, нужна помощь — красный. Готовое становится
   белым, а в начале строки зажигается зелёная галочка; место под неё занято
   всегда, иначе столбцы разъезжаются (owner, 2026-09-20). */
html body.aid-shell .pipe-chip>i.pipe-mark{width:auto;height:auto;min-height:22px;border-radius:0;display:inline-flex;align-items:center;gap:4px;color:var(--ink);opacity:.38}
html body.aid-shell .aid-icon[data-icon^="stage-"]{stroke-width:1.3}
html body.aid-shell .pipe-mark .pipe-ok{display:inline-flex;width:13px;visibility:hidden;color:var(--ok)}
html body.aid-shell .pipe-mark .pipe-ok .aid-icon{stroke-width:2.4}
/* Вес селектора держим таким же, как у правила размера выше: иначе серый цвет
   по умолчанию перебивает состояние (ловушка веса записана в шапке файла). */
html body.aid-shell .pipe-chip>i.pipe-mark:is(.is-done,.is-delivered,.is-approved){color:var(--ink);opacity:1}
html body.aid-shell .pipe-chip>i.pipe-mark:is(.is-done,.is-delivered,.is-approved) .pipe-ok{visibility:visible}
html body.aid-shell .pipe-chip>i.pipe-mark:is(.is-progress,.is-mix,.is-stale){color:var(--ok);opacity:1}
html body.aid-shell .pipe-chip>i.pipe-mark.is-overdue{color:var(--warn);opacity:1}
html body.aid-shell .pipe-chip>i.pipe-mark.is-blocked{color:var(--danger);opacity:1}
html body.aid-shell .pipe-chip>small:empty{min-height:0}
html body.aid-shell .pipe-chip>*{font-size:var(--type-body);line-height:18px;color:var(--ink)}
html body.aid-shell .pipe-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;align-self:center}
html body.aid-shell .pipe-chip strong{font-weight:600}html body.aid-shell .pipe-chip span{color:var(--ink2)}html body.aid-shell .pipe-chip small{color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .pipe-chip.is-overdue small{color:var(--warn)}
html body.aid-shell a.pipe-chip:hover span{text-decoration:underline;text-underline-offset:3px}
/* Шапка страницы: полоса этапов стоит на месте строки «Серия · роль · срок».
   Сетка тут своя, по содержимому: под плеером колонка имени тянется на 1fr, и в шапке
   от этого подписи расползались по всей ширине экрана (owner, 2026-09-20). */
html body.aid-shell .desk-state-slot:empty{display:none}
html body.aid-shell .desk-state-slot{margin:0 0 12px}
html body.aid-shell .desk-state-slot .episode-work-state{padding-top:0;border-top:0}
html body.aid-shell .desk-state-slot .episode-work-items{align-items:center;gap:4px 20px}
html body.aid-shell .desk-state-slot .episode-work-item{min-height:26px}
html body.aid-shell .desk-state-slot .pipe-chips{flex:0 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:2px 20px;padding:0}
html body.aid-shell .desk-state-slot .pipe-chip{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%}
html body.aid-shell .desk-state-slot .pipe-chip>span{flex:0 1 auto;max-width:26ch}
html body.aid-shell .desk-state-slot .pipe-chip>span:empty{display:none}
html body.aid-shell .pipe-table-scroll{overflow-x:auto;margin-top:16px}
html body.aid-shell .pipe-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--type-body)}
html body.aid-shell .pipe-table th,html body.aid-shell .pipe-table td{padding:6px 8px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}
html body.aid-shell .pipe-table thead th{font-size:var(--type-meta);color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
html body.aid-shell .pipe-table tbody th{white-space:nowrap;font-weight:600}html body.aid-shell .pipe-table tbody th b{font-variant-numeric:tabular-nums;margin-right:8px}html body.aid-shell .pipe-table tbody th span{color:var(--muted);font-weight:400}
html body.aid-shell .pipe-cell{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border-radius:var(--r-m);background:transparent;border:1px solid transparent;color:var(--ink);font:inherit;font-weight:500;text-decoration:none;cursor:pointer;max-width:100%;box-shadow:none}
html body.aid-shell .pipe-cell:hover{border-color:var(--btn-edge);background:#ffffff08;box-shadow:none}
html body.aid-shell .pipe-cell-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:18ch}
html body.aid-shell .pipe-cell.is-none .pipe-cell-who,html body.aid-shell .pipe-cell.is-planned .pipe-cell-who{color:var(--muted)}
html body.aid-shell .pipe-cell-due{color:var(--muted);font-size:var(--type-meta);font-variant-numeric:tabular-nums}
html body.aid-shell .pipe-cell.is-overdue .pipe-cell-due{color:var(--danger)}
html body.aid-shell .pipe-cell-client .pipe-cell-who{max-width:34ch}
html body.aid-shell .pipe-pop{width:min(360px,calc(100vw - 32px));padding:16px 18px;border-radius:12px;background:var(--glass);backdrop-filter:blur(22px) saturate(1.35);border:1px solid #ffffff14;color:var(--ink);box-shadow:var(--sh-pop)}
html body.aid-shell .pipe-pop::backdrop{background:#080d1566}
html body.aid-shell .pipe-pop header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
html body.aid-shell .pipe-pop header button{min-height:32px;padding:0 8px;box-shadow:none}
html body.aid-shell .pipe-pop p{margin:0 0 6px;display:flex;align-items:center;gap:8px;font-size:var(--type-body)}
html body.aid-shell .pipe-pop .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
html body.aid-shell .pipe-project-line{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px}
html body.aid-shell .plan-board-heading p{margin:4px 0 0}
@media(max-width:600px){html body.aid-shell .pipe-client{display:none}html body.aid-shell .pipe-chips{gap:2px 12px}}
/* one desk per project: the tab strip on every project page (owner, 2026-09-14) */
html body.aid-shell .project-tabs{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;margin:0 0 20px;padding:0 0 8px;border-bottom:1px solid var(--edge)}
html body.aid-shell .project-tabs-name{min-width:0;max-width:34ch;padding:0;border-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-lead);font-weight:700;color:var(--ink);text-decoration:none}
html body.aid-shell .project-tabs-links{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
/* Разделы проекта — закладки папки, как серии: переключатель отмечается полоской снизу,
   а заливка и скругления остаются кнопкам-действиям (owner, 2026-09-20). */
html body.aid-shell .project-tabs-links a{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:10px 10px 0 0;background:transparent;color:var(--muted);text-decoration:none;font-size:var(--type-body);font-weight:600}
html body.aid-shell .project-tabs-links a::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:2px;border-radius:0;background:#4b596b;opacity:0;transition:opacity var(--fast)}
html body.aid-shell .project-tabs-links a:hover{background:transparent;color:var(--ink)}
html body.aid-shell .project-tabs-links a:hover::after{opacity:1}
html body.aid-shell .project-tabs-links a[aria-current=page]{background:transparent;color:var(--ink);box-shadow:none}
html body.aid-shell .project-tabs-links a[aria-current=page]::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:10px 10px 0 0;
  background:linear-gradient(180deg,#ffffff10 0,#ffffff06 60%,#ffffff00 100%);
  box-shadow:inset 0 1px 0 #ffffff08,inset 1px 0 0 #ffffff04,inset -1px 0 0 #ffffff04;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%)}
html body.aid-shell .project-tabs-links a[aria-current=page]::after{background:var(--accent);opacity:1}
/* Возврат домой выглядит одинаково на всех вкладках: на странице серий полоса разделов
   лежит в другом каркасе, где общий стиль «nav a» делал из ссылки пилюлю с отступами —
   шапка от этого становилась выше, а кнопка прыгала (owner, 2026-09-21). */
html body.aid-shell .project-tabs-all{margin-left:auto;padding:0;min-height:20px;border-radius:0;background:transparent;color:var(--dim);font-size:var(--type-meta);font-weight:500;text-decoration:none;white-space:nowrap}
html body.aid-shell .project-tabs-all:hover{color:var(--ink)}
@media(max-width:760px){html body.aid-shell .project-tabs{gap:4px 12px}html body.aid-shell .project-tabs-name{max-width:100%;flex:1 0 100%}html body.aid-shell .project-tabs-links{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:2px}html body.aid-shell .project-tabs-links a{white-space:nowrap;min-height:44px}html body.aid-shell .project-tabs-all{display:none}}
/* finals: sort into episodes, move dialog */
html body.aid-shell .final-assign-row{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--type-body)}
html body.aid-shell .final-assign-row span{min-width:0;overflow-wrap:anywhere}
html body.aid-shell #final-assign-items,html body.aid-shell #final-move-items{max-height:50vh;overflow:auto;margin:8px 0}
html body.aid-shell #final-move-items div{padding:4px 0;color:var(--muted);font-size:var(--type-body)}
/* files on team notes + overlay preview (owner, 2026-09-14) */
html body.aid-shell .note-files{display:flex;flex-direction:column;gap:6px;margin:6px 0 4px}
html body.aid-shell .note-files[hidden]{display:none}
html body.aid-shell .note-file{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:start;padding:6px;border:1px solid var(--edge);border-radius:10px;background:var(--pan2);max-width:100%}
html body.aid-shell .note-file.is-ok{border-color:#2f6b45}html body.aid-shell .note-file.is-no{border-color:#7a3a3a}
html body.aid-shell .note-thumb{width:56px;height:56px;border-radius:6px;object-fit:cover;background:#0f141b;display:grid;place-items:center;color:var(--muted);font-size:20px}
html body.aid-shell .note-file-body{min-width:0;display:grid;gap:2px}
html body.aid-shell .note-name{font-size:var(--type-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell .note-file small{color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .note-verdict.ok{color:var(--ok)}html body.aid-shell .note-verdict.no{color:var(--danger)}
html body.aid-shell .note-actions{display:flex;flex-wrap:wrap;gap:2px 4px;margin-top:2px}
html body.aid-shell .note-actions :is(button,a){min-height:28px;padding:2px 8px;font-size:var(--type-meta);font-weight:500;box-shadow:none;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink2);text-decoration:none}
html body.aid-shell .note-actions :is(button,a):hover{border-color:var(--btn-edge);color:var(--ink)}
html body.aid-shell .note-actions button[aria-pressed=true]{background:var(--pan);color:var(--ink);border-color:var(--btn-edge)}
html body.aid-shell .attlink{cursor:pointer}
html body.aid-shell .cbattach{min-height:28px;min-width:28px;padding:0 4px;border:0;box-shadow:none;background:transparent;color:var(--muted);display:inline-flex;align-items:center}
html body.aid-shell .cbattach:hover,html body.aid-shell .cbattach[aria-pressed=true]{color:var(--ink);background:transparent}
html body.aid-shell .cbattach-name{font-size:var(--type-meta);color:var(--ink2);max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell .cbattach-name[hidden]{display:none}
html body.aid-shell .note-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:2;pointer-events:none}
html body.aid-shell .note-overlay[hidden]{display:none}
html body.aid-shell .note-overlay-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;padding:8px 12px;border:1px solid var(--edge);border-radius:10px;background:var(--pan2);font-size:var(--type-meta);color:var(--ink2)}
html body.aid-shell .note-overlay-bar b{color:var(--ink);max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell .note-overlay-bar label{display:inline-flex;align-items:center;gap:4px}
html body.aid-shell .note-overlay-bar input[type=text],html body.aid-shell .note-overlay-bar input[type=number]{width:72px;min-height:30px;padding:2px 6px;font-size:var(--type-meta)}
html body.aid-shell .note-overlay-bar button{min-height:30px;padding:2px 10px;box-shadow:none;font-size:var(--type-meta)}
html body.aid-shell .note-overlay-status{color:var(--ok)}
html body.aid-shell dialog.note-view{position:fixed;inset:0;margin:auto;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:12px;background:#0f141b;border:1px solid var(--edge);border-radius:12px;color:var(--ink);overflow:auto}
html body.aid-shell dialog.note-view::backdrop{background:#080d15bb}
html body.aid-shell dialog.note-view :is(video,img){display:block;max-width:100%;max-height:70vh;margin:auto}
html body.aid-shell dialog.note-view audio{display:block;width:100%}
html body.aid-shell .note-view-name{margin:8px 0 0;font-size:var(--type-meta);color:var(--muted);text-align:center;overflow-wrap:anywhere}
html body.aid-shell .note-view-close{position:absolute;top:6px;right:6px;min-height:32px;padding:0 10px;box-shadow:none}
/* project feed (owner, 2026-09-14) */
html body.aid-shell .feed-filters{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 20px}
html body.aid-shell .feed-filters a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:var(--r2);color:var(--muted);text-decoration:none;font-size:var(--type-body);font-weight:600}
html body.aid-shell .feed-filters a:hover{background:#242d38;color:var(--ink)}html body.aid-shell .feed-filters a[aria-current=page]{background:var(--pan2);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
html body.aid-shell .feed-day{margin:0 0 20px}html body.aid-shell .feed-day h2{font-size:var(--type-meta);color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}
html body.aid-shell .feed-row{display:grid;grid-template-columns:52px minmax(0,auto) minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 10px;border-radius:var(--r2);color:var(--ink);text-decoration:none;font-size:var(--type-body);line-height:20px}
html body.aid-shell .feed-row:hover{background:#242d38}
html body.aid-shell .feed-row time{color:var(--muted);font-variant-numeric:tabular-nums}html body.aid-shell .feed-row b{font-weight:600;white-space:nowrap}
html body.aid-shell .feed-row span{color:var(--ink2);min-width:0;overflow-wrap:anywhere}html body.aid-shell .feed-row small{color:var(--dim);white-space:nowrap}
html body.aid-shell .feed-row.is-client b{color:var(--info)}
@media(max-width:600px){html body.aid-shell .feed-row{grid-template-columns:44px minmax(0,1fr);gap:4px 10px}html body.aid-shell .feed-row span{grid-column:2}html body.aid-shell .feed-row small{grid-column:2}}
/* ===== client-view switch, tidy hero, delivery grid, review tabs like the studio desk (owner, 2026-09-15) ===== */
html body.aid-shell .desk-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px 16px;margin:0 0 18px;min-height:44px}
html body.aid-shell .desk-toolbar-side{display:flex;align-items:center;gap:16px;min-width:0}
html body.aid-shell .desk-toolbar+#video{margin-top:0}
html body.aid-shell .desk-toolbar-side.end{justify-content:flex-end}
html body.aid-shell .desk-toolbar-centre{display:flex;justify-content:center;min-width:0}
html body.aid-shell .desk-toolbar :is(.btn,.button){min-height:40px}
html body.aid-shell .desk-toolbar .text-link{min-height:40px}
html body.aid-shell .client-switch{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 22px;border:1px solid var(--btn-edge);border-radius:9px;background:var(--pan2);color:var(--ink);font-size:14px;font-weight:600;line-height:21px;letter-spacing:0;text-decoration:none;white-space:nowrap;box-shadow:var(--light),inset 0 -2px 0 #6b7684,0 4px 10px -6px #6b768480;transition:box-shadow var(--fast),color var(--fast),background var(--fast)}
html body.aid-shell .client-switch:hover{background:linear-gradient(180deg,#333437,#27282b)}
html body.aid-shell .client-switch[aria-pressed=true]{color:var(--ink);box-shadow:var(--light),inset 0 -2px 0 var(--accent),0 6px 14px -6px #ff3000cc}
html body.aid-shell .client-switch[aria-pressed=true]:hover{box-shadow:var(--light),inset 0 -2px 0 var(--accent),0 8px 18px -6px #ff3000e6}
@media(max-width:700px){html body.aid-shell .desk-toolbar{grid-template-columns:1fr;justify-items:center}html body.aid-shell .desk-toolbar-side,html body.aid-shell .desk-toolbar-side.end{justify-content:center}}
html body.aid-shell .ohero{align-items:flex-end}
html body.aid-shell .ohero .meta{gap:28px;padding-bottom:0}
html body.aid-shell .ohero .meta>div{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-width:0}
html body.aid-shell .ohero .meta .k{margin:0;line-height:20px}
html body.aid-shell .ohero .meta .v,html body.aid-shell .ohero .meta .stat{font-size:16px;line-height:24px;min-height:24px;padding:0;margin:0;white-space:nowrap}
html body.aid-shell .ohero .meta .stat{font-size:13px}
html body.aid-shell .project-toolbar{margin:4px 0 28px;padding-bottom:20px;gap:12px 24px}
html body.aid-shell .project-actions-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html body.aid-shell .project-shortcuts{gap:20px}
html body.aid-shell .project-shortcuts .text-link{min-height:38px}
html body.aid-shell .review-heading .actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
html body.aid-shell .review-heading .actions .text-link{min-height:38px}
html body.aid-shell .delivery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch;margin:0 0 24px}
html body.aid-shell .delivery-grid>.panel{display:flex;flex-direction:column;min-width:0;margin:0}
html body.aid-shell .delivery-grid>.panel.wide{grid-column:1/-1}
html body.aid-shell .delivery-grid .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
html body.aid-shell .delivery-grid .panel-head h2{margin:0}
html body.aid-shell .delivery-grid .panel>p:last-child{margin-top:auto;padding-top:12px;margin-bottom:0}
html body.aid-shell .grid2{align-items:stretch}
@media(max-width:900px){html body.aid-shell .delivery-grid{grid-template-columns:minmax(0,1fr)}}
html body.aid-shell .review-tabs{display:flex;align-items:center;gap:6px;position:relative;padding:10px 12px 6px;margin:0 0 20px;border:1px solid var(--edge);border-radius:var(--r);background:var(--pan-top);box-shadow:inset 0 1px 0 #ffffff12;overflow:visible;flex-wrap:wrap}
html body.aid-shell .review-tabs .episode-card{flex:0 0 auto;min-width:0}
html body.aid-shell .review-tabs .episode-button{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:8px;width:auto;min-width:0;max-width:none;min-height:0;margin:0;padding:9px 12px;border:0;border-radius:var(--r2);background:transparent;color:var(--muted);font-size:14px;font-weight:400;line-height:21px;letter-spacing:0;box-shadow:none}
html body.aid-shell .review-tabs .episode-button b{color:var(--ink);font-weight:600;font-size:14px;line-height:21px;white-space:nowrap;margin:0}
html body.aid-shell .review-tabs .episode-button span{margin:0}
html body.aid-shell .review-tabs .episode-button .episode-current{font-size:14px;font-weight:400;line-height:21px;letter-spacing:0;color:var(--muted);opacity:1;white-space:nowrap}
html body.aid-shell .review-tabs .episode-button .episode-current::before{content:"·";margin:0 4px 0 0}
html body.aid-shell .review-tabs .episode-button:hover{background:#ffffff08}
html body.aid-shell .review-tabs .episode-button[aria-pressed=true]{color:var(--ink);background:linear-gradient(180deg,#2c3542,#232b36);box-shadow:none;border:0;outline:0}
html body.aid-shell .review-tabs .episode-button[aria-pressed=true] .episode-current{color:var(--ink)}
html body.aid-shell .review-tabs .episode-button[aria-pressed=true]::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:var(--accent);transform-origin:left;animation:aid-underline var(--base) var(--ease) both}
html body.aid-shell .review-tabs .episode-button .tabcnt{position:static;display:inline-flex;align-items:center;justify-content:center;flex:none;height:22px;min-height:22px;box-sizing:border-box;margin:0;padding:2px 8px;border:0;border-radius:99px;font-size:12px;font-weight:400;line-height:18px;font-variant-numeric:tabular-nums;background:#3a2a24;color:#ffb39a}
html body.aid-shell .review-tabs .episode-button .tabcnt.all-done{background:#1f3a30;color:var(--ok)}
html body.aid-shell .project-actions-main .btn{min-height:40px}
/* comment chains: a reply can be answered (it joins the root thread); chains longer than three fold to the last two (owner, 2026-09-15) */
html body.aid-shell .cmreplies.folded>.cm.reply:nth-last-child(n+3){display:none}
html body.aid-shell .review-comment.folded>.comment-reply:nth-last-child(n+4){display:none}
html body.aid-shell :is(.cmfold,.comment-fold){display:inline-flex;align-items:center;min-height:32px;margin:2px 0 6px 32px;padding:0 8px;background:transparent;border:0;box-shadow:none;color:var(--muted);font-size:var(--type-meta);font-weight:500;border-radius:8px;cursor:pointer}
html body.aid-shell :is(.cmfold,.comment-fold):hover{color:var(--ink);background:#ffffff0a}
/* finals not yet handed to the client stay red until a delivery covers them (owner, 2026-09-15) */
html body.aid-shell .file-status.is-undelivered{color:var(--danger);font-weight:500}
html body.aid-shell .file-status.is-undelivered::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--danger);margin:0 7px 1px 0;box-shadow:0 0 0 3px #ff3d5a22}
/* the big play button keeps its thin red edge and a soft glow: the owner liked it that way (2026-09-15) */
html body.aid-shell .vbig,html body.aid-shell .video-shell #big-play{box-shadow:inset 0 -2px 0 var(--accent),0 0 0 1px #ffffff14,0 10px 28px -8px #ff30008c}
/* almost see-through: the frame shows through the circle, only the edge and the glow read as a button (owner, 2026-09-15) */
html body.aid-shell :is(.vbig,.video-shell #big-play){background:#10162333;border:1px solid #ffffff1c;color:#fff;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
html body.aid-shell :is(.vbig,.video-shell #big-play):hover{background:#1016234d}
html body.aid-shell .vbig:hover,html body.aid-shell .video-shell #big-play:hover{box-shadow:inset 0 -2px 0 var(--accent),0 0 0 1px #ffffff1f,0 12px 32px -6px #ff3000b3}
/* Фаза 6 (owner, 2026-09-22): заголовок простых страниц на y = 32 — строка заголовка выравнивается по верху,
   у старых «hero» нет верхнего отступа; панели — 20 px внутри; таблицы — шапка 44 и ровные строки */
html body.aid-shell :is(.team-heading,.people-screen .page-heading,.page-heading){align-items:flex-start}
html body.aid-shell .hero,html body.aid-shell .ohero{padding-top:0}
html body.aid-shell .wrap>h1:first-child{margin-top:0}
html body.aid-shell :is(.panel,.tile){padding:20px}
html body.aid-shell table thead th{height:44px;vertical-align:middle}
html body.aid-shell table tbody td{vertical-align:middle;padding-top:10px;padding-bottom:10px}
@media(max-width:900px){html body.aid-shell :is(.panel,.tile){padding:16px}}
/* Переписка в обсуждении — стили. Поведение в _chat_discussion.html.
   Стили уехали в <head>, чтобы страница не показывалась наполовину
   собранной: раньше первый кадр был со старым видом кнопок и списков (owner, 2026-09-20). */
/* ── лента ─────────────────────────────────────────────────────────────── */
/* нижний отступ = запас под строку ввода: она лежит поверх последних 20px ленты */
/* Колесо не запирается в переписке: дочитал до конца — дальше едет страница,
   и мышь не надо уводить в сторону (owner, 2026-09-20). */
html body.aid-shell .cmts.chat{--chat-inset:52px;display:flex;flex-direction:column;gap:0;padding:8px 16px 30px;overscroll-behavior:auto;scrollbar-gutter:stable;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 72px),transparent calc(100% - 6px));
  mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 72px),transparent calc(100% - 6px))}
html body.aid-shell .cmts.chat>.cm{position:relative;display:flex;align-items:flex-end;gap:8px;max-width:100%;margin:20px 0 0;padding:0;border:0;border-radius:0;background:transparent;cursor:default}
/* Открытая правка поднимается над лентой целиком: у выполненных правок пузырь
   полупрозрачный, а это отдельный слой — меню пряталось под соседние сообщения
   (owner, 2026-09-21). */
html body.aid-shell .cmts.chat>.cm.menu-open{z-index:20}
/* !important здесь вынужденный: общие правила наведения и выбора собраны в :is()-список
   с селектором по id, а id перебивает любые классы (ловушка веса, см. шапку темы). */
html body.aid-shell .cmts.chat>.cm:hover,html body.aid-shell .cmts.chat>.cm.is-selected,
html body.aid-shell .cmts.chat>.cm[data-cid]:focus-visible{background:transparent!important;box-shadow:none!important}
html body.aid-shell .cmts.chat>.cm.vhide{display:none}
html body.aid-shell .cmts.chat>.cm.own{flex-direction:row-reverse}
html body.aid-shell .cmts.chat>.cm.gm{margin-top:7px}                 /* подряд от одного человека */
html body.aid-shell .cmts.chat>.cm.gm .av{visibility:hidden}
html body.aid-shell .cmts.chat>.cm.gm .hd>b{display:none}
html body.aid-shell .cmts.chat>.cm.own .av{display:none}
html body.aid-shell .cmts.chat .cm .av{flex:0 0 28px;width:28px;height:28px;margin-bottom:2px;border-radius:50%;font-size:var(--type-caption)}
/* ── пузырь ────────────────────────────────────────────────────────────── */
html body.aid-shell .cmts.chat .cm .bd{position:relative;display:flex;flex-direction:column;flex:0 1 auto;min-width:0;max-width:min(82%,560px);
  padding:7px 12px 5px;border-radius:14px 14px 14px 5px;background:linear-gradient(180deg,#2b3440,#242c37);box-shadow:0 1px 2px #00000059,inset 0 1px 0 #ffffff0d}
html body.aid-shell .cmts.chat .cm.own .bd{border-radius:14px 14px 5px 14px;background:linear-gradient(180deg,#2d3f50,#273644)}
html body.aid-shell .cmts.chat .cm.adm{background:transparent}
/* сообщение главного ничем не выделяется: в переписке все подписаны по имени,
   а красная полоса сбоку делала половину ленты «важной» (owner, 2026-09-20) */
html body.aid-shell .cmts.chat .cm.adm .hd>b{color:var(--accent-text)}
html body.aid-shell .cmts.chat .cm.is-selected .bd{box-shadow:0 0 0 2px #ff30005c,0 1px 2px #00000059}
html body.aid-shell .cmts.chat .cm .hd{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0 0 2px;font-size:var(--type-caption)}
html body.aid-shell .cmts.chat .cm .hd>b{font-size:var(--type-caption);font-weight:700;color:var(--accent-text)}
html body.aid-shell .cmts.chat .cm.own .hd>b{display:none}
/* В связке своих сообщений пряталась вся шапка вместе с таймкодом — прячем только имя,
   время кадра остаётся у каждой правки (owner, 2026-09-20). */
html body.aid-shell .cmts.chat .cm .hd:empty{display:none}
html body.aid-shell .cmts.chat .cm .rl{color:var(--dim);font-size:var(--type-caption)}
html body.aid-shell .cmts.chat .cm .tc{padding:0;border:0;background:transparent;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer}
html body.aid-shell .cmts.chat .cm .tc:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
html body.aid-shell .cmts.chat .cvtag{display:none}                    /* версия — разделителем в ленте */
/* В порядке по таймкоду версии идут вперемешку: разделители смысла не имеют,
   поэтому версия стоит у самой правки (owner, 2026-09-20). */
html body.aid-shell .cmts.chat.sort-time .cvtag{display:inline;color:var(--muted);font-size:var(--type-caption)}
html body.aid-shell .cmts.chat .cm .comment-text{margin:0;font-size:var(--type-body);line-height:1.45;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
html body.aid-shell .cmts.chat .cm.res .comment-text{text-decoration:none;color:var(--ink)}
html body.aid-shell .cmts.chat .cm.res .bd{opacity:.72}
html body.aid-shell .cmts.chat .cm.res .bd:hover,html body.aid-shell .cmts.chat .cm.res .bd:focus-within{opacity:1}
html body.aid-shell .cmts.chat .cm .aid-comment-more{align-self:flex-start;margin:2px 0 0;padding:0;min-height:0;border:0;background:transparent;color:var(--accent-text);font-size:var(--type-caption);text-decoration:underline;text-underline-offset:3px;box-shadow:none}
html body.aid-shell .cmts.chat .cm .aid-comment-folded{-webkit-line-clamp:14;max-height:none}
/* цитата: кому отвечают */
html body.aid-shell .cmts.chat .cm .rq{display:flex;flex-direction:column;gap:1px;margin:0 0 5px;padding:3px 8px;border-left:2px solid var(--accent);border-radius:4px;background:#ffffff12;cursor:pointer;text-decoration:none}
html body.aid-shell .cmts.chat .cm .rq b{font-size:var(--type-caption);color:var(--accent-text)}
html body.aid-shell .cmts.chat .cm .rq span{font-size:var(--type-caption);color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell .cmts.chat .cm .rq:hover{background:#ffffff1f}
/* Хвост — три фиксированных места справа налево: время · квадратик «готово» · карандаш «изменено».
   Ширина каждого места постоянна, поэтому правый край и колонка квадратиков не скачут
   (план, фаза 4; owner, 2026-09-21). */
html body.aid-shell .cmts.chat .cm .cmtail{display:grid;grid-template-columns:18px 18px auto;justify-content:end;align-self:flex-end;align-items:center;gap:4px;margin:1px 0 0 12px;font-size:var(--type-caption);line-height:1.3;color:var(--dim);font-variant-numeric:tabular-nums}
html body.aid-shell .cmts.chat .cm.own .cmtail{color:#9fb0c2}
html body.aid-shell .cmts.chat .cm .cmtail .cmslot{width:18px;height:16px;display:inline-flex;align-items:center;justify-content:center}
html body.aid-shell .cmts.chat .cm .cmtail .cmtime{text-align:right;min-width:36px}
html body.aid-shell .cmts.chat .cm .cmedit{display:inline-flex;color:var(--dim)}
html body.aid-shell .cmts.chat .cm .cmedit .aid-icon{width:12px;height:12px}
html body.aid-shell .cmts.chat .cm .cmdone{display:none;color:var(--ok);font-weight:700;line-height:1}
/* Отметка «готово» — квадратик у времени: её ставит тот, кто проверяет, а автор правки
   видит результат, но нажать не может (owner, 2026-09-20). */
html body.aid-shell .cmts.chat .cm .cmready{display:inline-flex;align-items:center;margin:0;cursor:pointer}
html body.aid-shell .cmts.chat .cm .cmready input{width:14px;height:14px;margin:0;accent-color:var(--ok);cursor:pointer}
html body.aid-shell .cmts.chat .cm.res .cmready input{opacity:.85}
html body.aid-shell .cmts.chat .cm.res .cmdone{display:inline}
html body.aid-shell .cmts.chat .cm .note-files{margin:6px 0 2px}
/* Меню действий открывает правая кнопка по сообщению, на телефоне — долгое нажатие.
   Кнопки «···» больше нет ни в разметке, ни здесь (owner, 2026-09-21). */
/* По наведению меню больше не открывается: оно выскакивало от любого движения мыши, а
   нажать его не удавалось — по дороге к нему курсор терял наведение (owner, 2026-09-21).
   Ширину задаёт содержимое, а не пузырь: у короткой правки список ломался в три строки. */
html body.aid-shell .cmts.chat .cm .meta{position:absolute;left:0;top:calc(100% + 4px);z-index:8;width:max-content;max-width:min(640px,calc(100vw - 48px));display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:var(--type-caption);color:var(--muted);
 opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;
 padding:6px 8px;border:1px solid #ffffff1f;border-radius:12px;background:#1b222c;
 box-shadow:0 18px 44px #0a0e14b8;
 transition:opacity .12s ease,visibility 0s linear .12s,transform .12s ease}
html body.aid-shell .cmts.chat .cm.own .meta{left:auto;right:0}
/* У последних сообщений меню разворачивается вверх, чтобы не уехало под край ленты */
html body.aid-shell .cmts.chat .cm .meta.up{top:auto;bottom:calc(100% + 4px);transform:translateY(4px)}
html body.aid-shell .cmts.chat .cm.menu-open .meta{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s,0s,0s}
/* Пункты меню одинаковы и у команды, и у клиента: там ссылки, здесь кнопки — вид один.
   Правка, копия и удаление стоят знаками: карандаш, копия, корзина (owner, 2026-09-21). */
html body.aid-shell .cmts.chat .cm .meta :is(a,button){min-height:26px;height:auto;display:inline-flex;align-items:center;gap:6px;margin:0;padding:2px 10px;border:1px solid #ffffff1f;border-radius:99px;background:transparent;box-shadow:none;color:var(--ink2);font-size:var(--type-caption);font-weight:500;line-height:1.3;text-decoration:none;white-space:nowrap;cursor:pointer}
html body.aid-shell .cmts.chat .cm .meta :is(a,button):hover{background:#ffffff14;color:var(--ink);border-color:#ffffff33}
html body.aid-shell .cmts.chat .cm .meta :is(a,button).ic{padding:2px 8px}
html body.aid-shell .cmts.chat .cm .meta .ic .aid-icon{display:block}
html body.aid-shell .cmts.chat .cm .meta .cmcopy.done{color:var(--ok);border-color:var(--ok)}
html body.aid-shell .cmts.chat .cm .meta .dellink{color:var(--danger)}
html body.aid-shell .cmts.chat .cm .meta .dellink:hover{color:var(--danger);border-color:#ff6a4a5c;background:#ff30001f}
html body.aid-shell .cmts.chat .cm .meta .work-completion{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 8px;border:1px solid #ffffff1f;border-radius:99px;color:var(--ink2);cursor:pointer}
html body.aid-shell .cmts.chat .cm .meta .work-completion input{margin:0;accent-color:var(--ok)}
/* подсветка «вот это сообщение»: мягкий тёплый след, а не белая вспышка.
   Старый cmflash остался от светлой темы и на тёмной бил по глазам (owner, 2026-09-20) */
/* старая подсветка оставляла красную полоску сбоку насовсем: в переписке её нет,
   а класс снимается по окончании анимации (owner, 2026-09-20) */
html body.aid-shell .cmts.chat>.cm.flash{animation:none;background:transparent;box-shadow:none}
html body.aid-shell .cmts.chat>.cm.flash .bd{animation:aid-chat-flash 1.5s ease-out}
@keyframes aid-chat-flash{0%{box-shadow:0 0 0 2px #ff30006b,0 1px 2px #00000059}45%{box-shadow:0 0 0 2px #ff300038,0 1px 2px #00000059}100%{box-shadow:0 1px 2px #00000059,inset 0 1px 0 #ffffff0d}}
html body.aid-shell .cmts.chat>.cm.own.flash .bd{animation-name:aid-chat-flash-own}
@keyframes aid-chat-flash-own{0%{box-shadow:0 0 0 2px #ff30006b}45%{box-shadow:0 0 0 2px #ff300038}100%{box-shadow:0 1px 2px #00000059,inset 0 1px 0 #ffffff0d}}
/* разделители дня и версии */
html body.aid-shell .cmts.chat .cmday{align-self:center;margin:16px 0 4px;padding:3px 12px;border-radius:99px;background:#ffffff12;color:var(--muted);font-size:var(--type-caption);white-space:nowrap}
html body.aid-shell .cmts.chat .cmday:first-child{margin-top:4px}
html body.aid-shell .cmts.chat .cmempty,html body.aid-shell .cmts.chat .vempty{margin:auto 0;padding:26px 16px;color:var(--muted);font-size:var(--type-body);text-align:center}
/* ── шапка: фильтры и «забрать правки» одной строкой ──────────────────── */
html body.aid-shell .epcol .discussion-head .pullrow{flex:0 0 auto;margin-left:auto;padding:0;gap:6px}
html body.aid-shell .epcol .discussion-head .pullbtn{min-height:34px;padding:4px 12px;border-radius:8px;font-size:var(--type-meta);font-weight:600;white-space:nowrap}
/* Кнопка правок — обычная кнопка: такой заливки нет больше нигде на сайте,
   а новость о правках несёт сам текст (owner, 2026-09-20). */
html body.aid-shell .epcol .discussion-head .pullbtn:not(.is-quiet){background:var(--btn);color:var(--ink);border-color:var(--btn-edge)}
html body.aid-shell .epcol .discussion-head .pullbtn:not(.is-quiet):hover{background:var(--btn-hover);color:var(--ink)}
/* ── строка отправки ───────────────────────────────────────────────────── */
html body.aid-shell .cbox.chat .cbhead{min-height:0;padding:0}
html body.aid-shell .cbox.chat .replying{display:flex;align-items:center;gap:8px;margin:0 0 6px;padding:4px 8px;border-left:2px solid var(--accent);border-radius:4px;background:#ffffff0f;font-size:var(--type-caption);color:var(--muted)}
html body.aid-shell .cbox.chat .replying .repto{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.aid-shell .cbox.chat .replying b{color:var(--accent-text)}
html body.aid-shell .cbox.chat .replying .cancelrep{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--muted);text-decoration:none;font-size:15px;cursor:pointer}
html body.aid-shell .cbox.chat .replying .cancelrep:hover{background:#ffffff1a;color:var(--ink)}
html body.aid-shell .cbox.chat .cbfield{position:relative;display:flex;align-items:flex-end;gap:2px;padding:3px 4px 3px 6px;border:0;border-radius:12px;background:#1a2028;box-shadow:inset 0 1px 0 #00000040}
html body.aid-shell .cbox.chat:focus-within .cbfield{background:#1d242e;box-shadow:inset 0 1px 0 #00000040}
html body.aid-shell .cbox.chat .cbtext{flex:1 1 auto;min-width:0;min-height:0!important;max-height:none;margin:0;padding:8px 4px!important;border:0!important;border-radius:0;background:transparent;box-shadow:none!important;resize:none;line-height:20px!important;font-size:var(--type-body)!important}
html body.aid-shell .cbox.chat .cbtext:focus,html body.aid-shell .cbox.chat .cbtext:focus-visible{border:0!important;box-shadow:none!important;outline:0!important}
html body.aid-shell .cbox.chat .cbmeta{position:static;order:-1;display:flex;align-items:center;gap:4px;margin-bottom:5px;pointer-events:auto}
html body.aid-shell .cbox.chat .cbattach{width:30px;height:30px;min-height:30px;justify-content:center;border-radius:50%}
html body.aid-shell .cbox.chat .cbattach:hover{background:#ffffff14;color:var(--ink)}
html body.aid-shell .cbox.chat .tchip{align-self:center}
/* «кому» — кружок, пока адресата нет; с именем разворачивается в чип */
html body.aid-shell .cbox.chat .cbfor{align-self:center;margin-bottom:1px;gap:0;width:30px;height:30px;min-height:30px;padding:0;justify-content:center;border:0;border-radius:50%;max-width:none;color:var(--muted)}
html body.aid-shell .cbox.chat .cbfor:hover{background:#ffffff14;color:var(--ink)}
html body.aid-shell .cbox.chat .cbfor .cbfor-label{display:none}
html body.aid-shell .cbox.chat .cbfor.on{width:auto;gap:6px;padding:0 10px;border-radius:99px;background:#ffffff14;color:#9ad7bd;max-width:150px}
html body.aid-shell .cbox.chat .cbfor.on .cbfor-label{display:inline}
html body.aid-shell .cbox.chat .cbsend-icon{position:static;flex:none;width:32px;height:32px;min-height:32px;margin-bottom:1px;background:var(--accent);color:#fff}
html body.aid-shell .cbox.chat .cbsend-icon:hover{background:#ff4a22}
html body.aid-shell .cbox.chat .pend{margin:0;align-self:center}
@media(max-width:640px){
 html body.aid-shell .cmts.chat .cm .bd{max-width:84%}
}
/* На телефоне долгое нажатие открывает меню сообщения, поэтому текст не выделяется
   по слову: выделение перебивало нажатие, и меню не появлялось (owner, 2026-09-21). */
@media(pointer:coarse){
 html body.aid-shell .cmts.chat .cm :is(.comment-text,.hd,.cmtail){user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
 html body.aid-shell .cmts.chat .cm.menu-open .bd{box-shadow:0 0 0 2px #ffffff33,0 1px 2px #00000059}}

/* Строка фильтров переписки — одна полоса: селекты своей ширины, счётчик, «забрать правки»;
   на узком экране полоса листается вбок, а не ломается в ряды (план, фаза 4; owner, 2026-09-21). */
html body.aid-shell .epcol h4.discussion-head{min-height:52px;padding:8px 16px 8px 52px;align-items:center}
html body.aid-shell .epcol h4.discussion-head .h4r{flex:1 1 auto;min-width:0;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
html body.aid-shell .epcol h4.discussion-head .h4r::-webkit-scrollbar{display:none}
html body.aid-shell .epcol h4.discussion-head :is(select,.aid-select-trigger){flex:0 0 auto;width:auto;max-width:none;min-height:36px;height:36px;padding:0 26px 0 10px;border-radius:var(--r-s);font-size:var(--type-meta)}
html body.aid-shell .epcol h4.discussion-head .ccount{flex:none;min-width:24px;height:24px;padding:0 8px;border-radius:var(--r-s)}
html body.aid-shell .epcol .discussion-head .pullrow{flex:0 0 auto}
html body.aid-shell .epcol .discussion-head .pullbtn{min-height:36px;height:36px;border-radius:var(--r-s)}
@media(max-width:900px){
 html body.aid-shell .epcol h4.discussion-head .h4r{flex-wrap:nowrap;gap:6px}
 html body.aid-shell .epcol h4.discussion-head :is(select,.aid-select-trigger){min-height:36px;height:36px}
}

/* ── обсуждение под сообщением: свёрнутые ответы и кнопка «Ещё ответы» (owner, 2026-09-23) ── */
html body.aid-shell .cmts.chat>.cm.thread-hidden{display:none}
html body.aid-shell .cmts.chat>.thread-more{align-self:flex-start;display:inline-flex;align-items:center;min-height:36px;margin:8px 0 0 36px;padding:0 12px;border:0;border-radius:var(--r-s);background:#ffffff0d;color:var(--accent-text);font-size:var(--type-caption);font-weight:600;box-shadow:none;cursor:pointer}
html body.aid-shell .cmts.chat>.thread-more:hover{background:#ffffff17;color:var(--ink)}
html body.aid-shell .cmts.chat>.thread-more.own{align-self:flex-end;margin:8px 0 0}
html body.aid-shell .cmts.chat>.thread-more[hidden]{display:none}
/* ── голосовое: плеер прямо в сообщении ── */
html body.aid-shell .note-file.is-voice{grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px}
html body.aid-shell .note-file.is-voice .nv-play{display:flex;align-items:center;justify-content:center;width:36px;min-height:36px;height:36px;padding:0;border:0;border-radius:var(--r-s);background:var(--accent);color:#fff;box-shadow:none;cursor:pointer}
html body.aid-shell .note-file.is-voice .nv-play [data-icon=pause]{display:none}
html body.aid-shell .note-file.is-voice.is-playing .nv-play [data-icon=play]{display:none}
html body.aid-shell .note-file.is-voice.is-playing .nv-play [data-icon=pause]{display:inline}
html body.aid-shell .note-file.is-voice .nv-body{display:grid;gap:4px;min-width:0}
html body.aid-shell .note-file.is-voice .nv-seek{width:100%;min-width:80px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}
html body.aid-shell .note-file.is-voice .nv-time{font-variant-numeric:tabular-nums}
html body.aid-shell .note-file.is-voice .nv-side{display:flex;align-items:center;gap:4px}
html body.aid-shell .note-file.is-voice .nv-side :is(button,a){min-height:0;height:28px;padding:2px 8px;font-size:var(--type-meta);font-variant-numeric:tabular-nums;box-shadow:none;border:1px solid transparent;border-radius:var(--r-s);background:transparent;color:var(--muted);cursor:pointer;text-decoration:none}
html body.aid-shell .note-file.is-voice .nv-side :is(button,a):hover{border-color:var(--btn-edge);color:var(--ink)}
/* ── картинка: крупное превью, по щелчку — во весь экран ── */
html body.aid-shell .note-file.is-image{grid-template-columns:minmax(0,1fr)}
html body.aid-shell .note-file.is-image img.note-thumb{width:auto;max-width:100%;height:auto;max-height:240px;justify-self:start;border-radius:var(--r-s);cursor:zoom-in}
/* ── поле ввода: запись голоса и файлы, брошенные на обсуждение ── */
html body.aid-shell .cbox .cbvoice{display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:36px;height:36px;padding:0;border:0;border-radius:var(--r-s);background:transparent;color:var(--muted);box-shadow:none;cursor:pointer}
html body.aid-shell .cbox .cbvoice:hover{color:var(--ink);background:#ffffff0d}
html body.aid-shell .cbox.is-recording .cbvoice{background:var(--accent);color:#fff;animation:aid-rec 1.2s ease-in-out infinite}
@keyframes aid-rec{50%{box-shadow:0 0 0 6px #ff300033}}
html body.aid-shell .cbox .cbvoice-time{color:var(--accent-text);font-size:var(--type-meta);font-weight:600;font-variant-numeric:tabular-nums}
html body.aid-shell .cbox .cbvoice-cancel{display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:36px;height:36px;padding:0;border:0;border-radius:var(--r-s);background:transparent;color:var(--muted);box-shadow:none;cursor:pointer}
html body.aid-shell .cbox .cbvoice-cancel[hidden],html body.aid-shell .cbox .cbvoice-time[hidden]{display:none}
html body.aid-shell .cbox .cbattach-name{cursor:pointer}
html body.aid-shell .epcol.is-dropping{outline:2px dashed var(--accent-text);outline-offset:-6px;border-radius:var(--r-l)}
@media (prefers-reduced-motion:reduce){html body.aid-shell .cbox.is-recording .cbvoice{animation:none}}
/* Режим «только обсуждение» для отдельного окна (?window=chat). Класс ставится в <head> до отрисовки,
   поэтому окно сразу открывается без плеера и шапки. Видео остаётся на странице спрятанным: из него
   сообщение берёт готовность плеера, а секунду — из основного окна (_chat_window_js.html). */
html.chat-window body.aid-shell{overflow:hidden}
html.chat-window body.aid-shell>.aid-nav,
html.chat-window body.aid-shell .wrap>:not(.ephead):not(.epwrap):not(style):not(script):not(dialog),
html.chat-window body.aid-shell .epwrap>.epplayer,
html.chat-window body.aid-shell .epwrap .close-fullscreen-discussion{display:none!important}
html.chat-window body.aid-shell .wrap{max-width:none!important;margin:0!important;padding:8px 12px 0!important}
html.chat-window body.aid-shell .ephead{margin:0 0 8px}
html.chat-window body.aid-shell .epwrap.on{display:block!important;height:calc(100dvh - 84px);min-height:0}
html.chat-window body.aid-shell .epwrap.on>.epcol{display:flex!important;flex-direction:column;width:auto!important;max-width:none!important;height:100%!important;min-height:0}
html.chat-window body.aid-shell .epwrap.on>.epcol>.cmts{flex:1 1 auto;min-height:0;height:auto!important;max-height:none!important}
html.chat-window body.aid-shell .epwrap.on>.epcol>.cbox{flex:none}
/* Стол на телефоне — план, фаза 5 (макет утверждён 2026-09-21): один экран — видео сверху,
   полоса публикации и «Передать» по 36 px, строка фильтров, лента до низа, строка ввода внизу.
   Лента листается внутри стола, на краю жест уходит странице; вбок не ездит: меню правки
   не шире экрана. Линии тоньше. Подключён последним в обоих каркасах, чтобы перебивать
   телефонные правила плеера (player_layout / mobile_experience) при равном весе. */
@media (max-width:640px){
 html{scroll-snap-type:y proximity}
 /* Стол встаёт под строкой серий, а не под липкой шапкой: отступ привязки = высота строки серий (--desk-chrome меряет
    _mobile_experience) минус 20 px (поле прокрутки страницы на 24 px ниже шапки; серии встают в 4 px под ней). Высота — остаток экрана,
    поле ввода внизу не обрезается (владелец, 11.10: «вкладки серий просвечивают под шапкой»). */
 html body.aid-shell :is(.epwrap.on,.review-shell).desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded){display:flex;flex-direction:column;height:calc(100svh - var(--top-nav-height,56px) - 12px - var(--desk-chrome,82px));max-height:calc(100svh - var(--top-nav-height,56px) - 12px - var(--desk-chrome,82px));overflow:hidden;gap:0;padding:0;border-color:#ffffff0c;border-radius:var(--r-l);scroll-snap-align:start;scroll-margin-top:calc(var(--desk-chrome,82px) - 20px)}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epplayer,.review-player){flex:none;height:auto!important;max-height:none;min-height:0;padding:8px 12px 8px;gap:6px;border:0}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{height:clamp(180px,34svh,300px)!important;min-height:0;padding:0!important;margin:0;width:auto;max-width:100%}
 /* кадр 9:16 считается от высоты сцены: ширина auto растянула бы его на всю колонку, и он вылезал бы под ленту */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap{width:calc(clamp(180px,34svh,300px) * 9 / 16)!important;height:clamp(180px,34svh,300px)!important;max-width:100%;max-height:none;margin:0 auto!important}
 /* пульт задачи и кнопки решения клиента стоят в той же полосе — той же высоты. !important вынужденный:
    общий список высот в теме собран в :is() с селектором по id и весит больше любого класса (ловушка веса) */
 html body.aid-shell .desk-ready :is(.publication-bar,.desk-footer) :is(.handoff-controls,.decision-strip,.decision-buttons) :is(button,.button,.aid-select-trigger,select){min-height:36px!important;height:36px!important;padding:0 12px;font-size:var(--type-meta);border-radius:var(--r-s);white-space:nowrap}
 html body.aid-shell .desk-ready :is(.publication-bar,.desk-footer) .handoff-controls{gap:6px;margin:0}
 /* «Комментарий к кадру» у клиента — одной строкой 36 px, а не двухэтажной плиткой */
 html body.aid-shell .desk-ready .annotation-tools{display:flex;flex-wrap:nowrap;gap:6px;width:100%;margin:0}
 html body.aid-shell .desk-ready .annotation-tools button{width:auto;flex:1 1 auto;min-width:0;min-height:36px;height:36px;padding:0 12px;font-size:var(--type-meta);line-height:1.2;white-space:nowrap;border-radius:var(--r-s);border:1px solid #ffffff14;box-shadow:none}
 /* публикация и передача — по 36 px, одна строка, тонкая рамка */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .publication-bar{flex-wrap:nowrap;align-items:center;gap:6px;padding:0;margin:0;min-height:0}
 html body.aid-shell .desk-ready .publication-bar .pubbtn{flex:1 1 auto;min-height:36px;height:36px;padding:0 12px;margin:0;border-radius:var(--r-s);font-size:var(--type-meta);box-shadow:none;border:1px solid #ffffff14}
 html body.aid-shell .desk-ready .publication-bar :is(.publication-status,.sound-state){font-size:var(--type-caption);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .desk-footer{padding:0!important;margin:0;border:0;gap:6px}
 html body.aid-shell .desk-ready .desk-footer .vbar .handoff-controls{flex:1 0 100%;order:1;margin:0}
 html body.aid-shell .desk-ready .desk-footer .vbar :is(.episode-handoff-destination,.aid-select-trigger){width:100%;max-width:none;min-height:36px;height:36px;padding:0 26px 0 10px;font-size:var(--type-meta);border-radius:var(--r-s);border-color:#ffffff14}
 /* лента: колонка обсуждения занимает остаток экрана, список внутри неё листается */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.epcol,.review-discussion){flex:1 1 auto!important;display:flex;flex-direction:column;min-height:0!important;height:auto!important;max-height:none!important;padding:0;border:0;border-top:1px solid #ffffff0c;scroll-margin-top:0}
 html body.aid-shell .desk-ready .epcol h4.discussion-head{flex:none;min-height:44px;padding:4px 12px;border-bottom:1px solid #ffffff0a}
 html body.aid-shell .desk-ready .comment-audience{flex:none;padding:0 12px 4px;font-size:var(--type-caption)}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.cmts,.review-comments){flex:1 1 0!important;min-height:0!important;max-height:none!important;order:0;overflow:auto;overflow-x:hidden;overscroll-behavior-y:auto;padding:4px 8px 8px;scrollbar-width:none}
 html body.aid-shell .desk-ready :is(.cbox.chat,.review-composer){flex:none;padding:8px 8px max(8px,env(safe-area-inset-bottom));border-top:1px solid #ffffff0c}
 html body.aid-shell .cmts.chat .cm .meta{max-width:calc(100vw - 64px)}
 /* Накладка на узком кадре (не развёрнут): остаются качество и полный экран; обсуждение, рисование,
    повтор и автопереход — только в полном экране. Строка воспроизведения ужата, чтобы тайминги влезали (owner, 2026-09-22) */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vcmt,.vdrawb,#fullscreen-comment,#draw-note,.vright,#back-five,#mute,.vrepeat,.vautonext,[class*=vsubs],.v8-pin,.v8-cmp,.v8-tgap,.vclear-range[hidden]){display:none!important}
 /* Меню на узком кадре — одна строка (скорость · качество · ссылка · полный экран): облик v8 вынул повтор, автопереход, субтитры,
    заметку и сравнение из .vright прямо в меню, и оно ломалось в три ряда (владелец, 11.10). Всё это — в полном экране и в «⋯» строки публикации */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools.desk-review-tools{flex-wrap:nowrap!important;width:max-content!important;justify-content:flex-start;justify-content:safe center;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
 /* !important: правила накладки в player_layout собраны в :is() из шести классов и весят больше этих */
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools{top:6px!important;padding:2px!important;gap:2px!important;max-width:calc(100% - 12px)!important}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools :is(.quality-trigger,.aid-select-trigger,select){width:62px!important;min-width:0!important;max-width:62px!important;min-height:30px!important;height:30px!important;padding:2px 6px!important;gap:4px!important;font-size:11px!important}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools .quality-trigger span{font-size:11px}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools .quality-status{display:none}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools .quality-row{max-width:62px}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vtime,.review-time){flex:0 0 auto!important}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) .vtools .vbtn{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:0}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vleft,.control-row){height:38px!important;padding:0 6px!important;gap:4px!important;flex-wrap:nowrap!important}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vleft,.control-row) :is(.vplay,#play){width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:0;flex:none}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vtime,.review-time){font-size:11px!important;letter-spacing:-.01em;white-space:nowrap;min-width:0;overflow:hidden}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vtimeline,.review-timeline){bottom:38px!important;padding:6px 6px 2px!important}
 html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.vwrap,.video-shell) :is(.vseek,.vmarks,#review-seek,.saved-marks){margin:0 2px}
 /* Тумблер «Только видео» — справа в строке серий. Включён: с экрана уходит всё, кроме серий, кадра и переписки */
 html body.aid-shell :is(.ephead,.review-tabs) .desk-focus-toggle{display:inline-flex;align-items:center;gap:8px;flex:none;position:sticky;right:0;margin-left:auto;min-height:44px;height:auto;align-self:stretch;padding:0 12px;border:0;border-left:1px solid #ffffff0e;border-radius:0;background:#12161d;color:var(--muted);box-shadow:none;z-index:2}
 html body.aid-shell .desk-focus-toggle .aid-icon{width:18px;height:18px}
 html body.aid-shell .desk-focus-toggle i{display:block;position:relative;width:28px;height:16px;border-radius:5px;background:#ffffff1f;transition:background .18s}
 html body.aid-shell .desk-focus-toggle i::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:3px;background:#cfd5de;transition:transform .18s,background .18s}
 html body.aid-shell .desk-focus-toggle[aria-pressed=true]{color:var(--ink)}
 html body.aid-shell .desk-focus-toggle[aria-pressed=true] i{background:var(--accent)}
 html body.aid-shell .desk-focus-toggle[aria-pressed=true] i::after{transform:translateX(12px);background:#fff}
 html body.aid-shell.desk-focus [data-focus-hide]{display:none!important}
 html body.aid-shell.desk-focus>header.aid-nav{display:none!important}
 html body.aid-shell.desk-focus>:is(main,.wrap){padding-top:58px!important;padding-bottom:0!important}
 /* !important: строка серий описана в теме через :is(#ephead,…) — селектор с id весит больше */
 html body.aid-shell.desk-focus :is(.ephead,.review-tabs){position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:20!important;margin:0!important;border-radius:0!important;background:#12161d!important;border-bottom:1px solid #ffffff12}
 html body.aid-shell.desk-focus{overflow:hidden;height:100svh}
 html body.aid-shell.desk-focus .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded){position:fixed!important;top:60px!important;left:8px!important;right:8px!important;bottom:0!important;width:auto!important;height:auto!important;max-height:none!important;margin:0!important;z-index:15;border-radius:var(--r-l) var(--r-l) 0 0}
 html body.aid-shell.desk-focus .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) :is(.publication-bar,.desk-footer,.desk-secondary,.epcol h4.discussion-head,.comment-audience,.annotation-tools){display:none!important}
 html body.aid-shell.desk-focus .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vstage{height:clamp(200px,38svh,340px)!important}
 html body.aid-shell.desk-focus .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap{width:calc(clamp(200px,38svh,340px) * 9 / 16)!important;height:clamp(200px,38svh,340px)!important}
}
@media(min-width:641px){html body.aid-shell .desk-focus-toggle{display:none!important}}
/* Телефон вне стола — план, фаза 5 (owner, 2026-09-22): цели касания не меньше 44, кнопки
   в одном ряду одной ширины, мелкие ссылки шапки и календаря с запасом. Стол (.desk-ready)
   живёт по своим правилам в _mobile_desk_css.html. Подключён после него в обоих каркасах. */
@media (max-width:640px){
 /* цели касания: кнопки, поля, раскрывашки вне стола, меню и шапки — от 44 px */
 html body.aid-shell :is(main,.wrap) :is(a.button,button,.button,select,.aid-select-trigger,summary,input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color])):not(.desk-ready *,.epwrap *,.review-shell *,.aid-nav *,.title-head *,.ephead *,.review-tabs *,.personal-assignment *,.lane-dot,.show-more){min-height:44px}
 /* разделы и «← Все проекты» в шапке — во всю высоту строки */
 html body.aid-shell .title-head .project-tabs.is-bare :is(.project-tabs-links a,.title-back){min-height:44px}
 html body.aid-shell .title-band .title-back{top:0;min-height:40px}
 /* календарь сотрудника: стрелки, «Сегодня», «2 недели / Месяц»; точка цвета полосы — 24 px касания при том же виде */
 html body.aid-shell .personal-period>a,html body.aid-shell .personal-span>a{display:inline-flex;align-items:center;min-height:44px}
 html body.aid-shell .personal-assignment .lane-dot{width:24px!important;height:24px!important;min-height:24px!important;border:7px solid transparent!important;background-clip:padding-box;box-shadow:inset 0 0 0 1px #ffffff6b!important}
 html body.aid-shell #planning :is(button,.button,select):not(.agenda-days button){min-height:44px}
 /* кнопки в одном ряду — одной ширины */
 html body.aid-shell :is(main,.wrap) :is(.actions,.heading-actions,.page-heading .actions,.plan-form-foot,.decision-buttons,.work-project-actions):not(.desk-ready *)>:is(a.button,button,.button){flex:1 1 0;min-width:0;justify-content:center;text-align:center}
 html body.aid-shell :is(main,.wrap) :is(.actions,.heading-actions,.page-heading .actions):not(.desk-ready *){display:flex;flex-wrap:wrap;gap:8px}
 /* карандаш на карточке */
 html body.aid-shell .work-project-edit{width:44px;height:44px}
}
@font-face{font-family:'Roboto Condensed';src:url('/app/ui-assets/RobotoCondensed-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
html{scroll-padding-top:calc(var(--top-nav-height) + 24px);scrollbar-color:#55585f var(--surface-0);overflow-x:clip;overflow-y:visible}
html body.aid-shell{overflow-x:clip;overflow-y:visible}
html body.aid-shell,html body.aid-shell:has(>header.aid-nav){padding-left:0;font-family:var(--sans);background:var(--surface-0);font-weight:400}
html body.aid-shell :is(button,input,select,textarea){font-family:var(--sans)}
html body.aid-shell>main,html body.aid-shell>.wrap{padding-top:28px}
html body.aid-shell h1{font-weight:650}html body.aid-shell h2{font-weight:600}
html body.aid-shell #plan-grid{position:relative;background:#121315}
html body.aid-shell .plan-connections{position:absolute;top:0;left:0;pointer-events:none;z-index:6;overflow:visible;fill:none}
.plan-connections .flow-wire{stroke:#ff500059;stroke-width:1.2}.plan-connections .flow-energy{stroke:#ff966f;stroke-width:1.5;stroke-dasharray:5 95;animation:plan-energy 3s linear infinite;filter:drop-shadow(0 0 3px #ff500090)}.plan-connections .flow-arrow{stroke:#ff966f;stroke-width:1.2}
@keyframes plan-energy{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
html body.aid-shell #planning .plan-bar{transition:opacity 180ms,border-color 180ms,box-shadow 180ms;box-shadow:inset 0 1px #ffffff12}
html body.aid-shell #planning .plan-bar.color-auto{border-left:2px solid var(--accent-text);background:linear-gradient(100deg,#ff300018,#292a2e 65%)}
html body.aid-shell #planning .has-flow .plan-bar:not(.flow-related){opacity:.18}
html body.aid-shell #planning .plan-bar.flow-related{border-color:#ff500099;box-shadow:0 0 20px #ff30001c;z-index:7}
html body.aid-shell #planning .plan-bar.flow-origin{border-color:#ff986e;box-shadow:0 0 24px #ff500033}
html body.aid-shell #planning .plan-person-block{background:transparent;border-color:#ffffff0b}html body.aid-shell #planning .plan-label{background:linear-gradient(110deg,#1b1c1f,#161719)}
html body.aid-shell #planning .plan-track{background-color:#141517}html body.aid-shell #planning .plan-weekend{background:#ffffff03}html body.aid-shell #planning .plan-day-heads{background:#191a1d}
html body.aid-shell #planning :is(.plan-person-lanes,.plan-grid-head){background:#17181b}
html body.aid-shell #plan-scroll{background:#141517;border-color:var(--line)}
html body.aid-shell .plan-related-list{margin:16px 0;padding-top:16px;border-top:1px solid var(--line)}.plan-related-list h3{font-size:var(--type-body);color:var(--muted)}.plan-related-list a{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 0;min-height:44px;font-size:var(--type-body)}.plan-related-list small{color:var(--muted)}
@media(prefers-reduced-motion:reduce){.plan-connections .flow-energy{animation:none;stroke-dasharray:none;opacity:.5}}

html body.aid-shell .cmts.chat .cm .bd{background:linear-gradient(150deg,#292a2e,#1d1e21);border:1px solid #ffffff0d;border-radius:var(--r-m);box-shadow:inset 0 1px #ffffff08}
html body.aid-shell .cmts.chat .cm.own .bd{background:linear-gradient(130deg,#353034,#242326);border-color:#ff500020;border-radius:var(--r-m)}
html body.aid-shell .cmts.chat .cm .comment-text{font-size:var(--type-lead);font-weight:400;line-height:1.5;color:var(--ink2)}
html body.aid-shell .cmts.chat .cm .hd>b{font-weight:600;color:var(--ink2)}
html body.aid-shell .cmts.chat .cm .tc{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--r-s);background:#ffffff0c;color:#f2b6a3;font-size:var(--type-meta)}
html body.aid-shell .cmts.chat .cm .cm-menu-trigger{position:absolute;right:-4px;bottom:-4px;z-index:2;display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;padding:4px;border:1px solid #ffffff33;border-radius:var(--r-s);background:#222327;color:var(--ink2);opacity:0;transition:opacity var(--fast)}
html body.aid-shell .cmts.chat .cm:hover .cm-menu-trigger,html body.aid-shell .cmts.chat .cm:focus-within .cm-menu-trigger{opacity:1}
html body.aid-shell .cmts.chat .cm .meta :is(a,button){min-height:36px;min-width:36px;padding:8px;border:0;background:none;color:var(--ink2);font-size:var(--type-body)}
html body.aid-shell .cmts.chat .cm .meta :is(a,button):hover{background:#ffffff0c}
html body.aid-shell :is(.epwrap,.review-shell){background:var(--surface-1);border-color:var(--line);box-shadow:0 16px 48px #0004,inset 0 1px #ffffff0a}
html body.aid-shell :is(.epcol,.review-discussion){background:linear-gradient(140deg,#1d1e21,#141517)}
html body.aid-shell :is(.cbox,.review-composer){background:linear-gradient(140deg,#25262aeb,#17181bf2);border-color:#ffffff25;backdrop-filter:blur(20px);box-shadow:0 -8px 28px #0003,inset 0 1px #ffffff0b}
html body.aid-shell :is(.cbsend-icon,#send-note){background:linear-gradient(110deg,var(--accent),var(--orange));color:#0e0f11;box-shadow:0 0 24px #ff300024}
.comment-draft-status{display:block;padding:4px 8px;color:var(--muted);font-size:var(--type-caption);line-height:1.3}.comment-draft-status:empty{display:none}
html body.aid-shell :is(.vbar,.review-controls){background:linear-gradient(0deg,#0b0c0fee,#0b0c0f77,transparent)}
html body.aid-shell .vprog{background:linear-gradient(90deg,var(--accent),var(--orange));box-shadow:0 0 12px #ff500040}
@media(pointer:coarse){html body.aid-shell .cmts.chat .cm .cm-menu-trigger{opacity:1}}
html body.aid-shell #workspace-content .work-project[data-urgency=soon]{border-color:#ff500080;box-shadow:0 0 0 1px #ff500014,0 8px 36px #ff50001f,inset 0 -1px #ff500060}
html body.aid-shell #workspace-content .work-project[data-urgency=late]{border-color:#ff3000a0;box-shadow:0 0 0 1px #ff300020,0 8px 36px #ff30002b}
html body.aid-shell #workspace-content :is(.epwrap,.review-shell){background:linear-gradient(150deg,#1e1f22,#131416);border-color:var(--line)}
html body.aid-shell #workspace-content :is(.epcol,.review-discussion){background:linear-gradient(140deg,#1d1e21,#141517)}
html body.aid-shell #workspace-content :is(.title-band,.ephead){background:linear-gradient(140deg,#242528,#17181b);border-color:var(--line)}
html body.aid-shell .task-input-context{margin:0;padding:8px 12px;color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .draft-archive-preview{width:min(640px,calc(100vw - 32px));max-height:80dvh;overflow:auto;padding:24px;background:var(--surface-1);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-m)}
.draft-archive-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.5}.draft-archive-preview svg{display:block;width:100%;max-height:260px;background:var(--surface-0);border:1px solid var(--line)}.draft-archive-preview footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
html body.aid-shell:has(>header.aid-nav){--sidebar-width:208px;--top-nav-height:0px;padding-left:var(--sidebar-width)}
html body.aid-shell>header.aid-nav.aid-nav{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);height:100dvh;max-height:none;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:20px 12px 12px;border:0;border-right:1px solid var(--line);background:linear-gradient(155deg,#1b2027,#14181e 65%);box-shadow:none;z-index:90;overflow:visible;container-type:normal;transition:none}
html body.aid-shell>header.aid-nav .brand{display:flex;align-items:baseline;gap:4px;flex:none;margin:0 8px 24px;padding:0;width:auto;min-width:0;white-space:nowrap;font-size:var(--type-page);font-weight:750;letter-spacing:-.04em;color:var(--ink)}
html body.aid-shell>header.aid-nav .brand-dot{position:static;display:block;width:6px;height:6px;margin:0;background:var(--accent);border-radius:50%;box-shadow:0 0 14px #ff300030;animation:none}
html body.aid-shell>header.aid-nav :is(.brand small,.rail-scale,.rail-playhead,.rail-ghost,.nav-mobile-more,.phone-menu-toggle){display:none}
html body.aid-shell>header.aid-nav .nav-links{display:flex;flex:1;flex-direction:column;align-items:stretch;gap:24px;min-height:0;min-width:0;width:100%;margin:0;padding:0 0 16px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}
html body.aid-shell>header.aid-nav .nav-clip{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;width:auto;flex:none}
html body.aid-shell>header.aid-nav :is(.nav-clip-name,.nav-section){position:static;display:block;padding:0 10px 6px;font-size:var(--type-caption);font-weight:500;color:var(--dim);letter-spacing:.03em;line-height:1.4;text-transform:none}
html body.aid-shell>header.aid-nav .nav-links a{display:flex;align-items:center;gap:8px;flex:none;width:auto;min-height:36px;height:auto;margin:0;padding:8px 10px;border:1px solid transparent;border-radius:var(--r-s);color:var(--muted);font-size:var(--type-body);font-weight:400;line-height:1.3;white-space:normal;overflow-wrap:anywhere;background:none;box-shadow:none}
html body.aid-shell>header.aid-nav .nav-links a span{opacity:1;visibility:visible;position:static;display:inline;max-width:none;transform:none}
html body.aid-shell>header.aid-nav .nav-links a svg{width:17px;height:17px;flex:none;color:inherit}
html body.aid-shell>header.aid-nav .nav-links a:hover{color:var(--ink);background:#ffffff06}
html body.aid-shell>header.aid-nav .nav-links a[aria-current=page]{color:var(--ink);background:linear-gradient(100deg,#ffffff0d,#ffffff05);border-color:#ffffff0a;box-shadow:inset 2px 0 var(--accent)}
html body.aid-shell>header.aid-nav .nav-links a[aria-current=page] svg{color:var(--accent-text)}
html body.aid-shell>header.aid-nav .nav-client-heading{margin:0;padding:0 10px;min-height:36px;justify-content:space-between}
html body.aid-shell>header.aid-nav .nav-client-heading .nav-client-toggle{font-size:var(--type-caption);min-height:36px;padding:0;gap:8px}
html body.aid-shell>header.aid-nav .nav-client-create{width:28px;min-height:36px;padding:4px}
html body.aid-shell>header.aid-nav .nav-client-list{display:flex;flex-direction:column;margin:0;padding:0}
html body.aid-shell>header.aid-nav .nav-client-list.is-collapsed{display:none}
html body.aid-shell>header.aid-nav .nav-client-list a{padding-left:14px}
html body.aid-shell .aid-nav .nav-count{position:static;margin-left:auto;padding:2px 5px;background:#ffffff0d;color:var(--ink2);font-size:var(--type-caption);border-radius:8px;line-height:1}
html body.aid-shell .global-account{position:relative;flex:none;margin:0;padding:10px 0 0;border:0;border-top:1px solid var(--line);background:none}
html body.aid-shell .global-account>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 8px;list-style:none;cursor:pointer;color:var(--ink2);font-size:var(--type-body);border-radius:var(--r-s);background:none;box-shadow:none;border:0}
.global-account>summary::-webkit-details-marker{display:none}.global-account>summary::after{content:'⌃';color:var(--muted);margin-left:auto}.global-account>summary .employee-avatar{width:28px;height:28px;min-width:28px}
html body.aid-shell .global-menu{position:absolute;z-index:100;bottom:calc(100% + 8px);left:0;width:288px;max-width:calc(100vw - 24px);max-height:75dvh;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:var(--r-m);background:#191a1df5;backdrop-filter:blur(24px);box-shadow:0 16px 48px #0009}
html body.aid-shell .global-account .nav-account{display:flex;flex-direction:column;width:100%;border:0;padding:0;margin:0;opacity:1;visibility:visible;max-height:none;overflow:visible}
html body.aid-shell .global-account .nav-identity{display:flex;align-items:center;gap:12px;padding:0 0 12px;white-space:normal;border-bottom:1px solid var(--line)}
html body.aid-shell .global-account .nav-identity>div{display:grid;gap:4px;min-width:0}.global-account .nav-identity span{color:var(--muted)}
html body.aid-shell .global-account .nav-account .language-switch{display:flex}
html body.aid-shell .studio-menu-toggle{display:none}
html body.aid-shell .project-context-dock{view-transition-name:project-navigation;position:sticky;top:var(--top-nav-height);z-index:65;max-width:none;width:100%;margin:0;padding:0 var(--page-gutter);background:#15191ff5;backdrop-filter:blur(24px);border-bottom:1px solid var(--line)}
html body.aid-shell .project-context-dock .project-tabs{position:static;display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:44px;margin:0;padding:0;border:0;background:none;box-shadow:none}
html body.aid-shell .project-context-dock .project-tabs-links{display:flex;flex:1;align-items:center;gap:4px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
html body.aid-shell .project-context-dock .project-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:8px;line-height:1.2;white-space:nowrap;font-size:var(--type-body)}
html body.aid-shell .project-context-dock .project-tabs-name{display:block;align-content:center;max-width:220px;overflow:hidden;text-overflow:ellipsis}
html body.aid-shell .project-context-dock .project-tabs [aria-current=page]{background:#ffffff05;color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell .project-context-dock .project-tabs-links a::after{display:none}
html body.aid-shell .project-context-dock .project-tabs .title-back{position:static;inset:auto;flex:none;margin:0;padding:8px;align-self:center}
html body.aid-shell .project-context-dock .project-subnav{margin:0;padding:0;min-height:44px;border:0;border-top:1px solid var(--line);background:none}
html body.aid-shell :is(.savebar,.person-savebar){left:var(--sidebar-width,0px)}
html body.aid-shell .person-navigation{top:var(--top-nav-height)}html body.aid-shell .check-side{top:calc(var(--top-nav-height) + 16px)}
html body.aid-shell :is([id],a,button,input,select,textarea){scroll-margin-top:calc(var(--top-nav-height) + var(--project-nav-height,0px) + 20px)}
.skip-workspace{position:fixed;top:8px;left:8px;transform:translateY(-200%);z-index:200;background:var(--ink);color:var(--surface-0);padding:12px 16px;border-radius:var(--r-s)}.skip-workspace:focus{transform:none}
@media(max-width:900px){
html body.aid-shell:has(>header.aid-nav){--sidebar-width:0px;--top-nav-height:56px;padding-left:0;padding-top:56px}
html body.aid-shell>header.aid-nav.aid-nav{height:56px;width:100%;inset:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:12px;padding:6px 12px;border-right:0;border-bottom:1px solid var(--line)}
html body.aid-shell>header.aid-nav .brand{margin:0;flex:1;font-size:var(--type-title)}
html body.aid-shell .studio-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:8px;border:0;background:none;box-shadow:none;color:var(--ink2)}
html body.aid-shell>header.aid-nav .nav-links{display:none;position:fixed;left:0;top:56px;bottom:0;width:min(300px,85vw);padding:20px 12px;background:#17181b;border-right:1px solid var(--line);overflow:auto}
html body.aid-shell>header.aid-nav.is-open .nav-links{display:flex}
html body.aid-shell>header.aid-nav .nav-links a{min-height:44px}
html body.aid-shell .global-account{padding:0;border:0}.global-account>summary>span:not(.employee-avatar){display:none}
html body.aid-shell .global-menu{position:fixed;left:auto;right:12px;top:64px;bottom:auto;max-height:calc(100dvh - 80px)}
.studio-nav-backdrop{position:fixed;inset:56px 0 0;z-index:85;background:#0009;backdrop-filter:blur(2px)}
html body.studio-menu-open{overflow:hidden}
html body.aid-shell .project-context-dock{padding:0 12px}.project-context-dock .project-more{margin-left:auto}
html body.aid-shell .project-context-dock .project-tabs{gap:0 8px}
html body.aid-shell .project-context-dock .project-tabs-links{flex-basis:100%;order:3;flex-wrap:nowrap}
html body.aid-shell .project-context-dock :is(.project-tabs-name,.project-tabs-all){display:none}
html body.aid-shell>main,html body.aid-shell>.wrap{padding-top:20px}
}
html body.aid-shell.desk-focus,html.chat-window body.aid-shell{padding-left:0;padding-top:0;--top-nav-height:0px}
html body.aid-shell.desk-focus>header.aid-nav,html.chat-window body.aid-shell>header.aid-nav,html body.aid-shell.desk-focus .project-context-dock{display:none}
/* A control's role, rather than its HTML tag, determines its visual weight. */
html body.aid-shell :is(.button,button).primary{background:var(--control-active);color:var(--ink);border:1px solid #ffffff20;box-shadow:inset 0 1px #ffffff12,0 3px 10px #0002;font-weight:600}
html body.aid-shell :is(.button,button).secondary{background:var(--btn);border-color:var(--btn-edge);color:var(--ink2);box-shadow:inset 0 1px #ffffff05;font-weight:500}
html body.aid-shell :is(.button,button).secondary:hover{background:var(--btn-hover);border-color:#ffffff28;color:var(--ink)}
html body.aid-shell :is(.panel,.tile,.inbox-group,.check-result,.people-edit,.finance-grid>section){background:var(--pan);border-color:var(--line);box-shadow:inset 0 1px #ffffff08,0 8px 32px #0002}
html body.aid-shell :is(.notice,.callout){border-color:#ff500040;background:linear-gradient(100deg,#ff300010,#ffffff02)}
html body.aid-shell .notice.error{border-color:var(--danger);background:#ff300010}
html body.aid-shell :focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
html body.aid-shell :is(input[type=checkbox],input[type=radio]){accent-color:#d5d6da}
html body.aid-shell .project-filter{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:12px 24px;margin:20px 0 24px;padding:16px 20px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--pan);box-shadow:inset 0 1px #ffffff05}
html body.aid-shell .project-search{display:flex;align-items:stretch;gap:0;max-width:400px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface-0)}
html body.aid-shell .project-search label{flex:1;min-width:0;margin:0}
html body.aid-shell .project-search input{width:100%;min-width:0;min-height:36px;margin:0;border:0;border-radius:var(--r-s) 0 0 var(--r-s);background:var(--surface-0)!important;box-shadow:none;font-size:var(--type-body)}
html body.aid-shell .project-search button{min-height:36px;border:0;border-left:1px solid var(--line);border-radius:0 var(--r-s) var(--r-s) 0;padding:6px 12px;background:#ffffff04;box-shadow:none;font-weight:500}
html body.aid-shell .project-filter-options{display:block;min-width:0;border:0;background:none;padding:0;margin:0}
.project-filter-options>summary{display:none}.project-filter-options>div{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap}
html body.aid-shell .project-filter .production-checks{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;border:0;border-radius:var(--r-s);background:none;min-width:0}
html body.aid-shell .project-filter .production-checks label{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin:0;padding:6px 10px;border-radius:8px;font-size:var(--type-body);font-weight:400;line-height:1.25;cursor:pointer;color:var(--muted)}
html body.aid-shell .project-filter .production-checks label:has(:checked){background:var(--control-active);color:var(--ink);box-shadow:inset 0 1px #ffffff0d}
html body.aid-shell .project-filter .production-checks label:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
html body.aid-shell .project-filter .production-checks input{position:absolute;opacity:0;width:1px;height:1px;min-width:0;margin:0}
html body.aid-shell .project-sort{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .project-sort :is(select,.aid-select-trigger){min-height:36px;font-weight:400;background:#ffffff03;border-color:var(--line)}
html body.aid-shell .finance-top{margin-bottom:20px}.finance-top-actions{align-items:center}
html body.aid-shell .finance-top-actions>:is(button,.button){min-width:0}
html body.aid-shell .finance-actions-menu{position:relative;margin:0;padding:0;background:none;border:0}
html body.aid-shell .finance-actions-menu>summary{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border:1px solid var(--btn-edge);border-radius:var(--r-s);color:var(--ink2);background:var(--pan2);cursor:pointer;list-style:none;font-weight:500}
.finance-actions-menu>summary::-webkit-details-marker{display:none}
html body.aid-shell .finance-actions-menu>div{position:absolute;z-index:70;right:0;top:calc(100% + 8px);width:260px;max-width:calc(100vw - 32px);padding:6px;border:1px solid var(--line);border-radius:var(--r-m);background:#1b1c1e;box-shadow:0 12px 32px #0007;display:grid;gap:4px}
html body.aid-shell .finance-actions-menu>div>button{width:100%;min-height:36px;justify-content:flex-start;text-align:left;padding:8px 10px;background:none;border:0;border-radius:8px;box-shadow:none;color:var(--ink2);font-weight:400;gap:8px}
html body.aid-shell .finance-actions-menu>div>button:hover{background:#ffffff08;color:var(--ink)}
html body.aid-shell .finance-bar-row{padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-m);background:linear-gradient(115deg,#1b1c1e,#131416)}
html body.aid-shell :is(.finance-tabs,.finance-own-tabs,.finance-switch,.plan-switch,.plan-navigation,.view-toggle){display:flex;flex-wrap:wrap;gap:0;padding:2px;background:var(--surface-0);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:none;max-width:100%}
html body.aid-shell :is(.finance-tabs,.finance-own-tabs,.finance-switch,.plan-switch,.plan-navigation,.view-toggle)>:is(button,a){min-height:36px;height:auto;padding:6px 12px;border:0;border-radius:8px;background:none;box-shadow:none;color:var(--muted);font-size:var(--type-body);font-weight:400;white-space:normal;line-height:1.3}
html body.aid-shell :is(.finance-tabs,.finance-own-tabs,.finance-switch,.plan-switch,.view-toggle)>:is([aria-current],[aria-selected=true],[aria-pressed=true],.active){background:var(--control-active);color:var(--ink);box-shadow:inset 0 1px #ffffff0d}
html body.aid-shell .finance-period{gap:12px}.finance-period label{font-weight:400;color:var(--muted)}
html body.aid-shell .finance-period :is(select,.aid-select-trigger){min-height:36px;font-size:var(--type-body);font-weight:400;background:#ffffff03;border-color:var(--line)}
html body.aid-shell :is(.finance-x,.finance-close,button[data-dialog-close][aria-label],button[id=plan-close],.file-trash,.efdel){display:inline-flex;align-items:center;justify-content:center;min-width:32px;width:32px;min-height:36px;height:32px;padding:6px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:var(--muted);font-size:var(--type-lead);font-weight:400}
html body.aid-shell :is(.finance-x,.finance-close,button[data-dialog-close][aria-label],button[id=plan-close],.file-trash,.efdel):hover{background:#ffffff08;color:var(--ink);box-shadow:none}
html body.aid-shell .finance-slot-delete button:hover{color:var(--danger);background:#ff30000d}
html body.aid-shell .finance-op-tools{gap:4px;grid-template-columns:repeat(3,32px)}
html body.aid-shell .finance-usdt-actions form{gap:0;grid-template-columns:minmax(72px,1fr) auto;border:1px solid var(--line);border-radius:var(--r-s);background:#141517;overflow:visible}
html body.aid-shell .finance-usdt-actions input:not([type=hidden]){min-height:36px;min-width:0;border:0;border-radius:var(--r-s) 0 0 var(--r-s);background:none;box-shadow:none;padding:8px 10px;font-size:var(--type-body)}
html body.aid-shell .finance-usdt-actions button{border:0;border-left:1px solid var(--line);border-radius:0 var(--r-s) var(--r-s) 0;min-height:36px;background:#ffffff05;box-shadow:none;font-size:var(--type-body);font-weight:500;padding:8px 10px}
html body.aid-shell .finance-usdt-actions .notice{padding:8px;border:0;border-top:1px solid var(--line);border-radius:0 0 var(--r-s) var(--r-s)}
html body.aid-shell .finance-usdt dd small{display:block;margin-top:4px}
html body.aid-shell #planning .plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;align-items:start;gap:16px}
html body.aid-shell #planning .plan-canvas{min-width:0}
html body.aid-shell #planning .plan-inspector{position:sticky;top:calc(var(--top-nav-height) + 16px);min-width:0;border:1px solid var(--line);border-radius:var(--r-m);background:linear-gradient(130deg,#1c1d20,#131416);overflow:hidden;box-shadow:inset 0 1px #ffffff06}
.plan-inspector-heading{display:flex;align-items:center;gap:8px;margin:0;padding:16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--type-meta);font-weight:500}
.plan-inspector-empty{margin:0;padding:20px 16px;line-height:1.5;color:var(--muted);font-size:var(--type-body)}
html body.aid-shell #planning .plan-hover{position:static;width:100%;max-width:none;max-height:none;padding:16px;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:auto;color:var(--ink)}
html body.aid-shell #planning .plan-hover>strong{font-size:var(--type-title);font-weight:600;margin-bottom:20px}
html body.aid-shell #planning .plan-hover .plan-task-details{display:grid;grid-template-columns:1fr;gap:4px}
html body.aid-shell #planning .plan-hover .plan-task-details>div{display:grid;grid-template-columns:1fr;gap:4px}html body.aid-shell #planning .plan-hover :is(dt,dd){margin:0;overflow-wrap:anywhere}.plan-hover dd{padding-bottom:12px}.plan-hover dt{font-size:var(--type-caption);color:var(--muted)}
html body.aid-shell #planning .plan-visible-filters{gap:0;padding:4px;border:1px solid var(--line);border-radius:var(--r-m);background:linear-gradient(110deg,#1d1e20,#131416)}
html body.aid-shell #planning .plan-visible-filters>label{padding:0 8px;border-right:1px solid var(--line)}
html body.aid-shell #planning .plan-visible-filters :is(select,.aid-select-trigger){border:0;background:none;box-shadow:none;font-weight:400}
html body.aid-shell #planning .plan-visible-filters .plan-all-projects{border-right:0;padding:0 12px}
html body.aid-shell #planning{--p-label:184px}
@media(max-width:1200px){html body.aid-shell .project-filter{grid-template-columns:1fr}.project-filter-options>div{justify-content:flex-start}html body.aid-shell #planning .plan-layout{grid-template-columns:minmax(0,1fr) 216px}}
@media(max-width:900px){html body.aid-shell #planning .plan-layout{grid-template-columns:1fr}html body.aid-shell #planning .plan-inspector{display:none}}
@media(max-width:760px){html body.aid-shell .project-filter{padding:12px;gap:12px;margin-top:16px}.project-filter-options>div{gap:12px}.project-filter-options>summary{display:none}html body.aid-shell .project-filter .production-checks{width:100%}html body.aid-shell .project-filter .production-checks label{flex:1;min-height:36px;padding:6px;font-size:var(--type-meta)}html body.aid-shell .project-search{max-width:none}html body.aid-shell .project-sort{width:100%;justify-content:space-between}html body.aid-shell .finance-bar-row{padding:8px;gap:12px}.finance-top-actions{gap:8px}html body.aid-shell .finance-own-tabs{width:100%}html body.aid-shell .finance-own-tabs button{white-space:normal;text-align:left}html body.aid-shell #planning .plan-visible-filters{gap:4px}html body.aid-shell #planning .plan-visible-filters>label{border:0}html body.aid-shell .finance-usdt-actions{grid-template-columns:1fr}}
@media(pointer:coarse){html body.aid-shell :is(.finance-x,.finance-close,button[data-dialog-close][aria-label],button[id=plan-close]){width:44px;min-width:44px;height:44px;min-height:44px}html body.aid-shell .finance-op-tools{grid-template-columns:repeat(3,44px)}html body.aid-shell :is(.finance-tabs,.finance-own-tabs,.finance-switch,.plan-switch,.view-toggle)>:is(button,a){min-height:44px}}
@media(prefers-reduced-motion:reduce){html body.aid-shell *,html body.aid-shell *::before,html body.aid-shell *::after{animation:none!important;transition:none!important}}
html body.aid-shell #ephead{margin:0;padding:8px 12px;gap:4px;border-radius:12px 12px 0 0;border:1px solid var(--line);background:linear-gradient(135deg,#202124,#161719)}
html body.aid-shell #ephead .episode-tab{min-width:0;min-height:44px;padding:8px 12px;border-radius:8px;color:var(--muted);font-size:var(--type-body);gap:8px;background:none}
html body.aid-shell #ephead .episode-tab.on{background:#ffffff08;color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell #ephead .episode-tab.on::before,html body.aid-shell #ephead .episode-tab::after{display:none}
html body.aid-shell #ephead .episode-tab b{font-size:var(--type-body);font-weight:500}
html body.aid-shell #ephead .episode-tab .tabcnt{background:#ffffff08;color:var(--muted);padding:2px 6px;min-width:0;min-height:0;font-weight:400;border-radius:8px}
html body.aid-shell .episode-peek{display:none}
html body.aid-shell .episode-deck{padding:8px;max-width:calc(100vw - 24px);border:1px solid #ffffff26;border-radius:10px;background:#191a1dde;backdrop-filter:blur(20px);box-shadow:0 12px 36px #0007}
html body.aid-shell .episode-version-caption{display:none}
html body.aid-shell .episode-deck .episode-version-row{gap:4px;padding:0;overflow:auto}
html body.aid-shell .episode-deck :is(.vchip,.episode-add,.episode-version-manage){min-width:40px;width:auto;min-height:40px;height:40px;padding:6px 10px;margin:0;border:1px solid transparent;border-radius:8px;background:none;box-shadow:none;color:var(--muted);font-size:var(--type-meta);font-weight:500}
html body.aid-shell .episode-deck :is(.vchip,.episode-add,.episode-version-manage):hover{background:#ffffff0a;color:var(--ink)}
html body.aid-shell .episode-deck .vchip.on{background:#ffffff10;border-color:#ffffff18;color:var(--ink)}
html body.aid-shell .episode-deck .vchip:is(.pub,.seen){box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell .episode-deck .episode-add{position:static;color:var(--ink2)}
html body.aid-shell .episode-deck .version-compare{display:flex;min-height:36px;padding:4px 0 0;margin:4px 0 0;gap:8px;font-size:var(--type-caption);color:var(--muted);font-weight:400}
html body.aid-shell .episode-deck .vvdel{display:none;min-height:32px;height:32px;width:32px}
html body.aid-shell .episode-deck.deleting .vvdel{display:flex}
html body.aid-shell .epwrap.on:not(:fullscreen):not(:-webkit-full-screen):not(.is-expanded){background:linear-gradient(130deg,var(--surface-1),#131416);box-shadow:none}
html body.aid-shell .desk-review-tools{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;flex:none;gap:4px;min-width:0;margin:0 8px 12px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--pan2)}
html body.aid-shell .desk-review-tools :is(.vbtn,button.vspeed-trigger){display:flex;align-items:center;justify-content:center;flex:none;width:36px;min-width:36px;min-height:36px;height:36px;padding:8px;border:0;border-radius:8px;box-shadow:none;background:none;color:var(--muted);font-size:var(--type-meta)}
html body.aid-shell .desk-review-tools .vbtn.on{color:var(--ink);background:#ffffff0c}
html body.aid-shell .desk-review-tools .vbtn:hover{background:#ffffff0a;color:var(--ink)}
html body.aid-shell .desk-review-tools .vbtn svg{width:18px;height:18px}
html body.aid-shell .desk-review-tools .vtool-label{display:none}
html body.aid-shell .desk-review-tools .quality-row{margin:0;padding:0;flex:none}
html body.aid-shell .desk-review-tools .quality-row :is(select,.aid-select-trigger){width:72px;min-width:0;min-height:36px;height:36px;font-size:var(--type-meta);font-weight:400;padding:4px 24px 4px 8px;border:0;border-radius:8px;background-color:transparent;box-shadow:none}
html body.aid-shell .desk-review-tools .quality-row label{font-size:0;margin:0;gap:0}
html body.aid-shell .desk-review-tools .quality-status:not(:empty){position:absolute;top:100%;left:0;z-index:8;max-width:100%;padding:8px;background:#202124;border:1px solid var(--line);font-size:var(--type-caption)}
html body.aid-shell .epcol h4.discussion-head{padding:0 0 12px;margin-bottom:0;gap:8px;border-bottom:1px solid var(--line)}
html body.aid-shell .epcol h4.discussion-head :is(select,.aid-select-trigger){min-height:36px;font-weight:400;background:none;border-color:var(--line);border-radius:8px;font-size:var(--type-meta)}
html body.aid-shell .epcol .discussion-scope{font-size:var(--type-caption)}
html body.aid-shell .cmts.chat .cm .bd{padding:12px 16px;background:linear-gradient(130deg,#242528,#1b1c1e);border:1px solid #ffffff0b;border-radius:12px;box-shadow:inset 0 1px #ffffff04}
html body.aid-shell .cmts.chat .cm.own .bd{background:linear-gradient(130deg,#2b292a,#212123);border-color:#ffffff12}
html body.aid-shell .cmts.chat .cm .comment-text{font-size:1rem;line-height:1.55;font-weight:400;color:var(--ink2)}
html body.aid-shell .cmts.chat .cm .cm-menu-trigger{position:absolute;right:8px;bottom:8px;display:inline-flex;width:28px;height:28px;min-height:0;border:0;padding:4px;border-radius:8px;background:none;box-shadow:none;flex:none;color:var(--muted)}
html body.aid-shell .cmts.chat .cm .cmtime{padding-right:32px}
html body.aid-shell .cmts.chat .cm .cm-menu-trigger:hover{background:#ffffff09;color:var(--ink)}
html body.aid-shell .cmts.chat .cm .meta{max-width:min(640px,calc(100vw - 72px));padding:4px;background:var(--pan2);border-color:#ffffff1b;border-radius:12px;gap:4px;box-shadow:0 12px 32px #0005,inset 0 1px #ffffff06}
html body.aid-shell .cmts.chat .cm .meta :is(a,button){min-height:36px;font-size:var(--type-meta);font-weight:400;padding:8px 12px;border-radius:8px;box-shadow:none}
html body.aid-shell .cmts.chat .cm .meta .dellink{color:var(--muted)}
html body.aid-shell .cmts.chat .cm .meta .dellink:hover{color:var(--danger)}
html body.aid-shell .cbox.chat .cbfield{background:var(--surface-1);border:1px solid var(--line);box-shadow:inset 0 1px #ffffff05}
html body.aid-shell .cbox.chat:focus-within .cbfield{background:#1c1d20;border-color:#ffffff45;box-shadow:none}
html body.aid-shell .cmts.chat .cm .cvtag{border-color:#ffffff18;color:var(--muted);font-weight:400}
@media(pointer:coarse){html body.aid-shell .desk-review-tools .vbtn{width:44px;height:44px;min-height:44px}html body.aid-shell .episode-deck :is(.vchip,.episode-add,.episode-version-manage){height:44px;min-height:44px}html body.aid-shell .cmts.chat .cm .meta :is(a,button){min-height:44px}}
@media(max-width:640px){html body.aid-shell .cmts.chat .cm .bd{padding:12px}html body.aid-shell .cmts.chat .cm .meta{max-width:100%}}
html body.aid-shell .desk-review-tools .vtimeline-caption{display:contents;font-size:0;gap:0}.desk-review-tools .vtimeline-caption>.ui-info{display:none}
html body.aid-shell .desk-review-tools :is(.quality-trigger,.speed-trigger){background:none;border:0;box-shadow:none;min-height:36px;height:36px;padding:4px 8px;font-weight:400;border-radius:8px}
@media(min-width:901px){html body.aid-shell .epwrap.desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epplayer{width:max(300px,min(34vw,490px,calc((100svh - 240px) * 9 / 16)))}}
/* The compact toolbar stays over the picture, in both desk and fullscreen. */
html body.aid-shell .desk-side :is(.vwrap,.video-shell) :is(.vbar,.review-controls) .vtools.desk-review-tools{position:absolute;top:10px;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 16px);min-width:0;flex-wrap:nowrap;justify-content:center;margin:0;padding:4px;gap:2px;border:1px solid #ffffff26;border-radius:10px;background:#17181ba6;backdrop-filter:blur(16px);box-shadow:0 4px 18px #0003}
html body.aid-shell .desk-side .desk-review-tools :is(.vbtn,button.vspeed-trigger){min-width:32px;width:32px;height:36px;min-height:36px;padding:6px}
html body.aid-shell .desk-side .desk-review-tools .quality-row{margin:0;flex:none}
@media(max-width:640px){html body.aid-shell .desk-ready:not(:fullscreen,:-webkit-full-screen,.is-expanded) .vwrap .vtools.desk-review-tools{flex-wrap:wrap;width:calc(100% - 12px);justify-content:center}}
html body.aid-shell .teammenu{background:var(--pan2);border-color:#ffffff25;box-shadow:0 12px 32px #0008;max-width:calc(100vw - 16px);border-radius:12px}
html body.aid-shell .teammenu .teamopt{min-height:44px;padding:8px 12px;font-weight:400;gap:4px;border-radius:8px}
html body.aid-shell .teammenu .teamopt:is(:hover,:focus-visible){background:#ffffff0c;color:var(--ink)}
.comment-mention{color:#ffb09a;background:#ff500012;border-radius:4px;padding:1px 3px;font-weight:500}
html body.aid-shell .delivery-steps{gap:0;padding:8px 16px;background:var(--surface-1)}
html body.aid-shell .delivery-steps>a{border:0;border-radius:8px;background:none;box-shadow:none;font-weight:400;padding:8px 16px;color:var(--muted);gap:8px}
html body.aid-shell .delivery-steps>a[aria-current=page]{color:var(--ink);background:#ffffff06;box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell .delivery-steps>a[aria-current=page]::before{background:#303134;color:var(--ink)}
html body.aid-shell .delivery-steps>a::after{font-size:var(--type-meta);opacity:.5}
html body.aid-shell .check-heading{justify-content:space-between!important;margin:24px 0 16px}
html body.aid-shell :is(#check-run,#check-script-save,#check-chat-send,.check-apply,#plan-take-go){background:var(--control-active);border:1px solid #ffffff24;color:var(--ink);box-shadow:inset 0 1px #ffffff0b;border-radius:8px;font-weight:500;min-height:44px}
html body.aid-shell .check-top{gap:12px;padding:20px 24px;background:var(--pan)}
html body.aid-shell .check-summary{display:grid;gap:12px}.check-verdict{font-size:var(--type-title);font-weight:600}.check-metrics{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;font-size:var(--type-meta);font-weight:400}.check-when{margin-left:auto}
html body.aid-shell #check-source{margin:0}.check-script{padding-top:12px;border-top:1px solid var(--line)}
html body.aid-shell #check-review{margin:0;padding:16px;background:#ffffff03;border:1px solid var(--line);border-left:2px solid var(--accent-text);color:var(--ink2)}
html body.aid-shell .check-tabs{gap:0;background:var(--pan-top);border:1px solid var(--line);border-radius:12px;padding:4px;scrollbar-width:thin}
html body.aid-shell .check-tabs .check-tab{border:0;border-radius:8px;background:none;box-shadow:none;padding:8px 12px;min-height:44px;display:grid;justify-items:start;gap:4px;color:var(--muted);font-weight:500}
html body.aid-shell .check-tabs .check-tab.on{background:#ffffff08;color:var(--ink);box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell .check-tab i{font-weight:400;font-size:var(--type-caption)}
html body.aid-shell .check-panel{padding:24px;background:var(--surface-1);gap:24px;border-color:var(--line)}
.check-section{padding-top:20px;border-top:1px solid var(--line);display:grid;gap:12px;min-width:0}.check-section>header{display:flex;gap:12px;align-items:center}.check-section h4{margin:0;font-weight:600;font-size:var(--type-lead)}.check-section-count{color:var(--muted);font-size:var(--type-meta)}
.check-section-hint{font-size:var(--type-meta);color:var(--muted);margin:0;line-height:1.5;font-weight:400}
html body.aid-shell .check-list{gap:12px}
html body.aid-shell .check-list .check-finding{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;border:1px solid #ffffff12;border-radius:12px;background:var(--pan2);color:var(--ink2);margin:0;line-height:1.55}
html body.aid-shell .check-list .check-finding::before{display:none}.finding-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}.finding-status{font-size:var(--type-meta);font-weight:500;margin-right:auto}.is-error .finding-status{color:var(--danger)}.is-warn .finding-status{color:var(--warn)}.check-time-empty{color:var(--muted);font-size:var(--type-caption)}
html body.aid-shell .check-finding .check-text{font-size:var(--type-lead);font-weight:400;min-width:0}.check-text p{margin:0}.check-text p+p{margin-top:8px}.check-explanation{color:var(--muted)}
.finding-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;border-top:1px solid #ffffff0b}
html body.aid-shell .check-finding :is(.check-ai,.check-tag,.check-time),html body.aid-shell .check-time{min-height:36px;padding:4px 12px;font-size:var(--type-meta);font-weight:400;border:1px solid #ffffff18;border-radius:8px;box-shadow:none;background:#ffffff03;color:var(--ink2)}
html body.aid-shell .check-time{font-variant-numeric:tabular-nums;gap:8px;color:var(--accent-text)}
html body.aid-shell .check-skip{margin:0 0 0 auto;min-height:36px;gap:8px;padding:4px 8px;white-space:normal;font-size:var(--type-meta);font-weight:400;color:var(--muted)}.check-skip input{accent-color:#bbb}
html body.aid-shell .check-finding.is-skipped{text-decoration:none;opacity:.6}.check-finding.is-skipped .check-text{text-decoration:line-through}
.check-passed summary{min-height:36px;cursor:pointer;color:var(--muted);font-size:var(--type-meta)}.check-passed ul{margin-top:8px}
html body.aid-shell .check-fixes{background:#ffffff03;border-color:var(--line);padding:16px;gap:16px}.check-fixes .check-edits li+li{border-top:1px solid var(--line);padding-top:12px}
html body.aid-shell .check-side{top:calc(var(--top-nav-height) + 20px);padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-1)}.check-side video{max-height:calc(100dvh - 220px)}
html body.aid-shell .check-chat{position:relative;bottom:auto;background:#1c1d20;gap:16px;padding:20px}.check-chat-head{padding-bottom:12px;border-bottom:1px solid var(--line)}.check-chat-head>span{line-height:1.5}
html body.aid-shell #check-chat-close{display:grid;place-items:center;min-width:36px;width:36px;height:36px;min-height:36px;padding:0;border:0;background:none;border-radius:8px;font-size:var(--type-title);box-shadow:none}
html body.aid-shell .delivery-check{background:#ffffff03;border-color:var(--line);padding:16px}.delivery-grid .panel-head h2{font-size:var(--type-lead)}
html body.aid-shell .folder-tabs button{min-height:60px;border-radius:8px;font-weight:400}html body.aid-shell .folder-tabs button.active{background:#ffffff08;box-shadow:inset 2px 0 var(--accent)}
html body.aid-shell .folder-tabs :is(strong,small,svg,.folder-count){color:var(--muted)}html body.aid-shell .folder-tabs button.active :is(strong,svg){color:var(--ink)}
html body.aid-shell :is(.folder-workspace,.folder-location,.upload-tools,.folder-content.view-grid .file-row){background:#18191b;border-color:var(--line)}
html body.aid-shell .plans-grid{align-items:start}html body.aid-shell .plan-card .plan-actions [data-plan-take]{background:linear-gradient(130deg,#333437,#252629);border:1px solid #ffffff20;color:var(--ink);border-radius:8px;box-shadow:inset 0 1px #ffffff0b;font-weight:500}
html body.aid-shell .plan-detail-window{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;color:var(--ink);background:linear-gradient(140deg,#222326,var(--surface-1));border:1px solid var(--line);border-radius:16px}.plan-detail-window::backdrop{background:#0009;backdrop-filter:blur(4px)}.plan-detail-window header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:#202123;border-bottom:1px solid var(--line)}.plan-detail-window h2{margin:0;font-size:var(--type-title)}.plan-detail-body{padding:24px;line-height:1.6;overflow-wrap:anywhere}.plan-detail-body>*+*{margin-top:16px}.plan-detail-body .plan-kv{border-block:1px solid var(--line);padding:16px 0}
html body.aid-shell .plan-detail-close{display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;background:none;border:0;box-shadow:none;font-size:var(--type-title)}
@media(max-width:900px){html body.aid-shell .check-side{position:relative;top:auto;order:-1;margin:0;padding:12px}.check-side video{height:28dvh;max-height:none}.check-when{margin-left:0}.check-top{padding:16px}}
@media(max-width:600px){html body.aid-shell .check-panel{padding:16px;gap:16px}html body.aid-shell .check-list .check-finding{padding:12px}.check-chat-form{flex-direction:column}.finding-actions{gap:4px}.check-skip{margin-left:0}.check-ep-head{display:grid}.check-layout{gap:16px}html body.aid-shell .delivery-steps{padding:4px;flex-wrap:nowrap;overflow:auto}html body.aid-shell .delivery-steps>a{padding:8px;gap:4px;font-size:var(--type-meta);flex:none}html body.aid-shell .delivery-steps>a::after{display:none}html body.aid-shell .check-finding :is(.check-ai,.check-time,.check-tag,.check-skip){min-height:44px}}
/* Four families: action, quiet action, selected tab, keyboard focus.
   Keep this contract shared by both shells, including embedded transfer/review. */
html body.aid-shell :is(button,.button){font-weight:500}
html body.aid-shell :is(.primary,.pubbtn,.client-switch){background:var(--control-active);border:1px solid #ffffff26;color:var(--ink);box-shadow:inset 0 1px #ffffff0a}
html body.aid-shell :is(.pubbtn,.client-switch):hover{background:#353d47;border-color:#ffffff40}
html body.aid-shell .publication-bar .pubbtn{background:var(--control-active);box-shadow:inset 0 1px #ffffff0a;border-color:#ffffff26}
html body.aid-shell .publication-bar .pubbtn:hover{background:#353d47}
html body.aid-shell .publication-bar .pubbtn[aria-pressed=true]{background:var(--control-active);box-shadow:inset 0 -2px var(--accent);border-color:#ffffff26}
html body.aid-shell :is(.eptab,.episode-tab,.episode-button,.project-tabs-links a):is(.on,[aria-pressed=true],[aria-current=page]){border-bottom-color:transparent;background:var(--control-active);border-radius:8px;box-shadow:inset 0 -2px var(--accent)}
html body.aid-shell :is(.ephead,.review-tabs,.project-tabs-links) :is(.eptab,.episode-tab,.episode-button,a):is(.on,[aria-pressed=true],[aria-current=page])::after,
html body.aid-shell .ephead .eptab.on::before{display:none;content:none}
html body.aid-shell :is(.ephead,#ephead,.title-band),html body.aid-shell #workspace-content :is(.ephead,.title-band){background:var(--pan-top)}
html body.aid-shell .project-subnav>a{border-radius:8px}
html body.aid-shell #workspace-content :is(.epwrap,.review-shell,.epcol,.review-discussion),html body.aid-shell :is(.epwrap,.review-shell,.epcol,.review-discussion){background:var(--surface-1)}
html body.aid-shell .cmts.chat .cm .bd{background:linear-gradient(130deg,#232930,#1d2229)}
html body.aid-shell .cmts.chat .cm.own .bd{background:linear-gradient(130deg,#2a3038,#232830);border-color:#ffffff12}
html body.aid-shell .cmts.chat .cm .comment-text{font-size:1.0625rem;line-height:1.5}
html body.aid-shell .cbox.chat .cbfield{background:var(--field)}
html body.aid-shell .cbox.chat:focus-within .cbfield{background:var(--surface-2)}
html body.aid-shell .project-filter{grid-template-columns:minmax(200px,1fr) auto;position:relative;padding:12px 16px;gap:12px 20px}
html body.aid-shell .project-filter .production-checks label{gap:6px;padding:8px 10px;border:1px solid transparent}
html body.aid-shell .project-filter .production-checks label:has(:checked){border-color:#ffffff20}
html body.aid-shell .project-filter .production-checks label::before{content:'';width:10px;height:10px;flex:none;border:1px solid #737f90;border-radius:3px}
html body.aid-shell .project-filter .production-checks label:has(:checked)::before{background:#c8d2e0;box-shadow:inset 0 0 0 2px #303740;border-color:#c8d2e0}
html body.aid-shell .project-filter .production-checks label:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
html body.aid-shell .project-filter .project-result-count{color:var(--muted);font-size:var(--type-meta);font-variant-numeric:tabular-nums;justify-self:end}
html body.aid-shell .team-empty[hidden]{display:none}
/* Shared baseline: publication and comment filters use the same 52px row. */
html body.aid-shell .desk-ready .publication-bar{min-height:52px;padding:6px 10px;display:flex;align-items:center;justify-content:flex-start}
html body.aid-shell .desk-ready .publication-bar .pubbtn{min-height:36px;padding:6px 12px;font-size:var(--type-body);border-radius:8px}
html body.aid-shell .epcol h4.discussion-head{min-height:52px;padding:6px 0;gap:8px;align-items:center;background:none}
html body.aid-shell .epcol h4.discussion-head :is(select,.aid-select-trigger){min-height:36px;font-size:var(--type-body);padding-top:4px;padding-bottom:4px}
html body.aid-shell .epcol .discussion-scope{font-size:var(--type-meta);padding:6px 0}
html body.aid-shell .epwrap.desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded){gap:20px;padding:0 16px 12px}
html body.aid-shell .epwrap.desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded) .epcol{padding-top:0}
html body.aid-shell .desk-side .desk-review-tools :is(.quality-trigger,.speed-trigger){font-size:var(--type-meta)}
@media(max-width:760px){
 html body.aid-shell .project-filter{grid-template-columns:minmax(0,1fr);padding:12px}
 html body.aid-shell .project-filter .production-checks{gap:4px;display:grid;grid-template-columns:1fr 1fr}
 html body.aid-shell .project-filter .production-checks label{justify-content:flex-start;min-height:44px;font-size:var(--type-body)}
 html body.aid-shell .project-filter .project-result-count{display:none}
 html body.aid-shell .epwrap.desk-side:not(:fullscreen,:-webkit-full-screen,.is-expanded){padding:0 8px 8px;gap:12px}
 html body.aid-shell .epcol h4.discussion-head{flex-wrap:wrap;padding:8px 0}
 html body.aid-shell .epcol h4.discussion-head .h4r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);overflow:visible;gap:8px;width:100%;min-width:0}
 html body.aid-shell .epcol h4.discussion-head .h4r>.aid-select-trigger{min-width:0;max-width:100%;grid-column:auto}
 html body.aid-shell .epcol h4.discussion-head .h4r .aid-select-trigger{width:100%;max-width:100%;white-space:normal;height:auto;min-height:40px}
 html body.aid-shell .epcol h4.discussion-head .h4r .aid-select-trigger>span{white-space:normal;overflow:visible;text-overflow:clip}
 html body.aid-shell .epcol h4.discussion-head .h4r .pullrow{margin:0 0 0 auto;padding:0;flex:none;max-width:100%}
 html body.aid-shell .epcol h4.discussion-head .h4r .pullbtn{min-height:40px;white-space:normal}
 html body.aid-shell .epcol h4.discussion-head .h4r .pullrow{grid-column:2;grid-row:2;width:100%}
 html body.aid-shell .epcol h4.discussion-head .h4r .pullbtn{width:100%}
 html body.aid-shell .epcol h4.discussion-head .h4r .ccount{grid-column:1;grid-row:3;justify-self:start;width:auto}
 html body.aid-shell .epcol h4.discussion-head .h4r .chat-detach{grid-column:2;grid-row:3;justify-self:end}
 html body.aid-shell .team-heading{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:0;flex-direction:row;flex-wrap:wrap}
 html body.aid-shell .team-heading h1{margin:0;width:auto}
 html body.aid-shell .team-heading .heading-actions{margin:0;width:auto}
 html body.aid-shell .project-filter{margin:12px 0;padding:8px;gap:8px}
 html body.aid-shell .project-filter-options>div{gap:8px}
}
@media(forced-colors:active){html body.aid-shell .project-filter .production-checks label:has(:checked){border-color:Highlight}}
