/* Единый вид (аудит 17.10): группа u-work. Префикс html[data-theme] body, грузится после unify.css */
/* Разделы: «Задачи», «Календарь и план», «Активности», «Протоколы встреч / Совещания отдела». */

/* Вкладки «Мои / Вся команда» — вид task-tabs со счётчиками на любой странице (не только в «Задачах») */
html[data-theme] body .task-tabs.tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:14px 0 14px}
html[data-theme] body .task-tabs.tabs::-webkit-scrollbar{display:none}
html[data-theme] body .task-tabs.tabs a{flex:1 0 auto;justify-content:center;white-space:nowrap;color:var(--muted)}
html[data-theme] body .task-tabs.tabs a.active .tab-count{background:color-mix(in srgb,var(--primary) 14%,var(--surface));color:var(--primary)}
@media(max-width:767px){
  html[data-theme] body .task-tabs.tabs a{flex:1 1 0}
  html[data-theme] body .task-tabs.tabs .tab-count{margin-left:4px;min-width:16px;padding:0 5px;font-size:10.5px}
  html[data-theme] body .task-tabs.tabs .tab-count.is-zero{display:none}
}

/* Плитки-фильтры .work-tiles (плитки сроков в «Задачах» и статусов в «Протоколах» 17.10 заменены диаграммой / убраны) */
html[data-theme] body .plan-counts.work-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px;margin:0 0 14px}
html[data-theme] body .work-tiles .plan-count.is-red>strong{color:var(--danger,#e5484d)}
@media(max-width:767px){html[data-theme] body .plan-counts.work-tiles{gap:8px}html[data-theme] body .work-tiles .plan-count{padding:10px 12px}html[data-theme] body .work-tiles .plan-count>strong{font-size:22px}}

/* Статус — сегменты scope-switch на всю ширину */
html[data-theme] body .scope-switch.work-status{display:flex;width:100%;margin:0 0 14px}
html[data-theme] body .scope-switch.work-status a{flex:1;justify-content:center;white-space:nowrap}
html[data-theme] body .scope-switch.work-status{overflow-x:auto;scrollbar-width:none;max-width:100%;box-sizing:border-box}html[data-theme] body .scope-switch.work-status::-webkit-scrollbar{display:none}
@media(max-width:767px){html[data-theme] body .scope-switch.work-status a{flex:1 0 auto;padding-left:10px;padding-right:10px;font-size:13px}}
html[data-theme] body .filter-panel+.scope-switch.work-status{margin-top:-6px}

/* Метка типа — одна форма для «Срочно»/«Новая», вида пункта плана, типа активности и «Оперативки» в протоколах */
html[data-theme] body :is(.task-urgent,.task-new,.act-badge,.proto-kind,.pi-kind){display:inline-flex;align-items:center;margin:0 6px 0 0;padding:2px 8px;border-radius:6px;font-size:11.5px;font-weight:800;line-height:1.4;vertical-align:2px;white-space:nowrap}
html[data-theme] body .pi-kind{background:color-mix(in srgb,var(--tone) 14%,var(--surface));color:var(--tone);padding:0 7px;margin:0}
html[data-theme] body .pi-meta{align-items:center}

/* Галочка «выполнено» (.pi-check) — одна на «Задачи» и «Календарь и план» */
html[data-theme] body .task-tile{--tone:var(--primary)}
html[data-theme] body .pi-check{margin:0;flex:none}
html[data-theme] body .pi-check button{display:grid;place-items:center;width:24px;height:24px;min-height:0;padding:0;border:2px solid color-mix(in srgb,var(--tone) 70%,var(--line));border-radius:7px;background:transparent;color:transparent;cursor:pointer}
html[data-theme] body .pi-check button svg{width:15px;height:15px}
html[data-theme] body .cal-col .pi-check button{width:20px;height:20px}
html[data-theme] body .pi-check button:hover{color:color-mix(in srgb,var(--tone) 45%,transparent)}
html[data-theme] body :is(.pi.is-done,.task-tile.is-done) .pi-check button{background:var(--tone);border-color:var(--tone);color:#fff}

/* Закрытое — зачёркнуто и бледно везде */
html[data-theme] body .task-tile.is-closed .task-title-text,html[data-theme] body .pi.is-done .pi-title{text-decoration:line-through;color:var(--muted)}
html[data-theme] body .task-tile.is-closed :is(h3,p,.tile-meta){opacity:1}
html[data-theme] body .task-tile.is-closed :is(.tile-meta,p){color:var(--muted)}

/* Сроки: просрочено — красная полоса слева, сегодня — янтарная (как в «Задачах») */
html[data-theme] body .task-tile.is-overdue{border-left:4px solid var(--danger,#e5484d)}
html[data-theme] body .task-tile.is-today{border-left:4px solid #e3a008}
/* 17.10: карточка .rec-card — без цветных полос, о сроке говорят дата (красная при просрочке) и статус справа */
html[data-theme] body .task-tile:is(.is-overdue,.is-today):has(.rec-card),html[data-theme] body .task-tile.rec-card:is(.is-overdue,.is-today){border-left:1px solid var(--line)}
html[data-theme] body .pi.is-overdue::before{background:var(--danger,#e5484d);width:4px}
html[data-theme] body .plan-group.is-today .pi:not(.is-done):not(.is-overdue)::before{background:#e3a008;width:4px}
html[data-theme] body .plan-group.is-overdue h2:not(.group-title){color:var(--danger,#e5484d)}

/* Заголовки групп «Название · N» — один стиль в «Задачах», «Календаре и плане», «Активностях» */
html[data-theme] body :is(.task-group,.plan-group)>h2:not(.group-title),html[data-theme] body .act-planned-title{margin:18px 0 8px;font-size:14px;font-weight:800;color:var(--muted)}
html[data-theme] body .plan-groups>.plan-group:first-child>h2,html[data-theme] body .task-groups>.task-group:first-child>h2{margin-top:4px}
html[data-theme] body .task-group-pinned>h2:not(.group-title),html[data-theme] body .plan-group.is-today>h2:not(.group-title){color:var(--primary)}

/* Карточка активности: заголовок → статус справа → мета (дата · человек · ИД/РМ · место) */
html[data-theme] body .act-card .tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
html[data-theme] body .act-card .tile-top h3{margin:0;min-width:0;font-size:15.5px;line-height:1.35;overflow-wrap:anywhere}
html[data-theme] body .act-card .tile-top .status{flex:none;margin:1px 0 0}
html[data-theme] body .act-card .tile-meta.act-meta{display:flex;flex-wrap:wrap;gap:2px 4px;margin:4px 0 0;font-size:12.5px;color:var(--muted)}
html[data-theme] body .act-detail-heading .eyebrow .act-badge{vertical-align:1px}
html[data-theme] body .act-detail-layout .essence-side{padding:0;border:0;margin-top:12px}
html[data-theme] body .act-detail-layout .essence-text{margin:12px 0 0}
html[data-theme] body .act-detail-layout .task-essence h2+.chip-static,html[data-theme] body .act-detail-layout .task-essence h2:not(:first-child){margin-top:16px}

/* Протоколы: метка вида в заголовке, статус справа */
html[data-theme] body .proto-item h3 .proto-kind{vertical-align:2px}
html[data-theme] body .proto-item .proto-item-status{display:flex;justify-content:flex-end}
html[data-theme] body .proto-filter-panel{margin:0 0 14px}

/* «⋯ Ещё» в шапке карточки рядом с «Изменить»; красный — один */
html[data-theme] body .section-heading>.actions:has(.head-menu){align-items:center}
html[data-theme] body .proto-more-menu button.is-danger{color:var(--danger,#e5484d)}

/* Форма задачи: подпись про уведомления внутри карточки, общий футер снаружи */
html[data-theme] body .task-form .tf-notice{margin:14px 0 0}
html[data-theme] body .task-form>.form-footer{margin-top:16px}

/* Поиск с иконкой и видимой подписью в фильтрах «Календаря и плана» */
html[data-theme] body :is(.plan-filters,.cal-filter-row){align-items:flex-end}
html[data-theme] body :is(.plan-filters,.cal-filter-row)>.field,html[data-theme] body :is(.plan-filters,.cal-filter-row) .mf-more>.field{margin:0;min-width:0}
html[data-theme] body :is(.plan-filters,.cal-filter-row) .mf-more>.field select{min-width:200px}
@media(max-width:767px){html[data-theme] body :is(.plan-filters,.cal-filter-row) .mf-more>.field select{min-width:0}}
/* План: новое действие — окно по «+» */
html[data-theme] body .plan-add-dialog{width:min(460px,calc(100vw - 32px))}
html[data-theme] body .plan-add-form{display:grid;gap:12px}
html[data-theme] body .plan-add-form h2{margin:0 0 2px;font-size:19px}
html[data-theme] body .plan-add-form .field{display:grid;gap:6px;margin:0}
html[data-theme] body .plan-add-form :is(input,select){width:100%;height:44px}
html[data-theme] body .plan-add-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
html[data-theme] body .plan-add-actions .button{width:100%;justify-content:center}
@media(max-width:767px){html[data-theme] body .plan-add-dialog{width:100vw;max-width:100vw}}

/* ===== 17.10, комментарии владельца ===== */
/* Заголовки групп «Название · N» — общий .group-title и в «Задачах», «Плане», «Активностях» (без капса и цвета) */
html[data-theme] body :is(.task-group,.plan-group,.plan-group.is-overdue,.plan-group.is-today,.task-group-pinned,.act-team-head,.act-planned,.content)>h2.group-title,html[data-theme] body h2.group-title{display:block;margin:18px 0 8px;font-size:17px;font-weight:700;line-height:1.3;color:var(--ink);text-transform:none;letter-spacing:0}
html[data-theme] body :is(.plan-groups>.plan-group:first-child,.task-groups>.task-group:first-child,.act-team-head)>h2.group-title{margin-top:4px}
html[data-theme] body .act-team-head>h2.group-title{margin:0}
/* Круговая диаграмма сроков в «Задачах» и «Плане» — без своих размеров: тот же вид, что «Лиды Cowork» (unify.css + u-leads.css) */

/* Активности: плитки по типам — одна строка (на телефоне — прокрутка внутри строки) */
html[data-theme] body .act-summary{display:flex!important;flex-wrap:nowrap;gap:10px;margin:0 0 14px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
html[data-theme] body .act-summary::-webkit-scrollbar{display:none}
html[data-theme] body .act-summary>.act-sum{flex:1 1 0;min-width:120px;padding:10px 12px;gap:2px}
html[data-theme] body .act-summary>.act-sum>strong{font-size:22px}
html[data-theme] body .act-summary>.act-sum>small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:767px){html[data-theme] body .act-summary{gap:8px;margin-left:-16px;margin-right:-16px;padding:0 16px;scroll-padding:0 16px}html[data-theme] body .act-summary>.act-sum{flex:0 0 auto;min-width:118px;max-width:150px}}
/* «По сотрудникам»: одна строка без переноса имён */
html[data-theme] body .act-team-grid{display:flex!important;flex-wrap:nowrap;gap:10px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
html[data-theme] body .act-team-grid::-webkit-scrollbar{display:none}
html[data-theme] body .act-team-grid>.act-team-tile{flex:1 0 auto;min-width:150px;padding:10px 14px;gap:2px}
html[data-theme] body .act-team-grid>.act-team-tile .act-sum-label{white-space:nowrap;overflow:visible}
html[data-theme] body .act-team-grid>.act-team-tile>strong{font-size:22px}
@media(max-width:767px){html[data-theme] body .act-team-grid{gap:8px;margin-left:-16px;margin-right:-16px;padding:0 16px}html[data-theme] body .act-team-grid>.act-team-tile{flex:0 0 auto;min-width:0}}
/* Карточка активности: слева блок даты; справа — тема, тип (правый верхний угол), подробности, менеджер слева внизу */
html[data-theme] body .act-card{grid-template-columns:62px minmax(0,1fr);align-items:stretch}
html[data-theme] body .act-card>.act-main.rec-card{gap:4px 12px;grid-template-rows:auto 1fr auto;min-height:62px}
html[data-theme] body .act-card>.act-main>.rec-title{margin:0;font-size:15.5px;line-height:1.35;overflow-wrap:anywhere}
html[data-theme] body .act-card .act-rec-badge{display:flex;gap:6px;align-items:center}
html[data-theme] body .act-card .act-rec-badge .act-badge{margin:0}
html[data-theme] body .act-card .act-rec-badge .status{margin:0}
html[data-theme] body .act-card .rec-body{display:grid;gap:6px;align-content:start}
html[data-theme] body .act-card .rec-body .act-meta{margin:0}
html[data-theme] body .act-card .rec-body .act-result{margin:0;font-size:13.5px;color:var(--muted)}
html[data-theme] body .act-card .rec-body .chip-static{margin:0}
html[data-theme] body .act-card .rec-who{grid-column:1/-1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] body .act-card .rec-body{grid-column:1/-1}
@media(max-width:767px){html[data-theme] body .act-card{grid-template-columns:52px minmax(0,1fr)}html[data-theme] body .act-card>.act-main.rec-card{min-height:52px}html[data-theme] body .act-card .act-rec-badge{flex-direction:column;align-items:flex-end;gap:4px}}

/* 17.10: Активности — «По сотрудникам» компактно, без кнопки «Скрыть»; на телефоне свёрнут под бледную иконку команды в шапке */
html[data-theme] body .head-team-toggle{display:none}
html[data-theme] body .act-team{margin:0 0 14px}
html[data-theme] body .act-team-head{margin:0 0 6px}
html[data-theme] body .act-team-grid{gap:8px}
html[data-theme] body .act-team-grid>.act-team-tile{flex:0 0 auto;min-width:0;flex-direction:row;align-items:baseline;gap:10px;padding:8px 12px;border-radius:12px}
html[data-theme] body .act-team-grid>.act-team-tile .act-sum-label{font-size:13px}
html[data-theme] body .act-team-grid>.act-team-tile>strong{font-size:17px;line-height:1}
html[data-theme] body .act-team-grid>.act-team-tile.is-active{border-color:var(--primary)}
@media(max-width:767px){
  html[data-theme] body .head-team-toggle{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:none;color:var(--muted);opacity:.72;cursor:pointer;-webkit-tap-highlight-color:transparent}
  html[data-theme] body .head-team-toggle .ui-icon{width:26px;height:26px;stroke-width:1.6}
  html[data-theme] body .head-team-toggle:is(.is-open,:hover){opacity:1;color:var(--primary)}
  html[data-theme] body .act-team:not(.is-open){display:none}
  html[data-theme] body .section-heading.has-head-menu:has(.head-team-toggle) h1{padding-right:96px}
}

/* Задачи (комментарий 17.10, вечер): без квадратика; срок — первым блоком слева, как дата в «Активностях».
   Свайп: вправо — закрепить, влево — удалить, длинный влево — выполнить. */
html[data-theme] body .task-tile.is-dated{display:block;padding:0}
html[data-theme] body .task-tile.is-dated>.task-tile-link,html[data-theme] body a.task-tile.is-dated{display:grid;grid-template-columns:56px minmax(0,1fr) auto;grid-template-areas:"day title badge" "day body body" "day who who";gap:4px 12px;align-items:start}
html[data-theme] body a.task-tile.is-dated{padding:14px 16px}
html[data-theme] body .task-tile.is-dated>.task-tile-link{padding:14px 16px;color:inherit;text-decoration:none}
html[data-theme] body .task-tile.is-dated .rec-day{grid-area:day;align-self:stretch;min-height:56px;height:auto;gap:1px}
html[data-theme] body .task-tile.is-dated .rec-day small{font-size:11px;color:var(--muted);font-weight:600}
html[data-theme] body .task-tile.is-dated .rec-day.is-late{background:color-mix(in srgb,var(--danger,#e5484d) 14%,transparent)}
html[data-theme] body .task-tile.is-dated .rec-day.is-late strong{color:var(--danger,#e5484d)}
html[data-theme] body .task-tile.is-dated .rec-day.is-today strong{color:var(--primary)}
html[data-theme] body .task-tile.is-dated .rec-day.is-none strong{color:var(--muted);font-size:18px}
html[data-theme] body .task-tile.is-dated .rec-day.is-none span{font-size:10px;text-align:center;line-height:1.1}
html[data-theme] body .task-tile.is-dated .rec-who{align-self:end}
html[data-theme] body .task-tile.is-dated .task-check[hidden]{display:none!important}

/* Плашка «Отменить» после длинного свайпа по задаче */
.csm-undo{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:10px 10px 10px 16px;border-radius:14px;background:#1d2433;color:#fff;font-size:14px;font-weight:600;box-shadow:0 8px 24px #0004;transform:translate(-50%,140%);opacity:0;transition:transform .25s ease,opacity .25s ease;pointer-events:none}
.csm-undo.is-shown{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.csm-undo button{min-height:36px;padding:0 12px;border:0;border-radius:10px;background:#ffffff1f;color:#fff;font-weight:700;cursor:pointer}
@media (prefers-reduced-motion:reduce){.csm-undo{transition:none}}
