/* ========================================================================
   organizer.css · CK-ORGANIZER-3COL (14.10) — «Контент-Верстак 3.0» Планинга (#planner, до 16.10 — Органайзер)
   Три колонки встык на сплиттерах Workbench (workbench.css): Календарь · Редактор · Ваульт.
   Слой ПОВЕРХ app_v2.css / screens.css / workbench.css: переиспользует tk-side-tabs, dc-*, db-*, df-*,
   tk-pop-*, omni-*, studio-device/phone-* и добавляет только своё (pl3-*). В компонентах — только var(...).
   Откат — убрать <link> в index.html (и вернуть planner.js из _backup/20261014-organizer3/).
   ======================================================================== */

/* ---------- Токены площадок (бейджи MAX / TG / VK) ---------- */
:root {
  --ch-max: #5b3fd6; --ch-max-weak: rgba(91, 63, 214, .09);
  --ch-tg: #1b7fc4;  --ch-tg-weak: rgba(27, 127, 196, .09);
  --ch-vk: #2a5fd1;  --ch-vk-weak: rgba(42, 95, 209, .09);
  --frz: #2563eb;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ch-max: #a996ff; --ch-max-weak: rgba(169, 150, 255, .14);
    --ch-tg: #6cc3ff;  --ch-tg-weak: rgba(108, 195, 255, .14);
    --ch-vk: #8fb1ff;  --ch-vk-weak: rgba(143, 177, 255, .14);
    --frz: #7aa7ff;
  }
}
:root[data-theme="dark"] {
  --ch-max: #a996ff; --ch-max-weak: rgba(169, 150, 255, .14);
  --ch-tg: #6cc3ff;  --ch-tg-weak: rgba(108, 195, 255, .14);
  --ch-vk: #8fb1ff;  --ch-vk-weak: rgba(143, 177, 255, .14);
  --frz: #7aa7ff;
}

/* ---------- Каркас ---------- */
.pl3-wrap { display: flex; flex-direction: column; gap: 12px; }
.pl3-cal, .pl3-ed, .pl3-vault {
  display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden;
  background: var(--surface); container-type: inline-size;
}
@media (min-width: 1024px) {
  body.tk-focus .pl3-wrap.wb-root { display: flex; flex-direction: row; flex: 1; min-height: 0; gap: 0; align-items: stretch; background: var(--surface); }
}
@media (max-width: 1023px) {
  .pl3-cal, .pl3-ed, .pl3-vault { border: 1px solid var(--border); border-radius: var(--r-l); box-shadow: var(--shadow-1); }
  .pl3-cal { max-height: 70vh; }
  .pl3-ed { min-height: 780px; }
  .pl3-vault { height: 820px; }
}
.pl3-ro .pl3-admin-only { display: none !important; }
.pl3-ed-empty { padding: 16px; }

/* ---------- Кол 1 · шапка ---------- */
.pl3-cal-head { flex: none; display: flex; flex-direction: column; gap: 10px; padding: 12px 14px 10px; border-bottom: 1px solid var(--border); }
.pl3-cal-title { display: flex; align-items: center; justify-content: space-between; height: 30px; }
.pl3-cal-title h1 { margin: 0; }   /* размер/начертание — единое правило H1 в polish.css */
.pl3-cal-tools { display: flex; gap: 2px; }
/* CK-SIDEBAR-FLAT: подзаголовок раздела и подписанная кнопка настроек публикаций */
.pl3-cal-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: -4px; }
.pl3-cal-sub { margin: 0; font-size: 12px; line-height: 1.4; color: var(--text-3); }
.pl3-cal-settings {
  display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 6px; margin-left: -6px;
  border: 0; border-radius: var(--r-s); background: none; color: var(--text-2); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.pl3-cal-settings:hover { background: var(--surface-2); color: var(--accent-strong); }
.pl3-cal-settings:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.pl3-cal-tools .icon-btn { width: 30px; height: 30px; color: var(--text-2); }
.pl3-cal-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pl3-create { position: relative; flex: none; }
.pl3-create-btn { height: 36px; padding: 0 11px 0 10px; gap: 6px; font-size: 14px; }
.pl3-search { flex: 1; min-width: 0; height: 36px; padding: 0 4px 0 10px; }
.pl3-search-inp { flex: 1; min-width: 0; height: 100%; font-size: 13.5px; }
.pl3-search-inp::-webkit-search-cancel-button { display: none; }
.pl3-search-x { width: 26px; height: 26px; flex: none; }
.pl3-pills { display: flex; gap: 5px; flex-wrap: nowrap; min-width: 0; }
.pl3-pill {
  flex: 1 1 auto; justify-content: center; min-width: 0; white-space: nowrap;
  height: 28px; display: inline-flex; align-items: center; gap: 4px; padding: 0 7px; border: 1px solid var(--border);
  border-radius: var(--r-full); background: var(--surface); color: var(--text-2); font: inherit; font-size: 12px; font-weight: 600;
  cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.pl3-pill:hover { border-color: var(--border-strong); color: var(--text); }
.pl3-pill.on { background: var(--accent-weak); border-color: var(--accent); color: var(--accent-strong); }
.pl3-view-row { justify-content: space-between; }
.pl3-modes .segmented-item { padding: 4px 10px; font-size: 12.5px; }
.pl3-nav { display: flex; align-items: center; gap: 2px; min-width: 0; }
.pl3-nav .icon-btn { width: 28px; height: 28px; }
.pl3-period {
  border: 0; background: none; padding: 4px 6px; border-radius: 6px; font: inherit; font-size: 13px; font-weight: 600;
  color: var(--text); white-space: nowrap; cursor: pointer;
}
.pl3-period:hover { background: var(--surface-2); color: var(--accent-strong); }
.db-pop.pl3-create-pop { top: 42px; left: 0; width: 290px; }
.pl3-day-head .db-pop.pl3-create-pop { top: 30px; left: auto; right: 0; }
.pl3-create-item { justify-content: flex-start; gap: 10px; padding: 8px; }
.pl3-create-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl3-create-txt b { font-weight: 600; }
.pl3-pop-cap { padding: 4px 9px 6px; font-weight: 600; }

/* ---------- Кол 1 · тело ---------- */
.pl3-cal-body { position: relative; flex: 1; min-height: 0; overflow-y: auto; padding: 6px 10px 16px; }
.pl3-cal-foot { flex: none; display: flex; align-items: center; gap: 6px; padding: 8px 14px; border-top: 1px solid var(--border); }
.pl3-day { margin-top: 4px; }
.pl3-day-head {
  position: sticky; top: -6px; z-index: 3; display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 2px 0 4px;
  background: var(--surface); font-size: 12.5px; font-weight: 700; color: var(--text-2);
}
.pl3-day-head.is-today .pl3-day-name { color: var(--accent-strong); }
.pl3-day.is-past .pl3-day-name, .pl3-lane.is-past .pl3-day-name { color: var(--text-3); }
.pl3-today { font-size: 10.5px; font-weight: 700; color: var(--on-accent); background: var(--accent-strong); border-radius: var(--r-full); padding: 1px 7px; }
.pl3-day-add { width: 24px; height: 24px; opacity: 0; transition: opacity .15s; }
.pl3-day-head:hover .pl3-day-add, .pl3-day-add:focus-visible, .pl3-day-add[aria-expanded="true"] { opacity: 1; }
.pl3-undated { color: var(--text-3); }
.pl3-found, .pl3-zero { padding: 8px 6px; }
.pl3-empty-day {
  width: 100%; display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px; margin-bottom: 6px;
  border: 1px dashed var(--border-strong); border-radius: 10px; background: none; color: var(--text-3); font: inherit; font-size: 12.5px; cursor: pointer;
}
.pl3-empty-day:hover { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-weak); }
.pl3-more { width: 100%; justify-content: center; margin-top: 6px; color: var(--text-2); }

/* Карточка материала */
.pl3-card {
  position: relative; display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; margin: 0 0 6px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--surface); cursor: pointer;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.pl3-card:hover { border-color: var(--border-strong); box-shadow: 0 1px 2px rgba(15, 23, 42, .06); }
.pl3-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.pl3-card.on { border-color: var(--accent); background: var(--accent-weak); box-shadow: inset 3px 0 0 var(--accent); }
.pl3-card.is-past { background: var(--surface-2); }
.pl3-card.is-past .pl3-card-title { color: var(--text-2); font-weight: 500; }
.pl3-card.is-past.on { background: var(--accent-weak); }
.pl3-card.is-await { border-style: dashed; border-color: color-mix(in srgb, var(--warn) 55%, var(--border)); }
.pl3-card.dnd-ghost { opacity: .45; }
.pl3-kind-ico { width: 26px; height: 26px; flex: none; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; }
.pl3-kind-ico.pl3-k-post { background: var(--accent-weak); color: var(--accent-strong); }
.pl3-kind-ico.pl3-k-broadcast { background: var(--info-weak); color: var(--info); }
.pl3-kind-ico.pl3-k-reminder { background: var(--danger-weak); color: var(--danger); }
.pl3-card.is-past .pl3-kind-ico { background: var(--surface); color: var(--text-3); }
.pl3-card.on .pl3-kind-ico.pl3-k-post { background: var(--surface); }
.pl3-card-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pl3-card-meta { display: flex; align-items: center; gap: 4px; min-width: 0; font-size: 11.5px; color: var(--text-3); }
.pl3-time { margin-right: 2px; font-weight: 700; color: var(--text-2); font-variant-numeric: tabular-nums; }
.pl3-card-title {
  font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--text);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pl3-card-foot { display: flex; align-items: center; gap: 6px; margin-top: 1px; }
.pl3-card.is-compact { padding: 7px 8px; gap: 8px; margin-bottom: 4px; }
.pl3-card.is-compact .pl3-kind-ico { width: 22px; height: 22px; border-radius: 6px; }
.pl3-card.is-compact .pl3-card-title { -webkit-line-clamp: 1; font-size: 13px; }
.pl3-aud, .pl3-rec { display: inline-flex; align-items: center; gap: 2px; color: var(--text-3); }
.pl3-ai { display: inline-flex; color: var(--warn); }

/* Бейджи площадок */
.pl3-ch {
  display: inline-flex; align-items: center; height: 16px; padding: 0 5px; border-radius: 4px; border: 1px solid;
  font-size: 10px; font-weight: 800; letter-spacing: .03em; line-height: 1; flex: none;
}
.pl3-ch-max { color: var(--ch-max); border-color: color-mix(in srgb, var(--ch-max) 35%, transparent); background: var(--ch-max-weak); }
.pl3-ch-telegram { color: var(--ch-tg); border-color: color-mix(in srgb, var(--ch-tg) 35%, transparent); background: var(--ch-tg-weak); }
.pl3-ch-vk { color: var(--ch-vk); border-color: color-mix(in srgb, var(--ch-vk) 35%, transparent); background: var(--ch-vk-weak); }
.pl3-card.is-past .pl3-ch { filter: grayscale(1); opacity: .7; }

/* Статусы: прошло — серое «✓ Опубликовано», черновик — янтарь, план — зелень, дедлайн — красный флаг */
.pl3-st {
  display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px; border-radius: var(--r-full);
  font-size: 11.5px; font-weight: 600; white-space: nowrap; flex: none;
}
.pl3-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: currentColor; }
.pl3-st-done { background: var(--surface-2); color: var(--text-3); box-shadow: inset 0 0 0 1px var(--border); }
.pl3-st-draft { background: var(--warn-weak); color: var(--warn); }
.pl3-st-plan { background: var(--ok-weak); color: var(--accent-strong); }
.pl3-st-await { background: var(--warn-weak); color: var(--warn); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 45%, transparent); }
.pl3-st-fail { background: var(--danger-weak); color: var(--danger); }
.pl3-st-deadline { background: var(--danger-weak); color: var(--danger); }
.pl3-st-new { background: var(--info-weak); color: var(--info); }

