/* Дизайн добавленных в Codex экранов. Только значения исходного RevuerApp.
   Источники: shared/theme.css, components.css, desktop.css, pf/crm/sign.
   Не меняет общие компоненты и исходные модули. */
.project-shell,.team-app{--project-card-gap:var(--space-5);--project-card-pad:var(--space-4)}
.project-detail .project-card,.team-app #teamPage>.team-summary{padding:var(--project-card-pad);margin:0 0 var(--project-card-gap);border-radius:var(--radius-md);background:var(--surface-card)}
.project-detail .card-head,.team-share-head{gap:var(--space-3);margin-bottom:var(--space-3)}
.team-app{max-width:none;margin:0;padding:0;font-family:Onest,sans-serif;color:var(--text-primary)}
.team-app header{gap:var(--space-3);margin-bottom:var(--space-5)}
.team-app header h1{margin:0 0 var(--space-2);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display)}
.team-app header p{margin:0;font-size:var(--fs-cap);line-height:var(--lh-cap)}
.team-app h2{font-family:Onest,sans-serif;font-size:var(--fs-title);line-height:var(--lh-title);margin:0 0 var(--space-3)}
.team-app p{font-size:var(--fs-sub);line-height:var(--lh-sub)}
.team-app .team-preview,.team-dialog .team-preview{font-size:var(--fs-cap);line-height:var(--lh-cap);color:var(--text-secondary)}
.team-app .work-grid{gap:var(--space-2);margin-top:var(--space-3)}
.team-app .team-summary>.team-member:last-child{border-bottom:0}
.team-app .team-result strong{font-weight:600}
.team-app .btn,.project-detail .btn,.team-dialog .btn{min-height:var(--round);box-sizing:border-box}
.team-dialog .actions{gap:var(--space-2);margin-top:var(--space-4)}
.team-dialog .team-form label,.team-form label{margin:var(--space-3) 0}
.team-form .team-checks label{margin:0;min-height:var(--round);padding:var(--space-2) 0}
.team-form input:not([type=checkbox]):not([type=hidden]):not([type=radio]):not([type=file]),.team-form textarea,.form-row input:not([type=range]),.form-row textarea{font-family:Onest,sans-serif}
.team-form input[type=file]{max-width:100%;font-size:var(--fs-sub);line-height:var(--lh-sub);padding:var(--space-3)}
.team-form input[type=file]::file-selector-button{font:inherit;border:0;border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);padding:var(--space-2) var(--space-3);margin-right:var(--space-3);cursor:pointer;min-height:var(--round)}
.project-detail .team-member-options>summary,.team-dialog .team-member-options>summary{min-height:var(--round)}
.project-card .team-disclosure>summary,.project-status>summary{min-height:var(--round)}
.project-detail .team-result-grid{gap:var(--space-2)}
.project-detail .team-result strong{margin-top:var(--space-2);font-weight:600}
.project-title .project-facts{margin-top:0}
.project-list-empty{font-size:var(--fs-sub);line-height:var(--lh-sub);color:var(--text-secondary)}
.team-shared-row{padding:var(--space-3);min-height:56px;box-sizing:border-box}
.team-shared-row strong{font-size:var(--fs-sub);line-height:var(--lh-sub);font-weight:600}
.team-shared-row small{line-height:var(--lh-cap)}
.team-shared-row:hover{background:var(--surface-hover)}
.team-shared-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:700px){.team-app{padding:var(--space-4)}.team-app header .btn{font-size:var(--fs-cap)}.team-app .team-result-grid{gap:var(--space-2)}}

/* Сверка с живой витриной: строка карточки, линия от текста, подпись группы. */
.project-detail .document-row{position:relative;margin-inline:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4);border:0;min-height:64px}
.project-detail .document-row+.document-row::before{content:"";position:absolute;inset:0 var(--space-4) auto 60px;height:.5px;background:var(--border)}
.project-detail .document-copy strong{font-size:var(--fs-sub);line-height:var(--lh-sub);font-weight:500}
.project-detail .document-copy span{font-size:var(--fs-cap);line-height:var(--lh-cap)}
.document-chevron{display:grid;place-items:center}.document-chevron svg{display:block}
.project-detail .document-row:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}
.project-row+.project-row{box-shadow:none;position:relative}
.project-row+.project-row::before{content:"";position:absolute;inset:0 12px auto 64px;height:.5px;background:var(--border)}
.project-detail .team-member{position:relative;border-bottom:0}
.project-detail .team-member+.team-member::before{content:"";position:absolute;inset:0 0 auto 52px;height:.5px;background:var(--border)}
.team-disclosure{border-bottom:0}
.team-disclosure>summary{font-size:var(--fs-sub);font-weight:500}
.team-disclosure .cnt{margin-left:4px;font-weight:400;color:var(--text-muted)}
.team-panel:has(>details:only-child){padding-block:4px}
.project-detail .team-panel:has(>details:only-child)>details{margin:0}
.team-member-head .avatar{font-weight:500}
@media(prefers-reduced-motion:reduce){.team-disclosure>summary>svg,.project-status>summary>svg,.role-group>summary>svg{transition:none}}