/* Неделя: дорожки дней; колонка шире 620px — сетка 7 столбцов */
.pl3-week { display: flex; flex-direction: column; gap: 6px; padding-top: 4px; }
.pl3-lane { padding: 2px 6px 6px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); transition: background-color .15s; }
.pl3-lane .pl3-day-head { position: static; height: 28px; background: none; }
.pl3-lane.is-today { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring); }
.pl3-lane.is-past { background: var(--surface-2); }
.pl3-slot-empty {
  width: 100%; height: 28px; border: 1px dashed var(--border); border-radius: 8px; background: none;
  color: var(--text-3); font: inherit; font-size: 12px; cursor: pointer;
}
.pl3-slot-empty:hover:not(:disabled) { border-color: var(--accent); color: var(--accent-strong); }
.pl3-slot-empty:disabled { border-color: transparent; text-align: left; padding-left: 4px; cursor: default; }
@container (min-width: 620px) {
  .pl3-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .pl3-lane { min-height: 320px; }
}

/* Месяц: компактные ячейки со счётчиками */
.pl3-month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; padding-top: 6px; }
.pl3-dow { text-align: center; font-size: 11px; font-weight: 700; color: var(--text-3); padding: 2px 0 4px; }
.pl3-mcell {
  min-height: 46px; display: flex; flex-direction: column; align-items: stretch; gap: 2px; padding: 4px 3px;
  border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text);
  font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.pl3-mcell:hover { border-color: var(--accent); }
.pl3-mcell.is-out { opacity: .45; }
.pl3-mcell.is-past { background: var(--surface-2); }
.pl3-mcell.on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-ring); }
.pl3-mnum {
  align-self: flex-start; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700;
}
.pl3-mcell.is-today .pl3-mnum { background: var(--accent-strong); color: var(--on-accent); }
.pl3-mbadges { display: flex; flex-wrap: wrap; gap: 2px; }
.pl3-mb { display: inline-flex; align-items: center; gap: 1px; height: 15px; padding: 0 3px; border-radius: 4px; font-size: 10px; font-weight: 700; }
.pl3-mb.pl3-k-post { background: var(--accent-weak); color: var(--accent-strong); }
.pl3-mb.pl3-k-broadcast { background: var(--info-weak); color: var(--info); }
.pl3-mb.pl3-k-reminder { background: var(--danger-weak); color: var(--danger); }
/* Материалы выбранного дня — своя плавная прокрутка под сеткой, заголовок дня залипает */
.pl3-dayopen {
  margin-top: 10px; padding: 0 2px 4px; border-top: 1px solid var(--border); animation: tk-pane-in .18s ease;
  overflow-y: auto; max-height: calc(100vh - 460px); min-height: 120px; scroll-behavior: smooth; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--text-3) 45%, transparent) transparent;
}
.pl3-dayopen::-webkit-scrollbar { width: 5px; }
.pl3-dayopen::-webkit-scrollbar-thumb { border-radius: 4px; background: color-mix(in srgb, var(--text-3) 40%, transparent); }
.pl3-dayopen .pl3-day-head { position: sticky; top: 0; z-index: 2; background: var(--surface); }
#app.topbar-collapsed .pl3-dayopen { max-height: calc(100vh - 404px); }
.pl3-month-hint { display: flex; gap: 6px; align-items: flex-start; margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: var(--surface-2); line-height: 1.4; }
.pl3-month-hint .ico { flex: none; margin-top: 1px; }

/* ---------- Кол 2 · редактор ---------- */
.pl3-ed-head {
  flex: none; box-sizing: border-box; height: 54px; display: flex; align-items: center; gap: 8px;
  padding: 0 16px; border-bottom: 1px solid var(--border);
}
.pl3-head-pick { position: relative; display: flex; align-items: center; gap: 6px; min-width: 0; }
.pl3-type-btn { flex: none; }
.pl3-type-btn.pl3-k-post .ico:first-child { color: var(--accent-strong); }
.pl3-type-btn.pl3-k-broadcast .ico:first-child { color: var(--info); }
.pl3-type-btn.pl3-k-reminder .ico:first-child { color: var(--danger); }
.pl3-target-btn { min-width: 0; max-width: 360px; }
.pl3-target-btn b { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.pl3-target-btn.is-warn { border-color: var(--warn); color: var(--warn); }
.pl3-aud-n { display: inline-flex; align-items: center; gap: 3px; color: var(--text-3); font-size: 12px; }
.db-format-btn:disabled { opacity: .6; cursor: default; }
.pl3-dayplate {
  flex: none; display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 12px; border-radius: 8px;
  background: var(--surface-2); color: var(--text); font-size: 13px; font-weight: 600; white-space: nowrap;
}
.pl3-dayplate .ico { color: var(--accent-strong); }
.pl3-dayplate.is-empty { color: var(--text-3); }
.pl3-dayplate.is-empty .ico { color: var(--text-3); }
@container (max-width: 560px) { .pl3-dayplate span { max-width: 130px; overflow: hidden; text-overflow: ellipsis; } .pl3-target-btn .muted { display: none; } }

.pl3-ed-body { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding: 12px 16px 12px; }
.pl3-title-row { flex: none; display: flex; align-items: center; gap: 10px; }
.pl3-title {
  flex: 1; min-width: 0; height: 40px; padding: 0 2px; border: 0; border-bottom: 1px solid transparent; background: none;
  font: inherit; font-size: 19px; font-weight: 700; letter-spacing: -.01em; color: var(--text); transition: border-color .15s;
}
.pl3-title:hover { border-bottom-color: var(--border); }
.pl3-title:focus { outline: none; border-bottom-color: var(--accent); }
.pl3-title::placeholder { color: var(--text-3); font-weight: 600; }
.pl3-title-st { flex: none; display: flex; align-items: center; gap: 8px; }
.pl3-unsaved { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: var(--warn); }
.pl3-notes { flex: none; display: flex; flex-direction: column; gap: 6px; }
.pl3-notes:empty { display: none; }
.pl3-note { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; background: var(--surface-2); font-size: 12.5px; color: var(--text-2); line-height: 1.4; }
.pl3-note .ico { flex: none; margin-top: 1px; }
.pl3-note.is-warn { background: var(--warn-weak); color: var(--warn); }

/* Единое полотно: textarea поверх слоя подсветки (заморожённое — «лёд»), подвал со скрепкой и счётчиком */
.pl3-canvas {
  position: relative; flex: 1 1 auto; min-height: 250px; display: flex; flex-direction: column;
  border: 1px solid var(--border-strong); border-radius: 10px; background: var(--surface); transition: border-color .15s, box-shadow .15s;
}
.pl3-canvas:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring); }
.pl3-canvas.is-flash { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-ring); }
.pl3-canvas-in { position: relative; flex: 1; min-height: 190px; }
.pl3-hl, .pl3-text {
  position: absolute; inset: 0; margin: 0; padding: 12px 14px; box-sizing: border-box;
  font: inherit; font-size: 14.5px; line-height: 1.6; letter-spacing: normal; tab-size: 4;
  white-space: pre-wrap; overflow-wrap: break-word; word-break: normal;
  overflow-y: auto; scrollbar-gutter: stable; scrollbar-width: thin;
}
.pl3-hl { color: transparent; pointer-events: none; overflow-y: hidden; }
.pl3-text { border: 0; background: transparent; color: var(--text); resize: none; outline: none; caret-color: var(--text); }
.pl3-text::placeholder { color: var(--text-3); }
.pl3-text[readonly] { color: var(--text-2); }
mark.pl3-frz {
  color: transparent; border-radius: 3px; background: color-mix(in srgb, var(--frz) 14%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--frz) 40%, transparent);
}
.pl3-pending { display: none; }
.pl3-canvas.is-busy .pl3-pending {
  position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 70%, transparent); font-size: 13px; font-weight: 600; color: var(--accent-strong);
}
.pl3-canvas-foot {
  position: relative; flex: none; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 46px;
  padding: 6px 10px 7px 8px; border-top: 1px solid var(--border);
}
.pl3-clip {
  width: 32px; height: 32px; flex: none; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--surface);
  color: var(--text-2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.pl3-clip:hover, .pl3-clip[aria-expanded="true"] { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-weak); }
.pl3-attach { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.pl3-att {
  display: inline-flex; align-items: center; gap: 6px; max-width: 240px; height: 28px; padding: 0 3px 0 7px;
  border: 1px solid var(--border); border-radius: var(--r-full); background: var(--surface-2); font-size: 12px; color: var(--text-2);
}
.pl3-att .ico { flex: none; color: var(--accent-strong); }
.pl3-att-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl3-att-thumb { width: 20px; height: 20px; flex: none; border-radius: 50%; object-fit: cover; }
.pl3-count { font-size: 12px; font-weight: 600; color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pl3-count.is-over { color: var(--danger); }
.tk-pop.pl3-pop-clip { top: auto; bottom: calc(100% + 6px); left: 0; width: 310px; }

.pl3-frozen { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: -2px; }
.pl3-frozen-cap { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: var(--frz); }
.qb-chip.pl3-frz-chip { border-color: color-mix(in srgb, var(--frz) 35%, transparent); }
.pl3-composer { flex: none; }

/* Подвал публикации: дата · время · периодичность / действия */
.pl3-pub { flex: none; display: flex; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--border); background: var(--surface); }
.pl3-pub-row { position: relative; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.pl3-dt { height: 34px; padding: 0 8px 0 10px; gap: 6px; flex: none; }
.pl3-dt .ico { color: var(--accent-strong); flex: none; }
.pl3-dt-inp { height: 100%; font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; color-scheme: light dark; }
.pl3-rec-box { position: relative; }
.pl3-rec-btn { height: 34px; }
.pl3-rec-btn .ico:first-child { color: var(--accent-strong); }
.pl3-rec-btn.is-on { border-color: var(--accent); background: var(--accent-weak); }
.pl3-pub-row:first-child { flex-wrap: nowrap; }
.pl3-pub-hint { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl3-pub-acts { flex-wrap: nowrap; gap: 6px; }
.pl3-pub-acts .btn { height: 34px; flex: none; }
.pl3-pub-acts .btn-ghost.btn-sm { padding: 6px 9px; }
.pl3-pub-acts .btn.pl3-ico-btn { width: 34px; padding: 0; color: var(--text-2); }
.pl3-pub-acts .btn.pl3-ico-btn.pl3-danger { color: var(--danger); }
.btn.pl3-revert { color: var(--warn); }
.btn.pl3-revert:hover { background: var(--warn-weak); }
.btn.pl3-cta { padding: 6px 14px; }
.pl3-pub-acts.is-dirty .pl3-lbl-tail { display: none; }
@container (min-width: 700px) { .pl3-pub-acts.is-dirty .pl3-lbl-tail { display: inline; } }
.btn.pl3-danger { color: var(--danger); }
.btn.pl3-danger:hover { background: var(--danger-weak); }
/* Узкий редактор: подписи второстепенных кнопок уступают место иконкам с подсказкой; главная кнопка справа — всегда с подписью */
@container (max-width: 620px) { #pl3Revert .pl3-btn-lbl { display: none; } #pl3Revert { width: 34px; padding: 0; } }
@container (max-width: 560px) { .pl3-pub-hint { display: none; } #pl3Draft .pl3-btn-lbl { display: none; } #pl3Draft { width: 34px; padding: 0; } }

/* Поповеры редактора (db-pop — тот же, что «Формат:» в Обращениях) */
.db-pop.pl3-pop { z-index: 45; }
.db-pop.pl3-pop-wide { width: 340px; }
.db-pop.pl3-pop-pad { padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.db-pop.pl3-pop-rec { left: 0; min-width: 260px; }
.pl3-pop-lbl { display: flex; flex-wrap: wrap; align-items: center; gap: 1px 8px; min-width: 0; text-align: left; }
.pl3-pop-lbl > .small { flex-basis: 100%; font-weight: 400; }
.pl3-pop-lbl > .ico + span + .small { padding-left: 22px; }
.pl3-chan { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 8px; cursor: pointer; }
.pl3-chan:hover { background: var(--surface-2); }
.pl3-chan.is-off { opacity: .55; cursor: default; }
.pl3-chan-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl3-chan-txt b { font-weight: 600; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl3-cb { width: 16px; height: 16px; flex: none; margin: 0; accent-color: var(--accent-strong); cursor: pointer; }
.pl3-pop .pl-chip { font-size: 12.5px; padding: 3px 10px; }
.pl3-pop .pl-chip.on { background: var(--accent-weak); color: var(--accent-strong); border-color: var(--accent); }
.df-bar.pl3-bar { z-index: 1001; }

/* ---------- Кол 3 · ваульт ---------- */
.pl3-vault-head { box-sizing: border-box; height: 54px; }
.pl3-vault-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.pl3-vpane { display: none; flex: 1; min-height: 0; flex-direction: column; }
.pl3-vpane.on { display: flex; animation: tk-pane-in .18s ease; }

/* 📱 Превью: фрейм смартфона Студии витрины */
/* Тулбар превью — строго одна строка ~36px: [Лента | Бот] ……… [MAX] [TG] [VK] */
.studio-toolbar.pl3-pv-bar { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; white-space: nowrap; min-height: 0; height: 44px; padding: 4px 12px; }
.pl3-pv-bar .segmented { flex: none; }
.pl3-pv-bar .segmented-item { padding: 3px 10px; font-size: 12px; height: 26px; }
.pl3-pv-chs { display: flex; flex: none; gap: 4px; }
.pl3-ch-btn { height: 22px; padding: 0 7px; font-size: 10.5px; cursor: pointer; opacity: .55; }
.pl3-ch-btn.on { opacity: 1; box-shadow: 0 0 0 2px var(--accent-ring); }
@container (max-width: 360px) { .pl3-pv-bar .segmented-item .seg-ico + span { display: none; } .pl3-pv-bar .segmented-item { padding: 3px 8px; } }
.pl3-pv-viewport { flex: 1; min-height: 0; align-items: stretch; padding: 14px 12px 16px; background-color: var(--stage-bg); }
.studio-device.is-mobile.pl3-phone { width: min(340px, calc(100% - 22px)); height: calc(100% - 20px); max-height: 760px; min-height: 0; margin: 10px auto; }
.pl3-pv-chat { gap: 8px; }
.studio-msg.pl3-pv-msg { width: 100%; max-width: 100%; min-width: 0; padding: 0 0 22px; overflow: hidden; }
.pl3-phone.is-bot .studio-msg.pl3-pv-msg { width: 94%; }
.pl3-pv-cover { display: block; width: 100%; aspect-ratio: 360 / 190; object-fit: cover; }
.pl3-pv-msg .studio-msg-body { padding: 10px 12px 0; overflow-wrap: anywhere; }
.pl3-md p { margin: 0 0 8px; }
.pl3-md p:last-child { margin-bottom: 0; }
.pl3-md ul, .pl3-md ol { margin: 0 0 8px; padding-left: 20px; }
.pl3-md li { margin: 2px 0; }
.pl3-md a, .pl3-tag { color: var(--info); }
.pl3-tag { font-weight: 500; }
.pl3-md-h { font-weight: 700; }
.pl3-pv-time { display: inline-flex; align-items: center; gap: 8px; }
.pl3-pv-views { display: inline-flex; align-items: center; gap: 3px; }
.pl3-pv-note { padding: 6px 12px 0; }
.pl3-pv-file, .pl3-pv-form {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin: 8px 12px 0; padding: 8px 10px;
  border-radius: 10px; background: var(--surface-2);
}
.pl3-pv-file-ico {
  width: 34px; height: 34px; flex: none; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent-strong); color: var(--on-accent);
}
.pl3-pv-form .pl3-pv-file-ico { background: var(--info); }
.pl3-pv-file-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 12.5px; }
.pl3-pv-file-txt b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl3-pv-link { flex-basis: 100%; padding-left: 44px; font-size: 11.5px; color: var(--info); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl3-pv-keys .studio-key { min-height: 36px; font-size: 13px; cursor: default; }
.pl3-ch-ava.studio-bot-ava { background: var(--info); }
.pl3-pv-bottom { flex: none; background: var(--surface); border-top: 1px solid var(--border); }
.pl3-pv-count { display: flex; flex-direction: column; gap: 5px; padding: 8px 18px 0; }
.pl3-pv-meter { display: block; height: 4px; border-radius: 2px; background: var(--surface-2); overflow: hidden; }
.pl3-pv-meter i { display: block; height: 100%; border-radius: 2px; background: var(--accent); transition: width .2s; }
.pl3-pv-count.is-over .pl3-pv-meter i { background: var(--danger); }
.pl3-pv-count-txt { font-size: 11.5px; font-weight: 600; color: var(--text-2); text-align: center; font-variant-numeric: tabular-nums; }
.pl3-pv-count.is-over .pl3-pv-count-txt { color: var(--danger); }

/* 📖 База знаний · 📚 Все материалы */
.pl3-kb-top { flex: none; display: flex; flex-direction: column; gap: 8px; padding: 12px 14px 10px; border-bottom: 1px solid var(--border); }
.pl3-kb-top .omni-field { height: 36px; }
.pl3-kb-cap { line-height: 1.4; }
.pl3-kb-list, .pl3-lib-list {
  flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 10px 14px 16px;
  scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--text-3) 45%, transparent) transparent;
}
.pl3-kb-doc { font: inherit; text-align: left; color: inherit; cursor: pointer; transition: border-color .15s; }
.pl3-kb-doc:hover { border-color: var(--accent); }
.pl3-kb-doc .omni-card-head .ico { color: var(--accent-strong); }
.pl3-kb-bar { flex: none; display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 12px; border-bottom: 1px solid var(--border); }
.pl3-kb-bar .btn { flex: none; }
.pl3-kb-doc-title { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.pl3-kb-doc-title > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl3-kb-read.src-body { flex: 1; min-height: 0; padding: 12px 16px 24px; font-size: 13.5px; }
.pl3-kb-read p { margin: 0 0 8px; }
.pl3-kb-read ::selection { background: color-mix(in srgb, var(--accent) 28%, transparent); }
.pl3-kb-h { margin: 14px 0 6px; font-size: 14px; color: var(--text); }
.pl3-kb-lbl { margin-right: 6px; font-size: 11px; font-weight: 700; color: var(--text-3); }
.pl3-kb-note { margin: -4px 0 8px; }
.pl3-kb-read .src-card-head b { flex: none; white-space: nowrap; }
.pl3-lib-card { transition: border-color .15s, background-color .15s; }
.pl3-lib-card.on { border-color: var(--accent); background: var(--accent-weak); }
.pl3-lib-card .pl3-kind-ico { width: 22px; height: 22px; border-radius: 6px; }
.pl3-lib-src { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: var(--text-2); }
.pl3-src-template .pl3-lib-src { color: var(--info); }
.pl3-src-draft .pl3-lib-src { color: var(--warn); }
.pl3-src-scheduled .pl3-lib-src { color: var(--accent-strong); }
.pl3-src-published .pl3-lib-src { color: var(--text-3); }
.pl3-lib-open { margin-left: auto; padding: 1px 7px; border-radius: var(--r-full); background: var(--accent-strong); color: var(--on-accent); font-size: 10.5px; font-weight: 700; }

/* ---------- ⚙️ Административная модалка ---------- */
.pl3-adm { display: flex; flex-direction: column; gap: 14px; min-height: 440px; }
.pl3-adm-tabs { flex: none; }
.pl3-adm-split { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 18px; }
.pl3-adm-list { display: flex; flex-direction: column; gap: 2px; padding-right: 14px; border-right: 1px solid var(--border); }
.pl3-adm-item { width: 100%; padding: 0 10px; border: 0; background: none; font: inherit; text-align: left; }
.pl3-adm-item .ico { color: var(--text-3); flex: none; }
.pl3-adm-item.on .ico { color: var(--accent-strong); }
.pl3-adm-add { justify-content: flex-start; margin-top: 6px; }
.pl3-range-row { display: flex; align-items: center; gap: 12px; }
.pl3-range { flex: 1; accent-color: var(--accent-strong); }
.pl3-range-val { min-width: 180px; font-size: 12.5px; font-weight: 600; color: var(--text-2); }
.pl3-adm-cap { margin-top: 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-3); }
.pl3-tone-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pl3-tone-card { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); line-height: 1.4; }
.pl3-tone-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--border); }
.pl3-tone-sel { width: 240px; }
.pl3-tone-ch { display: inline-flex; align-items: center; gap: 8px; }
.pl3-adm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pl3-adm-chans { display: flex; flex-direction: column; gap: 2px; }
@media (max-width: 720px) { .pl3-adm-split, .pl3-tone-cards, .pl3-adm-grid { grid-template-columns: 1fr; } .pl3-adm-list { border-right: 0; padding-right: 0; } }

/* Тонкий скроллбар рабочих областей — как у Верстака обращений */
.pl3-cal-body, .pl3-ed-body, .pl3-text, .pl3-pv-chat, .pl3-kb-read {
  scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--text-3) 45%, transparent) transparent;
}
.pl3-cal-body::-webkit-scrollbar, .pl3-ed-body::-webkit-scrollbar, .pl3-text::-webkit-scrollbar, .pl3-hl::-webkit-scrollbar,
.pl3-kb-list::-webkit-scrollbar, .pl3-lib-list::-webkit-scrollbar { width: 5px; height: 5px; }
.pl3-cal-body::-webkit-scrollbar-thumb, .pl3-ed-body::-webkit-scrollbar-thumb, .pl3-text::-webkit-scrollbar-thumb,
.pl3-kb-list::-webkit-scrollbar-thumb, .pl3-lib-list::-webkit-scrollbar-thumb { border-radius: 4px; background: color-mix(in srgb, var(--text-3) 40%, transparent); }