.project-detail .document-planning{margin-top:8px;padding:0;border-top:.5px solid var(--border)}.project-detail .document-planning:has(>details:only-child){padding:0}

/* Строка участника: общий ритм списка, действия через shared/menu.js. */
.team-member-compact{position:relative;min-height:64px;box-sizing:border-box;padding:12px 52px 12px 0}
.team-member-compact .team-member-head{align-items:center;min-height:40px}
.team-member-compact .team-member-head strong{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600}
.team-member-compact .team-member-head small{font-size:var(--fs-cap);line-height:var(--lh-cap);margin:4px 0 0}
.member-more{position:absolute;right:0;top:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);cursor:pointer}
/* Unified selection uses the same list rhythm and switches as project access. */
.selection-filter{display:grid;gap:8px;margin-top:24px;color:var(--muted,#606770)}
.selection-rows{margin-top:16px}.selection-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line,#e1e5ed)}
.selection-row[hidden]{display:none}.selection-row>img{width:48px;height:48px;border-radius:12px;object-fit:cover}.selection-row>div{flex:1;min-width:0}.selection-row strong,.selection-row small{display:block;overflow-wrap:anywhere}.selection-row small{margin-top:4px;color:var(--muted,#606770);font-size:var(--fs-cap);line-height:var(--lh-cap)}.selection-final-toggle{position:relative;display:flex;align-items:center}.selection-final-toggle input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.selection-final-toggle input:focus-visible+.sw{outline:2px solid var(--accent,#4564ff);outline-offset:4px}

.selection-final-toggle .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Simplified project workspace. */
.project-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.project-title>div:first-child{flex:1;min-width:200px}.project-title [data-project-invite]{display:none}.project-title #shareProject{display:inline-flex}.workspace-actions{justify-content:flex-start;align-items:center;gap:12px;min-height:44px;margin-bottom:12px}.workspace-actions>[data-next]{margin-right:0}.workspace-more{margin-left:auto;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer}.project-workspace [data-selection-host]>.card-head{display:none}.project-workspace .worksets{margin-top:0}.project-workspace [data-selection-host] .selection-filter{margin-top:16px}
@media(max-width:700px){.project-title{gap:12px}.project-title [data-project-invite]{width:100%}.project-title #shareProject{width:100%;justify-content:center}.workspace-actions{gap:8px}.workspace-actions .btn{padding-inline:12px}}

/* Тихие действия – существующий linkbtn.quiet из pf/index.html. */
.project-shell .linkbtn,.team-app .linkbtn{border:none;background:none;padding:4px 0;cursor:pointer;font-family:inherit;font-size:var(--fs-sub);font-weight:600;color:var(--accent-text);-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:8px;min-height:44px}
.project-shell .linkbtn.quiet,.team-app .linkbtn.quiet{color:var(--text-secondary);font-weight:500}

.team-form [hidden],.project-card [hidden]{display:none!important}
.project-detail .project-card h3{font-weight:600}
.team-history-row{width:100%;text-align:left;color:inherit;font:inherit;background:none;border:0;cursor:pointer}
.team-dialog .pick{display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap;margin-top:9px}
.team-dialog .pick button{flex:none;font:inherit;font-size:var(--fs-cap);color:var(--text-muted);background:var(--surface-sunken);border:0;border-radius:var(--radius-md);padding:6px 11px;white-space:nowrap;cursor:pointer}

/* Пульт Портфолио: одна строка, содержимое занимает свободное место. */
.workspace-nav{display:flex;align-items:center;gap:12px;min-height:44px;margin-bottom:12px}
.workspace-nav .worksets{flex:1;min-width:0;margin:0}
.workspace-nav .workspace-more{margin-left:0}
.workspace-actions:empty{display:none}

/* Активная пустая зона – образец selempty-box / dPick в существующем Отборе. */
.project-pickzone{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:240px;padding:40px 32px 32px;cursor:pointer;font:inherit;border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-sunken);color:var(--text-secondary)}
.project-pickzone strong{font-family:var(--font-head,inherit);font-size:var(--fs-title);font-weight:700;color:var(--text-primary)}
.project-pickzone span{font-size:var(--fs-sub);line-height:1.45}
.project-pickzone small{font-size:var(--fs-cap);color:var(--text-muted)}
.project-pickzone:hover{background:var(--surface-card)}
.project-pickzone:focus-visible{outline:none;box-shadow:var(--shell-cursor)}

/* Фильтры списка учитывают длину названий, как полосы вкладок модулей. */
.project-list .filters{overflow-x:auto;scrollbar-width:none}
.project-list .filters button{flex:1 0 auto;min-width:max-content;padding-inline:8px;white-space:nowrap}
/* Движение из существующей системы: seg-slide, shortcuts-in/veil и press-scale. */
.team-dialog[open]{animation:shortcuts-in var(--dur-3,.35s) var(--ease-morph,cubic-bezier(.32,.72,0,1)) both}
.role-inline{animation:shortcuts-veil var(--dur-1,.15s) var(--ease-out,ease) both}
.project-detail :is(.member-more,.workspace-more,.role-field,.project-pickzone,.linkbtn),.team-dialog :is(.role-field,.role-option,.icon-close,.linkbtn),.team-app .linkbtn{transition:scale var(--dur-1,.15s) var(--ease-out,cubic-bezier(.22,.61,.36,1)),background var(--dur-2,.25s),color var(--dur-2,.25s)}
.project-detail :is(.member-more,.workspace-more,.role-field,.project-pickzone,.linkbtn):active,.team-dialog :is(.role-field,.role-option,.icon-close,.linkbtn):active,.team-app .linkbtn:active{scale:var(--press-scale,.96)}
@media(prefers-reduced-motion:reduce){
 .team-dialog[open],.role-inline{animation:none}
 .project-detail :is(.member-more,.workspace-more,.role-field,.project-pickzone,.linkbtn),.team-dialog :is(.role-field,.role-option,.icon-close,.linkbtn),.team-app .linkbtn,.team-checks .sw,.team-checks .sw i{transition:none}
 .project-detail button:active,.team-dialog button:active,.team-app button:active{scale:1}
 .role-custom>summary>svg{transition:none}
}

/* Полоса загрузки из существующего Отбора: зеленое заполнение и счетчик файлов. */
.project-upload-progress{margin-top:16px}
.project-upload-progress .row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--fs-cap);color:var(--text-secondary)}
.project-upload-progress .bar{height:4px;border-radius:var(--radius-inline);background:var(--surface-sunken);overflow:hidden;margin:6px 0 12px}
.project-upload-progress .bar>i{display:block;height:100%;background:var(--success-fill);transition:width var(--dur-1,.15s)}
.project-upload-progress .pt1{overflow-wrap:anywhere}
.project-upload-progress .actions{margin-top:12px}
@media(prefers-reduced-motion:reduce){.project-upload-progress .bar>i{transition:none}}

/* Выбор фотографии – круглая галочка из Портфолио (.thumb .ck). */
.selection-tile{position:relative}.selection-tile.sel .team-result-preview{box-shadow:0 0 0 2px var(--accent)}
.selection-photo-check{position:absolute;top:8px;right:8px;width:28px;height:28px;cursor:pointer}
.selection-photo-check input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.selection-photo-check .ck{width:28px;height:28px;border-radius:50%;border:1.5px solid #fff;background:rgba(28,28,30,.25);color:#fff;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.selection-photo-check .ck svg{opacity:0}.selection-photo-check input:checked+.ck{background:var(--accent);border-color:var(--accent)}.selection-photo-check input:checked+.ck svg{opacity:1}
.selection-photo-check input:focus-visible+.ck{outline:2px solid var(--accent);outline-offset:4px}
.selection-photo-check .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.selection-final-toggle .ck{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--on-accent,#fff)}.selection-final-toggle .ck svg{opacity:0}.selection-final-toggle input:checked+.ck{background:var(--accent);border-color:var(--accent)}.selection-final-toggle input:checked+.ck svg{opacity:1}

/* Типографические роли исходных pf/crm/sign: описание 15, метаданные 13. */
.project-detail .project-note,.project-detail p.small,.project-detail .team-preview{font-size:var(--fs-cap);line-height:var(--lh-cap)}
.selection-row strong{font-size:var(--fs-sub);line-height:var(--lh-sub);font-weight:600}
.selection-filter{font-size:var(--fs-cap);line-height:var(--lh-cap)}
.team-access-base{font-size:var(--fs-cap);line-height:var(--lh-cap);color:var(--text-secondary)}
.team-form>h2{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600}
.team-form label,.field-label{line-height:var(--lh-cap)}

.team-disclosure>summary,.role-group>summary,.role-custom>summary,.project-shell .linkbtn,.team-app .linkbtn{line-height:var(--lh-sub)}

.client-edit .client-fields{grid-template-columns:minmax(0,1fr);gap:12px}
.client-fields>.team-disclosure{margin:0}
.client-fields input{max-width:100%}

/* Данные и картинки меняются внутри занятых областей, навигация стоит на месте. */
.project-detail{overflow-anchor:none}
.project-title .project-facts{min-height:var(--lh-cap)}
.project-detail .tabs{flex-shrink:0}
.worksets .cnt{display:inline-block;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}
.workspace-actions:not(:empty){min-height:44px}
.work-tile small{height:var(--lh-cap);line-height:var(--lh-cap);box-sizing:content-box}