/* ══════════ 14.10 refinements: форматирование, Focus Mode, свёртка шапки, периодичность, промпты ══════════ */

/* Мини-панель форматирования «золотой квартет» — тихая пилюля рядом со скрепкой */
.pl3-fmt {
  position: relative; flex: none; display: inline-flex; align-items: center; gap: 1px; height: 28px; padding: 2px;
  border: 1px solid var(--border); border-radius: 8px; background: var(--surface);
}
.pl3-md-btn {
  width: 24px; height: 22px; border: 0; border-radius: 6px; background: transparent; color: var(--text-3);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color .12s, color .12s;
}
.pl3-md-btn:hover, .pl3-md-btn[aria-expanded="true"] { background: var(--surface-2); color: var(--text); }
.pl3-md-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }
.pl3-md-sep { width: 1px; height: 14px; margin: 0 2px; background: var(--border); }
.tk-pop.pl3-pop-md { top: auto; bottom: calc(100% + 6px); left: auto; right: 0; width: 236px; }
.pl3-md-hint { margin-left: auto; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; color: var(--text-3); }
.pl3-canvas-foot { gap: 10px; }

/* Разворачивание полотна: [⤢] в углу; Focus Mode — то же полотно поверх экрана, крупный шрифт */
.pl3-hl, .pl3-text { padding-right: 46px; }
.pl3-expand {
  position: absolute; top: 8px; right: 12px; z-index: 2; height: 28px; min-width: 28px; padding: 0; gap: 6px;
  display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 7px;
  background: color-mix(in srgb, var(--surface) 88%, transparent); color: var(--text-3); font: inherit; font-size: 12.5px; font-weight: 600;
  cursor: pointer; opacity: .75; transition: opacity .15s, background-color .15s, color .15s, border-color .15s;
}
.pl3-expand:hover { opacity: 1; color: var(--text); border-color: var(--border); background: var(--surface); }
.pl3-expand-lbl { display: none; }
.pl3-canvas-ph { flex: 1 1 auto; min-height: 250px; border: 1px dashed var(--border); border-radius: 10px; background: var(--surface-2); }
.pl3-focus-back { position: fixed; inset: 0; z-index: 955; background: rgba(15, 23, 42, .42); backdrop-filter: blur(2px); animation: pl3-fade .16s ease; }
.pl3-canvas.is-focus {
  position: fixed; z-index: 960; top: 40px; bottom: 40px; left: 0; right: 0; margin: 0 auto; width: min(980px, calc(100vw - 80px));
  min-height: 0; border-color: var(--border-strong); box-shadow: var(--shadow-2); animation: pl3-pop .18s cubic-bezier(.2, .7, .2, 1);
}
.pl3-canvas.is-focus:focus-within { border-color: var(--accent); box-shadow: var(--shadow-2), 0 0 0 3px var(--accent-ring); }
.pl3-canvas.is-focus .pl3-hl, .pl3-canvas.is-focus .pl3-text { font-size: 17px; line-height: 1.75; padding: 32px 120px 32px 56px; }
.pl3-canvas.is-focus .pl3-expand { top: 14px; right: 16px; padding: 0 12px 0 10px; opacity: 1; border-color: var(--border); background: var(--surface); color: var(--text-2); }
.pl3-canvas.is-focus .pl3-expand-lbl { display: inline; }
.pl3-canvas.is-focus .pl3-canvas-foot { padding: 10px 16px 12px 14px; }
@keyframes pl3-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pl3-pop { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: none; } }

/* Поле запроса ИИ: [⤢] в углу капсулы — до 6–10 строк для развёрнутых инструкций */
.pl3-composer .dc-cap { position: relative; }
.pl3-composer .tk-revise-inp { padding-right: 30px; }
.icon-btn.pl3-cmd-exp { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; color: var(--text-3); opacity: .75; }
.icon-btn.pl3-cmd-exp:hover { opacity: 1; color: var(--text); }
.pl3-composer.is-expanded .tk-revise-inp { max-height: none; }

/* Свёртка шапки ЛК: шапка уезжает вверх, верстак получает всю высоту окна; язычок [▼] в рельсе сайдбара возвращает */
.topbar { transition: transform .22s ease; }
#app.topbar-collapsed .topbar { position: fixed; top: 0; left: 0; right: 0; transform: translateY(-100%); box-shadow: none; }
@media (min-width: 1024px) {
  body.tk-focus #app.topbar-collapsed .main { height: 100vh; height: 100dvh; }
  body.tk-focus #app.topbar-collapsed .sidebar { padding-top: 32px; }
}
.pl3-topbar-tab {
  position: fixed; top: 0; left: 0; z-index: 60; width: 56px; height: 22px; padding: 0; gap: 3px;
  display: inline-flex; align-items: center; justify-content: center; border: 0; border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border); border-radius: 0 0 8px 0; background: var(--surface-2); color: var(--text-3);
  font: inherit; font-size: 10.5px; font-weight: 600; cursor: pointer; transition: color .15s, background-color .15s;
}
.pl3-topbar-tab:hover { color: var(--accent-strong); background: var(--accent-weak); }
#pl3TopbarBtn.on { color: var(--accent-strong); }

/* Периодичность: радио-строки, под выбранной — дни недели кружками, будни/каждый день или число месяца */
.db-pop.pl3-pop-rec { left: 0; width: 304px; padding: 8px; display: flex; flex-direction: column; gap: 1px; }
.pl3-rec-opt {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; border-radius: 7px; background: none;
  font: inherit; font-size: 13.5px; color: var(--text); text-align: left; cursor: pointer;
}
.pl3-rec-opt:hover { background: var(--surface-2); }
.pl3-rec-opt.on { font-weight: 600; }
.pl3-radio { position: relative; flex: none; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--border-strong); }
.pl3-rec-opt.on .pl3-radio { border-color: var(--accent-strong); }
.pl3-rec-opt.on .pl3-radio::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: var(--accent-strong); }
.pl3-rec-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 2px 8px 8px 34px; animation: tk-pane-in .14s ease; }
.pl3-rec-days { gap: 5px; }
.pl3-rec-chip {
  height: 28px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--r-full); background: var(--surface);
  font: inherit; font-size: 12.5px; font-weight: 600; color: var(--text-2); cursor: pointer; transition: background-color .12s, border-color .12s, color .12s;
}
.pl3-rec-chip:hover { border-color: var(--border-strong); color: var(--text); }
.pl3-rec-chip.on { background: var(--accent-weak); border-color: var(--accent); color: var(--accent-strong); }
.pl3-rec-chip.pl3-wd { width: 30px; height: 30px; padding: 0; border-radius: 50%; font-size: 12px; }
.pl3-rec-chip.pl3-wd.is-weekend:not(.on) { color: var(--text-3); }
.pl3-mday-cap { width: 64px; height: 30px; padding: 0 8px; }
.pl3-mday { width: 100%; height: 100%; font-weight: 600; }

/* Превью: зачёркивание, цитата, моно */
.pl3-md blockquote { margin: 0 0 6px; padding: 2px 0 2px 10px; border-left: 3px solid var(--border-strong); color: var(--text-2); }
.pl3-md code { padding: 0 4px; border-radius: 4px; background: var(--surface-2); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .92em; }

/* ⚙️: системные промпты форматов и стилей голоса */
.inp.pl3-prompt { min-height: 112px; resize: vertical; background: var(--surface-2); font-size: 13px; line-height: 1.55; }
.inp.pl3-prompt:focus { background: var(--surface); }
.pl3-adm-acts { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pl3-adm-mark { flex: none; width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: var(--warn); }
.pl3-adm-own { flex: none; margin-left: auto; padding: 1px 6px; border-radius: var(--r-full); background: var(--info-weak); color: var(--info); font-size: 10.5px; font-weight: 700; }
.pl3-adm-item .pl3-adm-mark + .pl3-adm-own { margin-left: 4px; }
.pl3-adm-lead { margin: 0; line-height: 1.45; }
.pl3-adm-form .pl3-adm-grid textarea.inp { min-height: 40px; }


/* ══════════ 15.10 CK-CONTENT-TRACKS: контент-треки — пилюля, фокус трека на календаре, конструктор, сетка, этапы выпуска ══════════
   Цвет трека приходит переменной --trk (8 фирменных: #2563eb #059669 #d97706 #7c3aed #b45309 #e11d48 #0d9488 #475569);
   подложки — color-mix с поверхностью, поэтому тёмная тема не требует своей палитры. */
.pl3-tr-sw { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--trk, var(--accent)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--trk, var(--accent)) 22%, transparent); }
.pl3-tr-sw.is-big { width: 14px; height: 14px; margin-top: 3px; }

/* Кол 1 · 5-я пилюля [🌊 Треки ▾] / [● Имя ✕]; в узкой колонке подписи типов уступают место иконкам */
.pl3-cal-head { position: relative; }
.pl3-track-pill { position: relative; flex: 0 1 auto; display: inline-flex; min-width: 0; }
.pl3-pill.pl3-pill-track { flex: 0 1 auto; max-width: 168px; }
.pl3-pill-track .pl3-pill-lbl { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pl3-track-pill.on .pl3-pill-track {
  border-color: var(--trk); background: color-mix(in srgb, var(--trk) 12%, var(--surface)); color: var(--text);
  border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: 0; padding-right: 5px;
}
.pl3-pill-x {
  flex: none; width: 24px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
  border: 1px solid var(--trk); border-left: 0; border-radius: 0 var(--r-full) var(--r-full) 0; cursor: pointer;
  background: color-mix(in srgb, var(--trk) 12%, var(--surface)); color: var(--text-2);
}
.pl3-pill-x:hover { color: var(--danger); background: var(--danger-weak); }
@container (max-width: 420px) {
  .pl3-pill[data-v="post"] .pl3-pill-lbl, .pl3-pill[data-v="broadcast"] .pl3-pill-lbl, .pl3-pill[data-v="reminder"] .pl3-pill-lbl { display: none; }
  .pl3-pill[data-v] { flex: 0 0 auto; padding: 0 9px; }
  .pl3-pill.pl3-pill-track { flex: 1 1 auto; justify-content: flex-start; }
}
.db-pop.pl3-track-pop { top: 118px; right: 12px; left: auto; width: 300px; z-index: 46; }
.pl3-track-item { justify-content: flex-start; gap: 10px; padding: 8px 9px; }
.pl3-track-item .pl3-tr-sw { width: 12px; height: 12px; }
.pl3-track-item.on { background: color-mix(in srgb, var(--trk) 10%, var(--surface)); }
.pl3-tr-mini { flex: none; width: 34px; height: 4px; margin-left: auto; border-radius: 2px; background: var(--surface-2); overflow: hidden; }
.pl3-tr-mini i { display: block; height: 100%; background: var(--trk); }
.pl3-track-new { justify-content: flex-start; gap: 8px; font-weight: 600; color: var(--accent-strong); }

/* Карточка выпуска трека: цветной корешок + «● №3» в мете */
.pl3-card.has-track { box-shadow: inset 3px 0 0 var(--trk); }
.pl3-card.has-track.on { box-shadow: inset 3px 0 0 var(--trk), 0 0 0 1px var(--accent); }
.pl3-card-trk { display: inline-flex; align-items: center; gap: 4px; margin-left: 2px; font-weight: 700; color: var(--text-2); }
.pl3-card-trk .pl3-tr-sw { width: 7px; height: 7px; box-shadow: none; background: var(--trk); }
.pl3-st-topic { background: var(--surface-2); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--border-strong); }
.pl3-dot.is-hollow { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; }

/* Timeline Spotlight (15.10 polish): вместо заливки — узкая рельса 3px цвета трека по верхнему краю ячеек диапазона.
   Рельса идёт сквозь зазоры сетки (3px) непрерывно; начало и конец недели/трека — скруглённые торцы с отступом от угла.
   Дни выпусков — чёткие точки; обычные дни не приглушаются, приглушены только значки чужих событий. */
.pl3-spot-grid .pl3-mcell { position: relative; overflow: visible; }
.pl3-mcell.pl3-track-ribbon::before {
  content: ''; position: absolute; z-index: 1; top: -1px; left: -3px; right: -3px; height: 3px;
  background: var(--trk); pointer-events: none;
}
.pl3-mcell.pl3-track-ribbon.tr-start::before { left: 7px; border-top-left-radius: 2px; border-bottom-left-radius: 2px; }
.pl3-mcell.pl3-track-ribbon.tr-end::before { right: 7px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; }
.pl3-mcell.pl3-track-ribbon.is-past::before { background: color-mix(in srgb, var(--trk) 55%, var(--surface)); }
.pl3-mcell.has-issue { border-color: color-mix(in srgb, var(--trk) 45%, var(--border)); }
.is-spot .pl3-mbadges { opacity: .35; }
.is-spot .pl3-mcell:not(.has-issue) { cursor: default; }
.is-spot .pl3-mcell:not(.has-issue):hover { border-color: var(--border); }
.pl3-track-dots { display: flex; flex-wrap: wrap; gap: 3px; min-height: 8px; padding-left: 3px; line-height: 1; }
.pl3-track-dot { font-size: 16px; line-height: 1; color: var(--trk); }
.pl3-track-dots .pl3-track-dot {
  width: 8px; height: 8px; border-radius: 50%; font-size: 0; color: transparent; background: var(--trk);
}
.pl3-track-dots .pl3-track-dot.is-slot { background: transparent; box-shadow: inset 0 0 0 1.5px var(--trk); }
.pl3-track-dots .pl3-track-dot.is-topic { background: color-mix(in srgb, var(--trk) 30%, var(--surface)); box-shadow: inset 0 0 0 1.5px var(--trk); }
.pl3-track-dots .pl3-track-dot.is-verified { background: var(--ok); }
.pl3-track-dots .pl3-track-dot.is-published { background: color-mix(in srgb, var(--trk) 40%, var(--text-3)); }
.pl3-track-dot.is-slot { color: transparent; -webkit-text-stroke: 1.5px var(--trk); }
.pl3-track-dot.is-topic { color: color-mix(in srgb, var(--trk) 35%, var(--surface)); -webkit-text-stroke: 1px var(--trk); }
.pl3-track-dot.is-draft { color: var(--trk); }
.pl3-track-dot.is-verified { color: var(--ok); }
.pl3-track-dot.is-published { color: color-mix(in srgb, var(--trk) 45%, var(--text-3)); }

/* Список под календарём: только выпуски трека */
.pl3-track-list { margin-top: 10px; padding-top: 2px; border-top: 1px solid var(--border); }
.pl3-track-list-head { position: static; height: 34px; }
.pl3-track-list-head .pl3-day-name { color: var(--text); }
.pl3-card.pl3-tissue { align-items: center; gap: 9px; padding: 7px 9px; }
.pl3-card.pl3-tissue > .pl3-track-dot { width: 14px; text-align: center; font-size: 14px; }
.pl3-card.pl3-tissue.is-slot .pl3-card-title { color: var(--text-3); font-weight: 500; font-style: italic; }
.pl3-card.pl3-tissue.is-published { background: var(--surface-2); }
.pl3-tissue-fmt { padding: 0 6px; border-radius: 4px; background: var(--surface-2); color: var(--text-2); font-weight: 600; }

/* ---------- Кол 2 · конструктор трека и сетка выпусков ---------- */
.pl3-tr-head { gap: 10px; }
.pl3-tr-badge {
  flex: none; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px 0 8px; border-radius: 8px;
  background: color-mix(in srgb, var(--trk) 12%, var(--surface)); color: var(--trk); font-size: 12.5px; font-weight: 700;
}
.pl3-tr-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.pl3-tr-body { gap: 14px; padding-bottom: 18px; }
.pl3-tr-form { display: flex; flex-direction: column; gap: 10px; }
.pl3-tr-row { display: grid; grid-template-columns: 128px minmax(0, 1fr); align-items: start; gap: 12px; }
.pl3-tr-lbl { padding-top: 8px; font-size: 12.5px; font-weight: 700; color: var(--text-2); }
.pl3-tr-ctl { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
@container (max-width: 560px) { .pl3-tr-row { grid-template-columns: 1fr; gap: 4px; } .pl3-tr-lbl { padding-top: 0; } }
.pl3-tr-title-cap { height: 38px; padding: 0 10px; }
.pl3-tr-title-cap .pl3-tr-title { flex: 1; min-width: 0; height: 100%; border: 0; background: none; font: inherit; font-size: 15px; font-weight: 700; padding: 0; }
.pl3-tr-cnt { flex: none; font-variant-numeric: tabular-nums; }
.pl3-tr-colors { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 3px; }
.pl3-tr-swatch {
  width: 28px; height: 28px; padding: 0; border-radius: 50%; border: 2px solid var(--surface); cursor: pointer;
  background: var(--sw); box-shadow: 0 0 0 1px var(--border-strong); transition: transform .12s, box-shadow .12s;
}
.pl3-tr-swatch:hover { transform: scale(1.08); }
.pl3-tr-swatch.on { box-shadow: 0 0 0 2px var(--sw), 0 0 0 4px color-mix(in srgb, var(--sw) 25%, transparent); }
.pl3-tr-goal-inp { min-height: 64px; resize: vertical; line-height: 1.5; }
.pl3-tr-period, .pl3-tr-rhythm { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pl3-tr-period .pl3-dt .muted { font-weight: 700; }
.pl3-tr-days { display: flex; gap: 5px; }
.pl3-tr-wd:disabled, .pl3-tr-preset:disabled { cursor: default; opacity: .7; }
.pl3-tr-count {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 7px 10px; border-radius: 8px; font-size: 13px; font-weight: 600;
  background: color-mix(in srgb, var(--trk) 9%, var(--surface)); color: var(--text);
}
.pl3-tr-count .ico { color: var(--trk); }
.pl3-tr-count.is-zero { background: var(--surface-2); color: var(--text-3); }
.pl3-tr-warn { color: var(--warn); font-weight: 700; }
.pl3-tr-presets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pl3-tr-preset {
  display: flex; flex-direction: column; gap: 2px; padding: 8px 11px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--surface); font: inherit; text-align: left; color: var(--text); cursor: pointer; transition: border-color .15s, background-color .15s;
}
.pl3-tr-preset b { font-size: 13px; }
.pl3-tr-preset:hover:not(:disabled) { border-color: var(--border-strong); }
.pl3-tr-preset.on { border-color: var(--trk); background: color-mix(in srgb, var(--trk) 9%, var(--surface)); box-shadow: inset 0 0 0 1px var(--trk); }
.pl3-tr-form-acts { display: flex; justify-content: flex-end; }
.pl3-tr-sum { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
.pl3-tr-sum-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.pl3-tr-goal { font-size: 13.5px; line-height: 1.45; color: var(--text); }

/* Конвейер ServerLLM: разведка ➔ планировщик */
.pl3-tr-run { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px dashed color-mix(in srgb, var(--trk) 45%, var(--border)); border-radius: 12px; }
.btn.pl3-tr-go { align-self: flex-start; height: 38px; gap: 8px; padding: 0 16px; font-size: 14px; }
.pl3-tr-pipe { display: flex; align-items: stretch; gap: 8px; flex-wrap: wrap; }
.pl3-tr-step {
  flex: 1 1 200px; display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 9px;
  background: var(--surface-2); color: var(--text-2); font-size: 12.5px; line-height: 1.4; transition: background-color .2s;
}
.pl3-tr-step-txt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 2px; min-width: 0; }
.pl3-tr-step-txt .small { flex-basis: 100%; }
.pl3-tr-step-n {
  flex: none; width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--surface); box-shadow: inset 0 0 0 1px var(--border-strong); font-size: 11px; font-weight: 800;
}
.pl3-tr-step.is-active { background: color-mix(in srgb, var(--trk) 12%, var(--surface)); color: var(--text); }
.pl3-tr-step.is-done .pl3-tr-step-n { background: var(--ok); color: #fff; box-shadow: none; }
.pl3-tr-step .ai-spinner { flex: none; margin-top: 2px; }
.pl3-tr-arrow { align-self: center; color: var(--text-3); font-size: 15px; }
.pl3-tr-pipe.is-static .pl3-tr-step-n { background: var(--accent-strong); }

/* Evidence Digest */
.pl3-tr-sec-head {
  width: 100%; display: flex; align-items: center; gap: 8px; padding: 6px 2px; border: 0; background: none;
  font: inherit; font-size: 13.5px; color: var(--text); text-align: left; cursor: pointer;
}
.pl3-tr-sec-head .ico:first-child { color: var(--trk); }
.pl3-tr-sec-head.is-static { cursor: default; }
.pl3-tr-sec-head { flex-wrap: wrap; row-gap: 2px; }
.pl3-tr-sec-head > b { white-space: nowrap; }
/* Узкая Кол 2: статус выпуска — точкой с подсказкой, формат — компактно; таблица без горизонтальной прокрутки */
@container (max-width: 760px) {
  .pl3-mx-stc .pl3-st { padding: 0 6px; }
  .pl3-mx-stc .pl3-st > span { display: none; }
  .pl3-mx-fmt-chip { font-size: 11.5px; padding: 2px 5px; }
}
.pl3-tr-facts { margin: 4px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; counter-reset: fact; }
.pl3-tr-fact {
  display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 3px 10px; padding: 8px 10px; border-radius: 9px;
  background: var(--surface-2); font-size: 12.5px; line-height: 1.45;
}
.pl3-tr-fk { align-self: start; justify-self: start; padding: 1px 7px; border-radius: var(--r-full); font-size: 11px; font-weight: 700; background: var(--surface); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--border); }
.pl3-fk-figure { color: var(--info); }
.pl3-fk-requirement { color: var(--accent-strong); }
.pl3-fk-mistake { color: var(--danger); }
.pl3-tr-ft { color: var(--text); }
.pl3-tr-fsrc { grid-column: 2; font-size: 11.5px; font-weight: 600; color: var(--text-3); }

/* Сетка выпусков: таблица матрицы */
.pl3-matrix-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; }
.pl3-matrix-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pl3-matrix-table th {
  position: sticky; top: 0; z-index: 1; padding: 7px 6px; background: var(--surface-2); text-align: left;
  font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--text-3); white-space: nowrap;
}
.pl3-matrix-table td { padding: 5px 6px; border-top: 1px solid var(--border); vertical-align: middle; }
.pl3-mx-row { background: var(--surface); transition: background-color .15s; }
.pl3-mx-row.is-live { cursor: pointer; }
.pl3-mx-row.is-live:hover { background: color-mix(in srgb, var(--trk) 6%, var(--surface)); }
.pl3-mx-row.is-published, .pl3-mx-row.is-verified { background: var(--surface-2); }
.pl3-mx-row.is-flash { background: color-mix(in srgb, var(--trk) 16%, var(--surface)); }
.pl3-mx-row.dnd-over { outline: none; background: var(--surface); }
.pl3-mx-row.dnd-over-before { box-shadow: inset 0 2px 0 var(--trk); }
.pl3-mx-row.dnd-over-after { box-shadow: inset 0 -2px 0 var(--trk); }
.pl3-mx-gripc { width: 24px; padding-left: 4px !important; padding-right: 0 !important; }
.pl3-mx-grip {
  width: 20px; height: 26px; padding: 0; border: 0; border-radius: 5px; background: none; color: var(--text-3);
  display: inline-flex; align-items: center; justify-content: center; cursor: grab;
}
.pl3-mx-grip:hover, .pl3-mx-grip:focus-visible { background: var(--surface-2); color: var(--text); }
.pl3-mx-num { width: 26px; font-weight: 800; color: var(--trk) !important; text-align: center !important; font-variant-numeric: tabular-nums; }
.pl3-mx-date { white-space: nowrap; }
td.pl3-mx-date { display: table-cell; }
td.pl3-mx-date > span { display: block; line-height: 1.25; }
td.pl3-mx-date > span:first-child { font-weight: 600; }
.pl3-mx-fmt {
  max-width: 108px; height: 28px; padding: 0 4px; border: 1px solid transparent; border-radius: 6px; background: var(--surface-2);
  font: inherit; font-size: 12px; color: var(--text); cursor: pointer;
}
.pl3-mx-fmt:hover, .pl3-mx-fmt:focus { border-color: var(--border-strong); outline: none; }
.pl3-mx-fmt-chip { padding: 2px 7px; border-radius: 5px; background: var(--surface-2); font-weight: 600; white-space: nowrap; }
.pl3-mx-titlec { min-width: 140px; }
.pl3-mx-title {
  display: block; width: 100%; height: 40px; padding: 3px 6px; border: 1px solid transparent; border-radius: 6px; background: transparent;
  font: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.3; color: var(--text); resize: none; overflow: hidden; cursor: text;
}
.pl3-mx-title:hover:not([readonly]) { border-color: var(--border); background: var(--surface); }
.pl3-mx-title:focus { outline: none; border-color: var(--trk); background: var(--surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--trk) 18%, transparent); }
.pl3-mx-title[readonly] { cursor: pointer; color: var(--text-2); }
.pl3-mx-brc, .pl3-mx-stc { white-space: nowrap; }
.pl3-mx-go { width: 32px; }
.pl3-br {
  display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: var(--r-full);
  font-size: 11.5px; font-weight: 600; white-space: nowrap; max-width: 118px; overflow: hidden; text-overflow: ellipsis;
}
.pl3-br-callback { background: color-mix(in srgb, var(--trk) 12%, var(--surface)); color: var(--text); }
.pl3-br-teaser { background: var(--info-weak); color: var(--info); }
.pl3-br-proof { background: var(--surface-2); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--border); }
.pl3-tr-empty { display: flex; align-items: center; gap: 10px; padding: 18px 16px; border-radius: 10px; background: var(--surface-2); color: var(--text-3); font-size: 13px; line-height: 1.45; }

/* Подвал трека: прогресс пути выпусков */
.pl3-tr-foot .pl3-pub-acts { flex-wrap: nowrap; }
.pl3-tr-prog { display: flex; flex-direction: column; gap: 4px; min-width: 0; color: var(--text-2); }
.pl3-tr-bar { display: flex; width: 220px; max-width: 100%; height: 6px; border-radius: 3px; overflow: hidden; background: var(--surface-2); }
.pl3-tr-bar i { display: block; height: 100%; }
.pl3-tr-bar-published { background: color-mix(in srgb, var(--trk) 50%, var(--text-3)); }
.pl3-tr-bar-verified { background: var(--ok); }
.pl3-tr-bar-draft { background: var(--trk); }
.pl3-tr-bar-topic { background: color-mix(in srgb, var(--trk) 22%, var(--surface)); }

/* ---------- Кол 2 · карточка выпуска трека ---------- */
.pl3-tr-strip { flex: none; display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; margin-top: -4px; min-width: 0; }
@container (max-width: 640px) { .pl3-tr-stage:not(.is-cur) > span { display: none; } .pl3-tr-stage + .pl3-tr-stage::before { margin: 0 2px 0 -4px; } }
.pl3-tr-link {
  display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 9px 0 7px; border: 1px solid color-mix(in srgb, var(--trk) 35%, var(--border));
  border-radius: var(--r-full); background: color-mix(in srgb, var(--trk) 9%, var(--surface)); font: inherit; font-size: 12.5px; color: var(--text); cursor: pointer;
}
.pl3-tr-link:hover { border-color: var(--trk); }
.pl3-tr-link .pl3-tr-sw { width: 8px; height: 8px; }
.pl3-tr-steps { display: inline-flex; align-items: center; gap: 2px; }
.pl3-tr-stage { display: inline-flex; align-items: center; gap: 4px; padding: 2px 7px; border-radius: var(--r-full); font-size: 11.5px; font-weight: 600; color: var(--text-3); }
.pl3-tr-stage + .pl3-tr-stage::before { content: '›'; margin: 0 4px 0 -4px; color: var(--text-3); }
.pl3-tr-stage .pl3-dot { width: 6px; height: 6px; box-shadow: inset 0 0 0 1.5px currentColor; background: transparent; }
.pl3-tr-stage.is-done { color: var(--text-2); }
.pl3-tr-stage.is-done .pl3-dot { background: currentColor; }
.pl3-tr-stage.is-cur { color: var(--text); background: var(--surface-2); }
.pl3-tr-stage.is-cur.is-topic .pl3-dot { color: var(--text-2); }
.pl3-tr-stage.is-cur.is-draft { background: var(--warn-weak); color: var(--warn); }
.pl3-tr-stage.is-cur.is-verified { background: var(--ok-weak); color: var(--accent-strong); }
.pl3-tr-stage.is-cur .pl3-dot { background: currentColor; }
.btn.pl3-audit-btn { height: 28px; gap: 6px; color: var(--text-2); }
.pl3-audit { display: flex; flex-direction: column; gap: 6px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
.pl3-audit-head { display: flex; align-items: center; gap: 7px; font-size: 12.5px; }
.pl3-audit-head .icon-btn { width: 24px; height: 24px; }
.pl3-audit-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; max-height: 128px; overflow-y: auto; }
.pl3-audit-row { display: flex; gap: 8px; font-size: 12.5px; line-height: 1.4; }
.pl3-audit-t { display: flex; flex-direction: column; min-width: 0; }
.pl3-audit-v { flex: none; width: 18px; font-weight: 800; text-align: center; }
.pl3-audit-row.is-ok .pl3-audit-v { color: var(--ok); }
.pl3-audit-row.is-warn .pl3-audit-v { color: var(--warn); }

/* ⚪ «Тема / Заготовка»: тезисы автора вместо полотна */
.pl3-ed-body.is-topic { gap: 12px; }
.pl3-topic { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.pl3-topic-cap { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; font-size: 13.5px; }
.pl3-topic-cap .ico { align-self: center; color: var(--trk); }
.pl3-theses { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 220px; padding: 0; }
.pl3-theses-inp {
  flex: 1; min-height: 180px; width: 100%; padding: 12px 14px; border: 0; background: transparent; resize: none; outline: none;
  font: inherit; font-size: 14.5px; line-height: 1.65; color: var(--text);
}
.pl3-theses-inp::placeholder { color: var(--text-3); }
.pl3-theses-row { display: flex; align-items: center; gap: 8px; padding: 4px 8px 6px 14px; border-top: 1px solid var(--border); }
.pl3-kbrefs { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.pl3-kbrefs-cap { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--text-2); }
.pl3-kbrefs-cap .ico { color: var(--trk); }
.qb-chip.pl3-kbref { border-color: color-mix(in srgb, var(--trk) 35%, var(--border)); }
.pl3-kbref-add-box { position: relative; }
.db-pop.pl3-kbpick { top: 32px; left: 0; width: 380px; }
.pl3-kbpick-list { display: flex; flex-direction: column; max-height: 300px; overflow-y: auto; }
.pl3-kbpick-item:disabled { opacity: .5; }
.pl3-topic-alt { display: flex; align-items: center; gap: 2px; }
.pl3-linkbtn { border: 0; background: none; padding: 0; font: inherit; color: var(--info); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.pl3-topic.is-busy .pl3-topic-pending {
  position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 72%, transparent); font-size: 13px; font-weight: 600; color: var(--accent-strong);
}

/* Селектор модели (шапка трека, композер редактора) */
.pl3-model { position: relative; flex: none; display: inline-flex; }
.pl3-model-btn .ico:first-child { color: var(--accent-strong); }
.pl3-model.is-compact .pl3-model-cap { display: none; }
@container (max-width: 640px) { .pl3-model.is-compact .pl3-model-name { display: none; } }
.db-pop.pl3-model-pop { top: calc(100% + 6px); right: 0; left: auto; width: 320px; z-index: 47; }
.pl3-composer .db-pop.pl3-model-pop { top: auto; bottom: calc(100% + 6px); left: 0; right: auto; }
.pl3-model-item { align-items: flex-start; padding: 8px 9px; }
.pl3-model-where { padding: 0 6px; border-radius: 4px; background: var(--surface-2); font-size: 11px; font-weight: 700; color: var(--text-2); }
.pl3-model-note { padding: 6px 9px 4px; border-top: 1px solid var(--border); margin-top: 4px; }
.pl3-model-cards { display: flex; flex-direction: column; gap: 8px; }
.pl3-model-card {
  display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--surface); font: inherit; text-align: left; color: var(--text); cursor: pointer;
}
.pl3-model-card.on { border-color: var(--accent); background: var(--accent-weak); }
.pl3-model-card.on .pl3-radio { border-color: var(--accent-strong); }
.pl3-model-card.on .pl3-radio::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: var(--accent-strong); }
.pl3-model-card .pl3-radio { margin-top: 2px; }
.pl3-model-card-txt { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 8px; }
.pl3-model-card-txt .small { flex-basis: 100%; }


/* ══════════ 15.10 CK-ORGANIZER-POLISH-AND-GRAPH: навигация календаря, рельса Кол 1, выезжающий тулбар, голос, граф ══════════ */

/* «Лента | Неделя | Месяц» + «< Октябрь 2026 >»: эластичная строка — стрелки не сжимаются никогда, сжимается подпись
   периода (полная → краткая → многоточие), сегменты ужимают поля. Ничего не уходит за край колонки. */
.pl3-view-row { flex-wrap: nowrap; gap: 6px; }
.pl3-view-row .pl3-modes { flex: 0 1 auto; min-width: 0; }
.pl3-modes .segmented-item { padding: 4px 9px; }
.pl3-nav { flex: 1 1 auto; min-width: 88px; justify-content: flex-end; gap: 0; }
.pl3-nav > .icon-btn { flex: none; }
.pl3-period { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; padding: 4px 4px; }
.pl3-per-short { display: none; }
@container (max-width: 352px) {
  .pl3-modes .segmented-item { padding: 4px 7px; font-size: 12px; }
  .pl3-per-full { display: none; }
  .pl3-per-short { display: inline; }
}

/* Рельса свёрнутой Кол 1: стрелка «развернуть» + быстрые действия; ширина анимируется движком Workbench */
.pl3-cal.is-rail .wb-rail-btn.is-primary { background: var(--accent-strong); color: var(--on-accent); }
.pl3-cal.is-rail .wb-rail-btn.is-primary:hover { background: var(--accent); color: var(--on-accent); }
#pl3CalCollapse { color: var(--text-2); font-weight: 700; }

/* Меню «+ Создать ▾»: пункт контент-трека с волной */
.pl3-kind-ico.pl3-k-track { background: color-mix(in srgb, #0891b2 14%, var(--surface)); color: #0891b2; }
.db-pop.pl3-create-pop { width: 300px; }
.pl3-create-sep { height: 1px; margin: 4px 6px; background: var(--border); }

/* Выезжающая панель форматирования: [📎][B][I][→] → [🔗][•][❝][···][←] слева направо */
.pl3-fmt { gap: 1px; }
.pl3-fmt .pl3-md-btn.pl3-clip {
  width: 24px; height: 22px; border: 0; border-radius: 6px; background: transparent; color: var(--text-2);
}
.pl3-fmt .pl3-md-btn.pl3-clip:hover, .pl3-fmt .pl3-md-btn.pl3-clip[aria-expanded="true"] { background: var(--accent-weak); color: var(--accent-strong); }
.pl3-fmt-drawer {
  display: inline-flex; overflow: hidden; max-width: 0; opacity: 0;
  transition: max-width .28s cubic-bezier(.2, .7, .2, 1), opacity .2s ease;
}
.pl3-fmt-track {
  display: inline-flex; align-items: center; gap: 1px; padding-left: 1px;
  transform: translateX(-100%); transition: transform .28s cubic-bezier(.2, .7, .2, 1);
}
.pl3-fmt.is-open .pl3-fmt-drawer { max-width: 112px; opacity: 1; }
.pl3-fmt.is-open .pl3-fmt-track { transform: none; }
.pl3-fmt-toggle { color: var(--accent-strong); }
.pl3-fmt.is-open .pl3-fmt-toggle { background: var(--surface-2); }
@media (prefers-reduced-motion: reduce) { .pl3-fmt-drawer, .pl3-fmt-track { transition: none; } }

/* Голос: запись — красный пульс, распознавание — песочные часы; вставка расшифровки — мягкая подсветка поля */
.pl3-mic.mic-recording { color: var(--danger); background: var(--danger-weak); animation: mic-pulse 1.2s ease-in-out infinite; }
.pl3-mic.mic-busy { color: var(--accent-strong); background: var(--accent-weak); cursor: progress; }
.pl3-mic.mic-busy svg { animation: mic-pulse .8s ease-in-out infinite; }
.pl3-voice-in { transition: box-shadow .3s ease, background-color .3s ease; box-shadow: 0 0 0 3px var(--accent-ring); background-color: color-mix(in srgb, var(--accent-weak) 45%, var(--surface)); }

/* Сетка трека: мост из Графа знаний и неделя без связки (gaps) */
.pl3-br-src { margin-left: 4px; font-size: 10.5px; font-weight: 700; color: var(--text-3); }
.pl3-br.is-graph { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent); }
.pl3-br-gap {
  display: inline-flex; align-items: center; gap: 3px; margin-top: 4px; padding: 1px 7px; border-radius: var(--r-full);
  background: var(--warn-weak, #fef3c7); color: var(--warn, #b45309); font-size: 11px; font-weight: 700; white-space: nowrap;
}
.pl3-mx-brc .pl3-br-cell { display: flex; flex-direction: column; align-items: flex-start; }
.pl3-graph-src { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; border-radius: var(--r-full); font-size: 11.5px; font-weight: 600; }
.pl3-graph-src.is-graph { background: var(--accent-weak); color: var(--accent-strong); }
.pl3-graph-src.is-heuristic { background: var(--surface-2); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--border); }


/* ══════════ 16.10 CK-PLANNING-PROD-WIRE: «Планинг» — тулбар в одну полосу, выбор месяца, парящий скроллбар, просторные настройки ══════════ */

/* Выезжающая панель: все пять инструментов [🔗][•][❝][S̶][<>] в один ряд, без «···» и всплывающих окон */
.pl3-fmt.is-open .pl3-fmt-drawer { max-width: 132px; }   /* 5 × 24px + зазоры */

/* Поповер «Октябрь 2026»: [◀] 2026 [▶] · сетка 4×3 · «Сегодня» */
.pl3-period { cursor: pointer; }
.pl3-period[aria-expanded="true"] { background: var(--accent-weak); color: var(--accent-strong); }
.db-pop.pl3-month-pop { top: auto; left: auto; right: 12px; width: 264px; min-width: 0; padding: 10px; z-index: 46; }
.pl3-mp-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 8px; }
.pl3-mp-head .icon-btn { width: 30px; height: 30px; }
.pl3-mp-year { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pl3-mp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.pl3-mp-m {
  height: 34px; border: 0; border-radius: 8px; background: transparent; color: var(--text);
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: background-color .12s, color .12s;
}
.pl3-mp-m:hover { background: var(--surface-2); }
.pl3-mp-m.is-now { box-shadow: inset 0 0 0 1px var(--accent-ring); color: var(--accent-strong); }
.pl3-mp-m.on { background: var(--accent-strong); color: var(--on-accent); box-shadow: none; }
.pl3-mp-m:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.pl3-mp-foot { display: flex; justify-content: center; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); }

/* Парящий графитовый скроллбар 6px — весь Планинг, его поповеры и модалка настроек. Chromium игнорирует
   ::-webkit-scrollbar, если задан scrollbar-width/color, поэтому стандартные свойства — только там, где webkit-псевдо нет. */
@supports selector(::-webkit-scrollbar) {
  .pl3-wrap *, .pl3-adm-modal, .pl3-adm-modal * { scrollbar-width: auto; scrollbar-color: auto; }
  .pl3-wrap ::-webkit-scrollbar, .pl3-adm-modal ::-webkit-scrollbar { width: 6px; height: 6px; background: transparent; }
  .pl3-wrap ::-webkit-scrollbar-track, .pl3-adm-modal ::-webkit-scrollbar-track { background: transparent; }
  .pl3-wrap ::-webkit-scrollbar-thumb, .pl3-adm-modal ::-webkit-scrollbar-thumb { border-radius: 6px; background: rgba(100, 116, 139, .45); }
  .pl3-wrap ::-webkit-scrollbar-thumb:hover, .pl3-adm-modal ::-webkit-scrollbar-thumb:hover { background: rgba(100, 116, 139, .7); }
  .pl3-wrap ::-webkit-scrollbar-button, .pl3-adm-modal ::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
  .pl3-wrap ::-webkit-scrollbar-corner, .pl3-adm-modal ::-webkit-scrollbar-corner { background: transparent; }
}
@supports not selector(::-webkit-scrollbar) {
  .pl3-wrap *, .pl3-adm-modal, .pl3-adm-modal * { scrollbar-width: thin; scrollbar-color: rgba(100, 116, 139, .45) transparent; }
}

/* ⚙️ Настройки Планинга: просторно — 880×560, список 230px, поля от 90px */
.pl3-adm-modal .modal:not(.modal-fullscreen) { max-width: 880px; }
.pl3-adm { min-height: 520px; container-type: inline-size; }
.pl3-adm-split { grid-template-columns: 230px minmax(0, 1fr); gap: 20px; }
.pl3-adm-modal textarea.inp, .pl3-adm-form .pl3-adm-grid textarea.inp { min-height: 90px; line-height: 1.5; padding: 9px 11px; }
.pl3-adm-modal input.inp, .pl3-adm-modal select.inp { min-height: 36px; }
/* Табы: подписи целиком, пока влезают; тесно — только иконки с подсказкой, без «Редакционный гол…» */
.pl3-adm-tabs { flex: none; justify-content: flex-start; }
.pl3-adm-tabs .tk-side-tab { flex: 0 0 auto; padding: 0 14px; }
.pl3-adm .pl3-adm-tabs .tk-side-tab:not(.is-icon) .tk-side-tab-label { display: inline; overflow: visible; text-overflow: clip; }
@container (max-width: 620px) {
  .pl3-adm-tabs .tk-side-tab { flex: 1 1 0; padding: 0; }
  .pl3-adm .pl3-adm-tabs .tk-side-tab:not(.is-icon) .tk-side-tab-label { display: none; }   /* весомее workbench.css :not(.on) */
}
@container (max-width: 560px) { .pl3-adm-split { grid-template-columns: 1fr; } .pl3-adm-list { border-right: 0; padding-right: 0; } }
