/* ИИ-операционка · оформление в одной палитре с dashboard/ */

:root{
  --bg:#02050d; --panel:#131826; --panel2:#1d212a; --panel3:#222735; --line:#272c37;
  --tx:#e6e9ef; --tx2:#9aa3b2; --tx3:#6b7383;
  --up:#3fb950; --down:#f85149; --flat:#8b949e; --warn:#d29922; --accent:#4c8dff;
  --accent2:#1f6feb;
  /* Цвета серий в графиках (каналы, категории, способы оплаты). В скриптах
     вкладок — только эти имена: тема витрины Виты (theme-vita.css) задаёт свою
     палитру, не трогая код вкладок. */
  --c-blue:#4c8dff; --c-green:#3fb950; --c-gold:#d29922; --c-purple:#a371f7;
  --c-red:#f85149; --c-teal:#2dd4bf; --c-pink:#f778ba; --c-gray:#8b949e;
  --c-gray2:#6b7383; --c-teal2:#2ea39a; --c-rose:#e879a6; --c-bronze:#b08a4c;
}
*{box-sizing:border-box}
/* Фон платформы — космический, цвета сняты с логотипа: почти чёрный по краям,
   тёмно-синее свечение сверху и фиолетовый отсвет слева. Блоки поверх него
   остаются прежними. Фон не прокручивается вместе со страницей. */
body{margin:0;color:var(--tx);
     background:
       radial-gradient(1200px 760px at 50% -8%, #071a3d 0%, rgba(7,26,61,0) 62%),
       radial-gradient(900px 620px at 12% 18%, rgba(30,24,92,.5) 0%, rgba(30,24,92,0) 66%),
       radial-gradient(1100px 700px at 92% 78%, rgba(7,20,48,.55) 0%, rgba(7,20,48,0) 70%),
       var(--bg);
     background-attachment:fixed;
     font:14px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3{margin:0}
button{font-family:inherit;cursor:pointer}

/* ── кнопки ─────────────────────────────────────────────────────────── */
.btn-primary{background:var(--accent2);color:#fff;border:1px solid var(--accent2);
  border-radius:7px;padding:9px 16px;font-size:13.5px;font-weight:600}
.btn-primary:hover{background:#2a7df5}
.btn-primary:disabled{background:#2b3340;border-color:#2b3340;color:var(--tx3);cursor:not-allowed}
.btn-ghost{background:var(--panel2);color:var(--tx2);border:1px solid var(--line);
  border-radius:7px;padding:7px 12px;font-size:12.5px}
.btn-ghost:hover{background:var(--panel3);color:var(--tx)}
.btn-ghost.sq{padding:5px 11px;font-size:16px;line-height:1}
.btn-ghost.xs{padding:3px 8px;font-size:11px}
.btn-ok{background:rgba(63,185,80,.12);color:var(--up);border:1px solid rgba(63,185,80,.35);
  border-radius:7px;padding:7px 14px;font-size:12.5px;font-weight:600}
.btn-ok:hover{background:rgba(63,185,80,.2)}
.btn-no{background:transparent;color:var(--tx2);border:1px solid var(--line);
  border-radius:7px;padding:7px 14px;font-size:12.5px}
.btn-no:hover{border-color:var(--down);color:var(--down)}

/* ── экран входа ────────────────────────────────────────────────────── */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:34px 32px;width:100%;max-width:380px;text-align:center}
.logo{display:block;width:52px;height:52px;object-fit:contain;margin:0 auto 16px}
.logo.sm{width:26px;height:26px;margin:0}
.login h1{font-size:21px;margin-bottom:5px}
.login-sub{color:var(--tx2);font-size:13px;margin:0 0 24px}
.fld{display:block;text-align:left;margin-bottom:13px}
.fld span{display:block;font-size:11.5px;color:var(--tx3);margin-bottom:5px;
  text-transform:uppercase;letter-spacing:.04em}
.fld input{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:7px;
  padding:9px 11px;color:var(--tx);font-size:13.5px;font-family:inherit}
.fld input:disabled{color:var(--tx3)}
.login .btn-primary{width:100%;margin-top:6px;padding:11px}
.login-note{font-size:11.5px;color:var(--tx3);line-height:1.6;margin:16px 0 0;text-align:left}

/* ── шапка ──────────────────────────────────────────────────────────── */
.top{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-in{max-width:1320px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:20px;
  min-height:56px;flex-wrap:wrap}
/* Период сразу справа от бренда, кнопки прижаты к правому краю */
.top-period{display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:1}
.top-period[hidden]{display:none}
/* Вкладки не прилипают к верху: при прокрутке уезжают вместе со страницей */
.top-tabs{max-width:1320px;margin:0 auto;padding:10px 20px 0}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
/* Логотип «ЦУП» (ops/logo-cup.webp) — на прозрачном фоне, обрезать нечего */
.logo-cup{display:block;height:44px;width:auto}
.logo-cup-big{height:104px;margin:0 auto 14px}
.brand-full{font-size:12px;color:var(--tx3)}
.tabs{display:flex;gap:2px;overflow-x:auto}
.tabs button{background:none;border:none;color:var(--tx2);padding:8px 13px;border-radius:7px;
  font-size:13.5px;white-space:nowrap}
.tabs button:hover{background:var(--panel2);color:var(--tx)}
.tabs button.on{background:var(--panel3);color:var(--tx);font-weight:600}
/* «Сводка» — главная: лёгкая рамка цвета акцента, чтобы отличалась от остальных */
.tabs button.tab-home{border:1px solid rgba(76,141,255,.45);color:var(--tx)}
.tabs button.tab-home.on{border-color:rgba(76,141,255,.75)}
/* Логотип ведёт на «Сводку», в самый верх */
.brand .logo-cup{cursor:pointer}
/* margin-left:auto — кнопки справа и там, где полосы периода нет («Задачи», «Инфо») */
.who{display:flex;align-items:center;gap:10px;position:relative;margin-left:auto}
/* «Инфо», настройки и «Выйти» — всегда под ☰ (решение владельца 13.10), раньше — только
   на телефоне. «Процессы» в меню (procBtnM) — только на телефоне, на широком — в шапке. */
.who-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:30;
  flex-direction:column;align-items:stretch;gap:6px;padding:8px;min-width:170px;
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 10px 24px rgba(0,0,0,.45)}
.who-menu.open{display:flex}
.who-menu .btn-ghost{text-align:left}
#menuBtn{display:block}
#procBtnM{display:none}
.role{font-size:12px;color:var(--tx3)}

/* ── телефон ────────────────────────────────────────────────────────────
   На узком экране в верхнюю строку помещаются только логотип и бургер,
   период уходит на свою строку целиком, вкладки прокручиваются вбок. */
@media (max-width:820px){
  .top-in{gap:10px;padding:8px 14px;min-height:48px}
  /* Первая строка — логотип, дата и бургер; вторая — переключатель режимов.
     display:contents распускает переключатель периода: его части становятся
     обычными детьми шапки, и дату видно рядом с логотипом, не отдельной
     строкой (решение руководителя 24.09). */
  .brand{order:1;flex:0 0 auto}
  .top-period{display:contents}
  .top-in .ov-nav{order:2;flex:1;justify-content:center;min-width:0}
  .who{order:3}
  .top-in .seg{order:4;flex-basis:100%}
  .top-in .ov-range{order:5;flex-basis:100%;justify-content:center}
  /* на телефоне «Процессы» — не в шапке, а в меню под ☰ */
  #procBtn{display:none}
  #procBtnM{display:block}
  .logo-cup{height:34px}

  .top-in .seg{flex-wrap:wrap}
  .seg button{padding:6px 9px;font-size:12px}
  .ov-nav{gap:6px}
  .ov-period{font-size:14px;min-width:0}
  .ov-range input{font-size:12px;padding:5px 7px}
  .top-tabs{padding:8px 14px 0}
  .demo-badge{display:none}
  .wrap{padding:14px 14px 60px}
  .grid,.grid4,.grid5{grid-template-columns:1fr}
}

.wrap{max-width:1320px;margin:0 auto;padding:20px 20px 70px}

/* ── статус данных ──────────────────────────────────────────────────── */
.freshness{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:11px 15px;margin-bottom:16px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.fr-title{font-size:12px;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}
.src{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--tx2)}
.dot{width:7px;height:7px;border-radius:50%;flex:none}
.dot.ok{background:var(--up)} .dot.part{background:var(--warn)} .dot.bad{background:var(--down)}
.fr-note{margin-left:auto;font-size:11.5px;color:var(--tx3)}

/* ── период и план ──────────────────────────────────────────────────── */
.periodbar{display:flex;justify-content:space-between;align-items:center;gap:16px;
  flex-wrap:wrap;margin-bottom:16px}
.pb-left{display:flex;align-items:center;gap:10px}
.pb-month{font-size:16px;font-weight:650;min-width:150px;text-align:center}
.planbox{display:flex;align-items:center;gap:10px;background:var(--panel);
  border:1px solid var(--line);border-radius:9px;padding:9px 14px}
.pb-lbl{font-size:11.5px;color:var(--tx3)}
.pb-val{font-size:15px;font-weight:650}

/* ── темп плана ─────────────────────────────────────────────────────── */
.pace{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px 18px;margin-bottom:18px}
.pace-top{display:flex;justify-content:space-between;align-items:baseline;
  gap:14px;flex-wrap:wrap;margin-bottom:11px}
.pace-fact{font-size:26px;font-weight:650;letter-spacing:-.01em}
.pace-of{font-size:13px;color:var(--tx2)}
.bar{height:9px;background:var(--panel3);border-radius:5px;overflow:hidden;position:relative}
.bar i{display:block;height:100%;border-radius:5px}
.bar .tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx2);opacity:.75}
.pace-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--tx2)}
.pace-concl{margin-top:11px;font-size:13px;padding-top:11px;border-top:1px solid var(--line)}

/* ── карточки KPI ───────────────────────────────────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 15px;
  display:flex;flex-direction:column;gap:6px;min-height:136px}
.card.nodata{background:repeating-linear-gradient(135deg,var(--panel),var(--panel) 8px,#15181e 8px,#15181e 16px)}
.card h3{font-size:11.5px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.03em}
.val{font-size:25px;font-weight:650;letter-spacing:-.01em;line-height:1.15}
.target{font-size:12px;color:var(--tx3)}
.delta{font-size:13px;font-weight:600}
.up{color:var(--up)} .down{color:var(--down)} .flat{color:var(--flat)} .warnc{color:var(--warn)}
.note{font-size:11px;color:var(--tx3);margin-top:auto;border-top:1px solid var(--line);padding-top:7px}
.missing{font-size:14px;color:var(--warn);font-weight:600}
.missing-why{font-size:11.5px;color:var(--tx2);line-height:1.45}

/* ── панели ─────────────────────────────────────────────────────────── */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px 18px;margin-bottom:18px}
.panel-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  flex-wrap:wrap;margin-bottom:14px}
.panel h2{font-size:15px}
.ph{color:var(--tx3);font-size:12px;margin-top:2px}
.seg{display:flex;gap:2px;background:var(--panel2);border-radius:8px;padding:3px}
.seg button{background:none;border:none;color:var(--tx2);padding:6px 11px;border-radius:6px;font-size:12.5px}
.seg button.on{background:var(--panel3);color:var(--tx);font-weight:600}

/* ── рекомендации ───────────────────────────────────────────────────── */
.recs{display:flex;flex-direction:column;gap:11px}
.rec{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:14px 16px;
  border-left:3px solid var(--accent)}
.rec.taken{border-left-color:var(--up)}
.rec.declined{border-left-color:var(--tx3);opacity:.72}
.rec.checked{border-left-color:var(--warn)}
.rec-top{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:9px}
.rec-who{font-size:11.5px;color:var(--tx3);display:flex;align-items:center;gap:8px}
.chip{background:var(--panel3);border-radius:5px;padding:2px 8px;font-size:11px;color:var(--tx2)}
.chip.dept{color:var(--accent)}
.rec-line{margin-bottom:7px;font-size:13.5px;line-height:1.55}
.rec-line b{color:var(--tx2);font-weight:600;font-size:11.5px;text-transform:uppercase;
  letter-spacing:.04em;display:block;margin-bottom:2px}
.rec-eff{font-size:12.5px;color:var(--up);margin-bottom:11px}
.rec-src{font-size:11px;color:var(--tx3);margin-bottom:11px}
.rec-btns{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.rec-state{font-size:12.5px;color:var(--tx2)}
.rec-reason{font-size:12.5px;color:var(--tx3);font-style:italic;margin-top:7px}

/* ── аномалии ───────────────────────────────────────────────────────── */
.anoms{display:flex;flex-direction:column;gap:9px}
.anom{display:flex;gap:11px;align-items:flex-start;background:var(--panel2);
  border:1px solid var(--line);border-radius:8px;padding:11px 13px;font-size:13px}
.anom .dot{margin-top:7px}
.anom-empty{color:var(--tx3);font-size:13px}

/* ── ИИ-сотрудники ──────────────────────────────────────────────────── */
.staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.emp{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:14px 15px}
.emp-h{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.emp-ava{width:30px;height:30px;border-radius:8px;background:var(--panel3);display:flex;
  align-items:center;justify-content:center;font-size:14px}
.emp-name{font-weight:650;font-size:13.5px}
.emp-role{font-size:11.5px;color:var(--tx3)}
.emp-does{font-size:12.5px;color:var(--tx2);line-height:1.5;margin-bottom:9px}
.emp-foot{display:flex;justify-content:space-between;font-size:11.5px;color:var(--tx3);
  border-top:1px solid var(--line);padding-top:8px}
.st{font-size:11px;padding:2px 8px;border-radius:5px}
.st.live{background:rgba(63,185,80,.13);color:var(--up)}
.st.soon{background:rgba(210,153,34,.13);color:var(--warn)}

/* ── подвал ─────────────────────────────────────────────────────────── */
.foot{color:var(--tx3);font-size:11.5px;line-height:1.75;border-top:1px solid var(--line);
  padding-top:14px}
code{background:var(--panel2);padding:1px 5px;border-radius:4px;font-size:11.5px}

/* ── модалки ────────────────────────────────────────────────────────── */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;
  justify-content:center;padding:20px;z-index:50}
/* атрибут hidden обязан побеждать display:flex выше */
[hidden]{display:none!important}
.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:24px;width:100%;max-width:440px}
.modal-card h3{font-size:16px;margin-bottom:6px}
.modal-sub{font-size:13px;color:var(--tx2);margin:0 0 15px;line-height:1.5}
.modal-card textarea,.modal-card input{width:100%;background:var(--panel2);border:1px solid var(--line);
  border-radius:7px;padding:10px 12px;color:var(--tx);font-size:13.5px;font-family:inherit;resize:vertical}
.modal-hint{font-size:11.5px;color:var(--tx3);line-height:1.6;margin:10px 0 0}
.modal-btns{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}

/* ══ ГЛАВНАЯ: обзор ═══════════════════════════════════════════════════ */
.ov-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.ov-nav{display:flex;align-items:center;gap:10px}
.ov-period{font-size:16px;font-weight:650;min-width:170px;text-align:center}
/* «обновлено 15:02» — второй строкой под датой в шапке (ops/period.js) */
.ov-upd{display:block;font-size:11px;font-weight:400;color:var(--tx3);line-height:1.2}
.ov-upd.bad{color:var(--warn)}
.ov-cmp{margin-left:auto;font-size:12.5px;color:var(--tx3)}
.ov-cmp b{color:var(--tx2);font-weight:600}

.hero{display:grid;grid-template-columns:1fr 300px;gap:12px;margin-bottom:14px}
@media (max-width:860px){.hero{grid-template-columns:1fr}}
.hero-main{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.hero-lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);margin-bottom:6px}
.hero-val{font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1.05;margin-bottom:8px}
.hero-sub{font-size:13.5px;color:var(--tx2);display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.hero-sub b{color:var(--tx)}
.dot-sep{color:var(--tx3)}
.hero-note{font-size:11.5px;color:var(--warn);margin-top:10px}
.bar.big{height:12px;border-radius:6px}

.hero-side{display:flex;flex-direction:column;gap:12px}
.hs{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;flex:1;
    display:flex;flex-direction:column;justify-content:center}
.hs-lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);margin-bottom:6px}
.hs-val{font-size:26px;font-weight:680;letter-spacing:-.01em}
.hs-note{font-size:12px;color:var(--tx3);margin-top:4px}

.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}
.card.k{min-height:0;gap:4px}
.k-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;
        border-top:1px solid var(--line);padding-top:8px}
.spark{width:120px;height:30px;flex:none;opacity:.8}

.chart{width:100%;height:200px;display:block}
.panel .chart{margin-top:2px}

.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.cu{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:16px;text-align:center}
.cu-val{font-size:24px;font-weight:680;letter-spacing:-.01em}
.cu-lbl{font-size:12px;color:var(--tx3);margin-top:4px}
.cu-foot{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
         font-size:12.5px;color:var(--tx2)}

/* ══ КАРКАС ВКЛАДОК ═══════════════════════════════════════════════════ */
.sec-lead{color:var(--tx2);font-size:13.5px;margin:2px 0 16px}
.sec-group{font-size:15px;font-weight:600;color:var(--tx);margin:28px 0 12px;
  padding-top:18px;border-top:1px solid var(--line)}
.who .btn-ghost.on{background:var(--panel3);color:var(--tx)}
.brand-note{background:rgba(210,153,34,.1);border:1px solid rgba(210,153,34,.3);
  border-radius:9px;padding:11px 14px;margin-bottom:16px;font-size:12.5px;color:var(--warn)}

.bl{padding:16px 18px}
.bl .panel-h{margin-bottom:12px}
.bl-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.bl-note{font-size:12px;color:var(--tx2);line-height:1.55;margin-bottom:6px}
.bl-src{font-size:11px;color:var(--tx3)}

.st.block{background:rgba(248,81,73,.13);color:var(--down)}

/* скелетоны */
.gh-row{height:11px;background:var(--panel3);border-radius:4px;margin-bottom:8px;opacity:.55}
.gh-row:nth-child(2){width:82%} .gh-row:nth-child(3){width:64%} .gh-row:nth-child(4){width:73%}
.gh-cell{display:inline-block;height:9px;width:62px;background:var(--panel3);
  border-radius:3px;opacity:.55}
.gh-cell.w40{width:40%} .gh-cell.w20{width:20%}

/* таблицы каркаса */
.tb{width:100%;border-collapse:collapse;font-size:12.5px}
.tb th{text-align:left;color:var(--tx3);font-weight:600;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.04em;padding:0 10px 7px 0;white-space:nowrap}
.tb td{padding:8px 10px 8px 0;border-top:1px solid var(--line)}

/* алерт */
.al{display:flex;align-items:center;gap:13px;background:rgba(248,81,73,.07);
  border:1px solid rgba(248,81,73,.25);border-radius:9px;padding:13px 15px}
.al-ico{width:26px;height:26px;border-radius:50%;background:var(--down);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.al-body{flex:1}
.al-title{font-size:13.5px;font-weight:600}
.al-sub{font-size:11.5px;color:var(--tx3);margin-top:2px}

/* лента */
.feed-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.feed-row:first-child{border-top:none}

/* светофор */
.traffic{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.tr-cell{background:var(--panel2);border:1px solid var(--line);border-radius:9px;
  padding:14px 10px;text-align:center}
.tr-dot{width:16px;height:16px;border-radius:50%;background:var(--panel3);margin:0 auto 8px}
.tr-name{font-size:12px;color:var(--tx2)}

/* календарь */
.cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.cal-item{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:12px 13px}
.cal-name{font-size:12.5px}
.cal-cd{font-size:19px;font-weight:650;color:var(--tx3);margin-top:4px}

/* прогноз */
.fc-big{font-size:32px;font-weight:700;color:var(--tx3)}
.fc-lbl{font-size:12px;color:var(--tx3);margin:4px 0 12px}

/* шкала с нормой */
.gg-bar{position:relative;height:12px;background:var(--panel3);border-radius:6px;overflow:hidden}
.gg-bar i{display:block;height:100%;background:var(--accent);border-radius:6px}
.gg-norm{position:absolute;left:60%;width:30%;top:0;bottom:0;
  background:rgba(63,185,80,.22);border-left:1px solid var(--up);border-right:1px solid var(--up)}
.gg-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--tx3);margin-top:6px}
.gg-n{color:var(--up)}

/* карта */
.mapbox{position:relative;height:230px;border:1px dashed var(--line);border-radius:10px;
  background:var(--panel2);overflow:hidden}
.map-grid{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:38px 38px}
.map-lbl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--tx3);font-size:13px}

/* действие */
.act{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.act-hint{font-size:11.5px;color:var(--tx3)}

/* воронка */
.funnel{display:flex;flex-direction:column;gap:6px}
.fn-step{background:var(--panel2);border:1px solid var(--line);border-radius:7px;
  padding:9px 13px;display:flex;justify-content:space-between;font-size:12.5px;min-width:180px}
.fn-step b{color:var(--tx3)}

/* рецепт */
.rc-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;
  border-top:1px solid var(--line);font-size:12.5px}
.rc-row:first-child{border-top:none}
.rc-name{color:var(--tx2)}

/* кластеры сборки */
.clusters{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:10px}
.cl{text-align:center}
.cl-box{height:42px;border:1px dashed var(--line);border-radius:8px;background:var(--panel2)}
.cl-n{font-size:11px;color:var(--tx3);margin-top:5px}

/* чек-лист */
.chk-row{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12.5px;color:var(--tx2)}

/* справочники */
.refgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.refgrid .bl{margin-bottom:0}
.refc-q{font-size:12.5px;color:var(--tx2);margin-bottom:6px}
.refc-src{font-size:11.5px;color:var(--tx3);margin-bottom:11px;line-height:1.5}

.brandsw button{font-size:12px;padding:5px 9px}

/* какие данные на экране */
.demo-badge{background:rgba(210,153,34,.15);color:var(--warn);border:1px solid rgba(210,153,34,.35);
  border-radius:6px;padding:3px 9px;font-size:11px;font-weight:600;letter-spacing:.03em}
.live-badge{background:rgba(63,185,80,.13);color:var(--up);border-radius:6px;
  padding:3px 9px;font-size:11px;font-weight:600}

/* ══ КОНТРОЛЬ КАЧЕСТВА ════════════════════════════════════════════════ */
.qc-demo{color:var(--tx2)}
.qc-demo b{color:var(--warn)}
.qc-period{min-width:0;text-align:left}
.qc-kpi .card.k{min-height:128px}
.qc-kpi .target{line-height:1.45}
.card.qc-alarm{border-color:rgba(248,81,73,.45)}
.card.qc-alarm .val{color:var(--down)}
.qc-was{color:var(--tx3);font-weight:400;margin-left:6px}
.qc-dim{color:var(--tx3);font-size:11.5px}
.qc-nw{white-space:nowrap}
.tb .r,.tb th.r{text-align:right}
.qc-link{color:var(--accent);font-weight:600}
.qc-quote{color:var(--tx2);font-size:11.5px;font-style:italic;margin-top:2px;
  border-left:2px solid var(--line);padding-left:7px}
.qc-tb td{vertical-align:top}
.qc-kind{display:inline-block;margin-bottom:3px}
.qc-kind.k-d{color:var(--warn)} .qc-kind.k-z{color:var(--accent)} .qc-kind.k-v{color:var(--down)}
.qc-scroll{max-height:520px;overflow:auto}
.qc-scroll.short{max-height:340px}
.qc-scroll thead th{position:sticky;top:0;background:var(--panel)}
.qc-hot td:first-child{color:var(--down);font-weight:600}
.qc-empty{padding:14px 0}

.qc-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.qc-chips button{background:var(--panel2);border:1px solid var(--line);color:var(--tx2);
  border-radius:16px;padding:4px 11px;font-size:12px}
.qc-chips button b{color:var(--tx3);font-weight:600;margin-left:3px}
.qc-chips button.on{background:var(--panel3);color:var(--tx);border-color:var(--tx3)}

.qc-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 16px}
@media (max-width:900px){.qc-two{grid-template-columns:minmax(0,1fr)}}
.qc-bars{display:flex;flex-direction:column;gap:13px}
.qc-bar-h{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;margin-bottom:5px}
.qc-bar-h span{color:var(--tx2);white-space:nowrap}
.qc-bar .bar{margin-bottom:4px}
.qc-gap{margin-top:12px}

.qc-seg{display:inline-flex;margin-bottom:12px}
.qc-revs{display:flex;flex-direction:column;gap:9px}
.qc-rev{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:11px 14px;
  border-left:3px solid var(--up)}
.qc-rev.bad{border-left-color:var(--warn)}
.qc-rev.bad.open{border-left-color:var(--down);background:rgba(248,81,73,.06)}
.qc-rev-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.qc-rev-t{font-size:13px;line-height:1.5}
.qc-ans{margin-left:auto;font-size:11.5px;font-weight:600}
.qc-stars{color:var(--warn);letter-spacing:1px;font-size:13px}
.qc-stars i{font-style:normal;color:var(--panel3)}
.qc-stars.s1,.qc-stars.s2{color:var(--down)}
.kpi-gh{margin-bottom:0}
.qc-stub{background:var(--panel2);border:1px dashed var(--line);border-radius:8px;padding:12px 14px;margin:0}

/* ══ ДАШБОРДЫ (main.js) ════════════════════════════════════════════════ */
.ov-range{display:flex;align-items:center;gap:8px;color:var(--tx3)}
.ov-range input{background:var(--panel2);border:1px solid var(--line);border-radius:7px;
  padding:6px 9px;color:var(--tx);font:inherit;font-size:12.5px;color-scheme:dark}
.grid5{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:10px}
.kd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px;
  border-top:1px solid var(--line);font-size:13px}
.kd b{font-weight:650}
.kd span{font-size:11.5px;color:var(--tx3)}
.sub-line{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--tx2);margin:0 2px 16px}
.sub-line b{color:var(--tx)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--tx3)}
.legend span{display:flex;align-items:center;gap:5px}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px}
.sw.dash{width:14px;height:0;border-top:2px dashed var(--tx2);border-radius:0}
.scroll{overflow-x:auto}
.tb.cmp th,.tb.cmp td{white-space:nowrap;padding-right:18px}
.tb.cmp th .ph{text-transform:none;letter-spacing:0;font-weight:400}
.tb.cmp td.up{color:var(--up)} .tb.cmp td.down{color:var(--down)} .tb.cmp td.flat{color:var(--tx3)}
@media (max-width:700px){
  .ov-cmp{margin-left:0}
  .grid5{grid-template-columns:1fr 1fr}
}
/* графики 1000 × H: масштабируются целиком вместе с подписями */
.chart2{width:100%;height:auto;display:block;overflow:visible}
.chart2 .vlab{font-size:10.5px;fill:var(--tx2);text-anchor:middle}
.chart2 .tick{font-size:11.5px;fill:var(--tx3);text-anchor:middle}
.chart2 .tick.on{fill:var(--tx);font-weight:700}
.chart2 .axl{font-size:11.5px;fill:var(--tx3)}
.sw.dot-l{width:14px;height:0;border-top:2px dotted var(--tx2);border-radius:0}
/* план месяца: полосы выполнения */
.bul-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 22px;margin-bottom:18px}
.bul-h{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;font-size:13px}
.bul-v{color:var(--tx2);font-size:12.5px}
.bul-p{margin-left:auto;font-size:18px;font-weight:700}
.bul-bar{position:relative;height:12px;background:var(--panel3);border-radius:6px}
.bul-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.bul-bar i.up{background:var(--up)} .bul-bar i.down{background:var(--down)}
.bul-bar u{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1.5px;background:var(--tx);border-radius:2px}
.bul-n{font-size:11.5px;color:var(--tx3);margin-top:5px}
/* план месяца: темп и «нужно в день» */
.pace-wrap{display:grid;grid-template-columns:1fr 170px;gap:20px;align-items:stretch}
.pace-h{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline;font-size:13px;margin:4px 0 6px}
.pace-h span{font-size:12.5px;color:var(--tx2)}
/* «нужно в день» — серая подсказка сбоку от графика: вдвое уже и вдвое ниже
   прежнего блока, прижата к низу, чтобы не спорить с цифрами графика */
.need{background:var(--panel2);border:1px solid var(--line);border-radius:9px;
  align-self:end;padding:8px 11px;display:flex;flex-direction:column;gap:2px}
.need-h{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);line-height:1.3;
  margin-bottom:2px}
.need-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;line-height:1.3}
.need-row b{font-size:13.5px;font-weight:650;color:var(--tx2)}
.need-row span{font-size:10.5px;color:var(--tx3)}
.need-foot{margin-top:4px;padding-top:5px;border-top:1px solid var(--line);
  font-size:10.5px;color:var(--tx3);line-height:1.4}
/* сравнение периодов: плитки */
.cmp-grid{margin-top:14px;margin-bottom:0}
.ctile .val{font-size:22px;margin-bottom:6px}
.cbar{display:grid;grid-template-columns:minmax(0,96px) minmax(48px,1fr) auto;gap:8px;align-items:center;font-size:11.5px}
.cbar-n{color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbar-t{height:7px;background:var(--panel2);border-radius:4px;overflow:hidden}
.cbar-t i{display:block;height:100%;border-radius:4px}
.cbar-v{color:var(--tx2);white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip-d{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:5px;background:var(--panel2)}
/* нарушения регламента под выводом об отказе («Продажи» → «Почему отказали») */
.sl-viol{margin-top:5px;gap:4px}
.sl-viol .chip-d{font-size:10.5px;padding:1px 6px}
.chip-d.up{color:var(--up);background:rgba(63,185,80,.12)}
.chip-d.down{color:var(--down);background:rgba(248,81,73,.12)}
.chip-d.flat{color:var(--tx3)}
@media (max-width:900px){
  .pace-wrap{grid-template-columns:1fr}
  .need{border-left:none;border-top:1px solid var(--line);padding:10px 0 0}
}
@media (max-width:700px){ .chart2 .vlab{display:none} .cmp-grid{grid-template-columns:1fr} }
.bar-hit{fill:transparent;cursor:pointer}
.bar-hit:hover{fill:var(--tx);fill-opacity:.06}
/* Производство: подзаголовок группы параметров и пустая колонка факта.
   Факт условий не выдумываем — колонка честно говорит, что замеров нет. */
.pr-group{font-size:13px;font-weight:600;color:var(--tx2);margin:16px 0 8px}
.pr-group:first-child{margin-top:0}
.pr-nodata{color:var(--tx3);font-style:italic;white-space:nowrap}

/* ══ ДИАГРАММЫ (ops/charts.js) ═══════════════════════════════════════════ */
.ch-bars{display:grid;grid-template-columns:minmax(90px,1.4fr) 3fr minmax(70px,auto);
  align-items:center;gap:7px 10px;margin:4px 0 2px;font-size:12.5px}
.ch-bars.with-left{grid-template-columns:minmax(90px,1.3fr) minmax(44px,auto) 3fr minmax(78px,auto)}
.ch-bar-left{text-align:right;color:var(--tx2);font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-bar{display:contents}
.ch-bar-name{color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-bar-track{background:var(--panel2);border-radius:4px;height:14px;position:relative}
.ch-bar-track i{display:block;height:100%;border-radius:4px}
/* отметка «было в прошлый раз»: пунктирная черта поперёк полосы */
.ch-bar-prev{position:absolute;top:-3px;bottom:-3px;width:0;
  border-left:2px dashed var(--tx2);opacity:.85}
.ch-bar-val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.ch-bar-delta{font-weight:600;font-size:11.5px;margin-left:4px}
/* колонка справа от значения: например, полученная предоплата — зелёным */
.ch-bars.with-extra{grid-template-columns:minmax(90px,1.4fr) 3fr minmax(70px,auto) minmax(70px,auto)}
.ch-bars.with-left.with-extra{grid-template-columns:minmax(90px,1.3fr) minmax(44px,auto) 3fr minmax(70px,auto) minmax(70px,auto)}
.ch-bar-extra{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-bars-head{display:flex;justify-content:flex-end;gap:18px;font-size:11px;color:var(--tx3);
  margin:0 0 4px;text-transform:uppercase;letter-spacing:.03em}
.ch-bars-head .up{color:var(--up)}

.ch-donut{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:4px 0}
.ch-c1{fill:var(--tx);font-size:15px;font-weight:650}
.ch-c2{fill:var(--tx3);font-size:9.5px}
.ch-leg{display:flex;flex-direction:column;gap:6px;min-width:190px;flex:1}
.ch-leg.row{flex-direction:row;flex-wrap:wrap;gap:6px 18px;margin-top:8px}
.ch-leg-row{display:flex;align-items:center;gap:8px;font-size:12.5px}
.ch-leg-row i{width:10px;height:10px;border-radius:3px;flex:none}
.ch-leg-name{color:var(--tx2);flex:1}
.ch-leg-row b{font-variant-numeric:tabular-nums}

.ch-cols{margin:6px 0 2px}
.ch-cols-plot{display:flex;align-items:flex-end;gap:1px;height:96px}
.ch-col{display:flex;align-items:flex-end;justify-content:center;height:100%}
.ch-col i{display:block;width:78%;min-height:1px;border-radius:2px 2px 0 0;position:relative}
/* подпись значения над столбиком: место под неё отводит .vals у плота */
.ch-cols-plot.vals{height:112px;padding-top:16px;box-sizing:border-box}
.ch-col i b{position:absolute;left:50%;top:-15px;transform:translateX(-50%);
  font-size:10.5px;font-weight:600;color:var(--tx2);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.ch-cols-x{position:relative;height:16px;margin-top:5px;font-size:10.5px;color:var(--tx3)}
.ch-cols-x span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.ch-cols-max{font-size:11px;color:var(--tx3);margin-top:2px}

.ch-split{display:flex;height:16px;border-radius:5px;overflow:hidden;background:var(--panel2);margin:6px 0}
.ch-split i{display:block;height:100%}

/* Сворачиваемый список: первые строки видны, остальное под кнопкой */
details.fold{margin-top:8px}
details.fold>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;
  gap:7px;font-size:12.5px;color:var(--tx2);background:var(--panel2);border:1px solid var(--line);
  border-radius:7px;padding:6px 12px}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"▾";font-size:11px;color:var(--tx3)}
details.fold>summary:hover{color:var(--tx);border-color:var(--panel3)}
details.fold[open]>summary::after{content:"▴"}
details.fold[open]>summary{margin-bottom:8px}
.ch-title{font-size:11.5px;font-weight:600;color:var(--tx3);text-transform:uppercase;
  letter-spacing:.03em;margin:14px 0 6px}
.ch-title:first-child{margin-top:2px}
.ch-pair{display:flex;gap:26px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.ch-pair-side{flex:1;min-width:240px}
.ch-alarm{color:var(--down)}
.abc-alarm{background:rgba(248,81,73,.1);border:1px solid rgba(248,81,73,.35);
  border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:8px}
.abc-alarm b{color:var(--down);font-size:16px}
.abc-ok{background:rgba(63,185,80,.1);border:1px solid rgba(63,185,80,.3);
  border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:8px;color:var(--up)}
@media (max-width:640px){
  .ch-bars{grid-template-columns:minmax(70px,1.2fr) 2fr minmax(56px,auto);gap:6px 7px;font-size:12px}
  .ch-bars.with-left{grid-template-columns:minmax(62px,1.1fr) minmax(36px,auto) 1.6fr minmax(60px,auto)}
  .ch-bars.with-left.with-extra{grid-template-columns:minmax(58px,1fr) minmax(34px,auto) 1.2fr minmax(52px,auto) minmax(52px,auto)}
  .ch-pair{gap:14px}
}

/* Пояснения под блоками — тише основного текста и курсивом: это сноска,
   а не содержание (решение владельца 20.09) */
.bl-foot .bl-note,.sub-line.note{font-style:italic;color:var(--tx3)}
.sub-line.note b{color:var(--tx2);font-style:normal}
.bl-src{font-style:italic}

/* Блок в две колонки: слева диаграмма, справа таблица */
.bl-side{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.35fr);
  gap:22px;align-items:start}
.bl-side-table{min-width:0}
.bl-side-chart{min-width:0}
@media (max-width:900px){.bl-side{grid-template-columns:1fr;gap:12px}}

/* Подписи под каждым столбиком */
.ch-cols-labels{display:flex;margin-top:5px}
.ch-cols-labels span{text-align:center;font-size:10px;color:var(--tx3);
  overflow:hidden;white-space:nowrap}
.ch-col.ch-click{cursor:pointer}
.ch-col.ch-click:hover i{filter:brightness(1.35)}
.ch-col.ch-click:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ch-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--tx3);
  font-style:italic;margin-left:8px}

/* Две диаграммы рядом, цифры под ними */
.bl-two{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:14px}
@media (max-width:900px){.bl-two{grid-template-columns:1fr;gap:10px}}

/* Полоса прямо в строке таблицы */
.tb .tb-bar{background:var(--panel2);border-radius:4px;height:10px;min-width:70px;
  overflow:hidden;margin-left:auto}
.tb .tb-bar i{display:block;height:100%;border-radius:4px}

/* Таблица с полосой в последней колонке: полосе нужна своя ширина,
   иначе она наползает на соседнее число */
.tb.with-bar th:last-child,.tb.with-bar td:last-child{width:120px;padding-left:18px}
.tb .tb-bar{margin:0;width:100%;min-width:0}
/* Сортировка по заголовку */
.tb th.sort{cursor:pointer;user-select:none;white-space:nowrap}
.tb th.sort:hover{color:var(--tx2)}
.tb th.sort.on{color:var(--tx)}
@media (max-width:640px){
  .tb.with-bar th:last-child,.tb.with-bar td:last-child{width:76px;padding-left:10px}
}

/* Колонки выровнены по центру: заголовок и значения стоят друг под другом */
.tb th.c,.tb td.c{text-align:center}
/* Числовые колонки плотнее, полосе — больше места (решение владельца 20.09) */
.tb.with-bar td,.tb.with-bar th{padding-left:8px;padding-right:8px}
.tb.with-bar th:first-child,.tb.with-bar td:first-child{padding-left:2px}
.tb.with-bar th:last-child,.tb.with-bar td:last-child{width:220px;min-width:150px;padding-left:16px}
@media (max-width:900px){
  .tb.with-bar th:last-child,.tb.with-bar td:last-child{width:120px;min-width:90px}
}
@media (max-width:640px){
  .tb.with-bar th:last-child,.tb.with-bar td:last-child{width:84px;min-width:64px;padding-left:8px}
}

/* Жёлтый — «в пределах обычного», красный — «хуже обычного» */
.card.qc-warn{border-color:rgba(210,153,34,.45)}
.card.qc-warn .val{color:var(--warn)}
.ch-legend{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 2px;
  font-size:11.5px;color:var(--tx3);font-style:italic}
.ch-legend span{display:inline-flex;align-items:center;gap:6px}
.ch-legend i{width:10px;height:10px;border-radius:3px;flex:none}

/* ── вкладка «Склад» (sklad.js → services/sklad) ────────────────────── */
.sk-tabs{flex-wrap:wrap}
.sk-msg{background:rgba(63,185,80,.1);border-color:rgba(63,185,80,.35);color:var(--tx)}
.sk-err{background:rgba(248,81,73,.1);border-color:rgba(248,81,73,.4);color:var(--tx)}
.sk-err b{color:var(--down)}
.sk-in{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:7px 10px;
  color:var(--tx);font:inherit;font-size:13px;min-width:0}
.sk-in:focus{outline:2px solid var(--accent);outline-offset:1px}
.sk-n{width:100px;text-align:right}
.sk-wide{width:100%;min-width:220px}
.sk-grow{flex:1 1 240px}
.sk-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}
.sk-f{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--tx3)}
.sk-chk{flex-direction:row;align-items:center;gap:8px;padding-bottom:8px}
.sk-acts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.sk-total{text-align:right;font-size:13px;color:var(--tx2);margin-top:6px}
.sk-total b{color:var(--tx);font-size:15px}
.sk-edit td{vertical-align:middle;padding-top:6px;padding-bottom:6px}
.sk-click{cursor:pointer}
.sk-click:hover td{background:var(--panel2)}
.sk-doc{background:var(--panel2);border-radius:8px;padding:6px 10px;margin:4px 0 8px}
table.sk-doc{width:100%}
.sk-line{border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:10px}
.sk-line.cancelled{opacity:.55}
.sk-line-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.sk-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:9px;overflow:hidden;margin:10px 0 14px}
@media (max-width:620px){.sk-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sk-sum div{background:var(--panel);padding:9px 12px;display:flex;flex-direction:column;gap:2px}
.sk-sum span{font-size:11px;color:var(--tx3)}
.sk-sum b{font-size:16px}

/* макет карточки сделки Битрикс24: светлая, как в самом портале */
.sk-b24{--b-bg:#eef2f4;--b-card:#fff;--b-line:#e2e7ea;--b-tx:#333;--b-tx2:#80868e;--b-blue:#2fc6f6;--b-blue2:#2067b0;
  background:var(--b-bg);border-radius:12px;padding:0 0 16px;color:var(--b-tx);overflow:hidden}
.sk-b24-top{display:flex;gap:16px;align-items:center;background:#1f2229;color:#fff;padding:10px 16px;font-size:13px}
.sk-b24-logo{font-weight:700;color:#fff}
.sk-b24-logo::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--b-blue);margin-left:5px}
.sk-b24-card{margin:14px 16px 0;background:var(--b-card);border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.sk-b24-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 8px;flex-wrap:wrap}
.sk-b24-title{font-size:20px;font-weight:600;display:flex;align-items:center;gap:6px}
.sk-b24-in{font:inherit;width:120px;border:1px solid var(--b-line);border-radius:6px;padding:2px 8px;color:var(--b-tx);background:#fff}
.sk-b24-btn{background:var(--b-blue2);color:#fff;border:0;border-radius:6px;padding:6px 12px;font-size:13px}
.sk-b24-sum{font-size:20px;font-weight:600}
.sk-b24-stages{display:flex;gap:3px;padding:6px 18px 12px;overflow-x:auto}
.sk-b24-st{flex:1 0 auto;border:0;background:#e9eef1;color:var(--b-tx2);font-size:12px;padding:7px 14px;white-space:nowrap;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%)}
.sk-b24-st:first-child{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%)}
.sk-b24-st.done{background:#bce9f7;color:#1c5f7a}
.sk-b24-st.now{background:var(--b-blue);color:#fff;font-weight:600}
.sk-b24-st.lose{background:#ffd5d0;color:#a3291c;flex:0 0 auto}
.sk-b24-st:disabled{cursor:not-allowed;opacity:.6}
.sk-b24-tabs{display:flex;gap:2px;border-bottom:1px solid var(--b-line);padding:0 12px;overflow-x:auto}
.sk-b24-tabs span{padding:9px 12px;font-size:13px;color:var(--b-tx2);white-space:nowrap;border-bottom:2px solid transparent}
.sk-b24-tabs span.on{color:var(--b-tx);font-weight:600;border-color:var(--b-blue)}
.sk-b24-tabs i{font-style:normal;font-size:10.5px;background:#e5f7fd;color:#1c7ea0;border-radius:4px;padding:1px 5px;margin-left:4px}
.sk-b24-body{padding:14px 18px}
.sk-b24-empty{color:var(--b-tx2);padding:18px 0}
/* внутри светлой карточки перекрашиваем токены витрины */
.sk-b24-body{--panel:#fff;--panel2:#f5f7f8;--panel3:#e9eef1;--line:#e2e7ea;--tx:#333;--tx2:#5c636b;--tx3:#8a9199;color:var(--tx)}
.sk-b24-body .sk-in{background:#fff}

/* Деньги, которые ещё можно довести: «в работе, не подтверждено» (решение владельца 24.09) */
.money-ok{color:var(--up);font-weight:650}

/* Заголовки блоков — видно, что это название блока, а не строка текста:
   крупнее, жирнее, с цветной чертой слева. Сначала было только в «Продажах»
   (решение владельца 24.09), 25.09 распространено на всю платформу. */
.panel-h h2{font-size:17px;font-weight:700;letter-spacing:-.005em;
  padding-left:11px;border-left:3px solid var(--accent);line-height:1.25}
.panel-h .ph{padding-left:14px;margin-top:3px}
.sec-group{font-size:13px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--tx2);margin:26px 0 10px}

/* Метка у неточной цифры (ops/notes.js): «≈» у оценки, «64%» у цифры,
   посчитанной не по всем сделкам. Видна, но не кричит; подробности —
   во всплывающей подсказке и во вкладке «Инфо» (решение 25.09). */
.mark{display:inline-block;font-size:11px;font-weight:600;line-height:1;vertical-align:middle;
  color:var(--warn);background:rgba(210,153,34,.12);border:1px solid rgba(210,153,34,.3);
  border-radius:5px;padding:2px 5px;cursor:help;letter-spacing:0}
.val .mark{font-size:11.5px;margin-left:2px;vertical-align:.35em}

/* ── «Маркетинг» (ops/marketing.js) ─────────────────────────────────── */
/* «Новые» и «Повторные» — два блока рядом */
.mk-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.mk-pair .panel{margin-bottom:0}
@media (max-width:900px){.mk-pair{grid-template-columns:1fr}}
/* цифры внутри блока без рамок карточек */
.mk-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.mk-stats.four{grid-template-columns:repeat(4,1fr);margin-bottom:16px}
@media (max-width:900px){.mk-stats.four{grid-template-columns:1fr 1fr}}
.mk-stat-t{font-size:11.5px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.03em}
.mk-stat-v{font-size:21px;font-weight:650;line-height:1.25;margin:3px 0 2px}
.mk-stat.alarm .mk-stat-v{color:var(--down)}
.mk-dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:0}
/* тепловые таблицы: повод × для кого, сезонность */
.tb .heat{transition:background .15s}
.mk-matrix td,.mk-matrix th{white-space:nowrap}
.mk-matrix .tb-total td{border-top:1px solid var(--line)}
.mk-season td.c,.mk-season th.c{min-width:44px;padding-left:4px;padding-right:4px}
.mk-season .on{outline:1px solid rgba(210,153,34,.8);outline-offset:-1px}

/* Столбики из частей и линия поверх (chCombo) */
.ch-combo{margin:6px 0 4px}
.ch-combo-plot{position:relative;display:flex;align-items:flex-end;height:170px;padding-top:18px;box-sizing:border-box}
.ch-combo-col{height:100%;display:flex;align-items:flex-end;justify-content:center}
.ch-combo-stack{display:flex;flex-direction:column-reverse;height:100%;width:62%}
.ch-combo-stack i{display:block;width:100%;min-height:0}
.ch-combo-stack i:last-child{border-radius:3px 3px 0 0}
.ch-combo-col.on .ch-combo-stack{outline:1px solid rgba(210,153,34,.9);outline-offset:2px}
.ch-combo-col.ch-click{cursor:pointer}
.ch-combo-col.ch-click:hover .ch-combo-stack{filter:brightness(1.3)}
/* линия и точки — в одной системе координат со столбиками: без верхнего запаса */
.ch-combo-over{position:absolute;left:0;right:0;top:18px;bottom:0;pointer-events:none}
.ch-combo-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ch-combo-line polyline{fill:none;stroke:#e6e9ef;stroke-width:2;vector-effect:non-scaling-stroke;opacity:.85}
.ch-combo-dot,.ch-combo-lv{position:absolute;pointer-events:none}
.ch-combo-dot{width:8px;height:8px;border-radius:50%;background:#e6e9ef;border:2px solid var(--panel);
  transform:translate(-50%,-50%)}
.ch-combo-lv{transform:translate(-50%,-165%);font-size:10.5px;font-weight:600;color:var(--tx);
  white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.8)}
.ch-cols-labels span.on{color:var(--warn);font-weight:600}
.ch-leg-line{width:14px !important;height:2px !important;border-radius:1px;background:#e6e9ef}
/* «Снабжение»: шесть цифр сверху — закупки, доля в выручке, из них гелий, шары,
   цветы и отказы — читаются слева направо одной строкой; плитки сравнения
   с тремя полосами шире, их по три в ряд. */
.sp-kpi{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.sp-cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1100px){.sp-kpi{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1000px){.sp-cmp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.sp-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-cmp{grid-template-columns:1fr}}
@media (max-width:520px){.sp-kpi{grid-template-columns:1fr}}
/* «Доставка»: шесть цифр и плитки сравнения — те же сетки .sp-kpi и .sp-cmp.
   Часы доставки: день недели × начало окна, узкие колонки, как у сезонности. */
.dl-hours td.c,.dl-hours th.c{min-width:40px;padding-left:4px;padding-right:4px;white-space:nowrap}
.dl-t .tb-total td,.dl-hours .tb-total td{border-top:1px solid var(--line)}
/* Причина отказа из переписки: цитата под строкой, сводка категорий над списком */
.dl-quote{font-style:italic;margin-top:2px;white-space:normal;max-width:420px}
.dl-why-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
/* Цели доставки (решение владельца 07.10): строка под цифрой карточки и плитки */
.dl-goal{font-size:12px;color:var(--tx2);margin-top:4px}
.dl-goal.ok{color:var(--up)}
.dl-goal.bad{color:var(--down)}
.ctile .dl-goal{margin:-2px 0 8px}
.pace-note{font-size:11.5px;color:var(--tx3);line-height:1.5;margin-top:6px}

/* ABC: молчащие группы B — жёлтым, свёрнутые списки групп под кольцом (29.09) */
.abc-alarm.warn{background:rgba(210,153,34,.1);border-color:rgba(210,153,34,.35)}
.abc-alarm.warn b{color:var(--warn)}
.abc-lists{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.abc-lists details.fold{margin-top:4px}
/* ── поступления денег (ДДС) на «Сводке», main.js cashPanel ──────────── */
.cash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.cash-t{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.cash-l{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3)}
.cash-v{font-size:22px;font-weight:650;margin-top:2px}
.cash-v.down{color:var(--down)}
.cash-s{font-size:11.5px;color:var(--tx3);margin-top:2px}
.sw.cash-exp{background:var(--panel3);border:1px dashed var(--tx3)}
.cash-cov{font-size:12px;color:var(--tx2);margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
/* «Финансы», экономика заказов: сколько сделок периода уже с ручной себестоимостью */
.fin-cover{display:flex;gap:14px;align-items:baseline;margin-top:10px;padding:12px 14px;
  background:var(--panel2);border:1px solid var(--line);border-radius:9px}
.fin-cover-v{font-size:22px;font-weight:650;white-space:nowrap}
.fin-cover-t{font-size:12.5px;color:var(--tx2);line-height:1.5}
@media (max-width:600px){.fin-cover{flex-direction:column;gap:4px}}
/* «Экономика заказов»: расхождение с ручным расчётом больше 10% — ниже ручного красным
   (недосчитали себестоимость — маржа завышена), выше — жёлтым */
.fin-dev-lo{color:var(--down);font-weight:600}
.fin-dev-hi{color:var(--warn);font-weight:600}
/* Маржинальность: от 75% — зелёный, 60–75% — жёлтый, ниже 60% — красный (владелец 07.10) */
.fin-m-good{color:var(--up);font-weight:600}
.fin-m-mid{color:var(--warn);font-weight:600}
.fin-m-bad{color:var(--down);font-weight:600}

/* ══ ЗАДАЧИ (tasks.js) ════════════════════════════════════════════════
   Простой экран (решение владельца 29.09): строка ввода, «Сегодня»,
   свёрнутые строки. Меньше рамок, меньше меток, больше воздуха. */

/* Кнопка «Задачи» в шапке — рядом с «Инфо», выделена, со счётчиком на сегодня */
.btn-tasks{display:inline-flex;align-items:center;gap:6px;background:rgba(76,141,255,.14);color:var(--tx);
  border:1px solid rgba(76,141,255,.6);border-radius:7px;padding:6px 14px;font-size:13px;font-weight:600}
.btn-tasks:hover{background:rgba(76,141,255,.24)}
.btn-tasks.on{background:var(--accent2);border-color:var(--accent2);color:#fff}
.tb-n{min-width:18px;height:18px;line-height:18px;border-radius:9px;padding:0 5px;text-align:center;
  font-size:11px;background:var(--accent);color:#fff}
.tb-n.late{background:var(--down)}
.btn-tasks.on .tb-n{background:#fff;color:var(--accent2)}
.btn-tasks.on .tb-n.late{color:var(--down)}

.tk{max-width:860px}
.tk-cap{display:flex;gap:8px}
.tk-cap input,.tk-in,.tk select,.tk-ed input:not([type=checkbox]),.tk-ed select,.tk-ed textarea,.tk-notes{
  background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--tx);
  padding:9px 11px;font-size:14px;font-family:inherit}
.tk-cap input{flex:1;min-width:0;padding:12px 14px;font-size:15px}
.tk-cap .btn-primary{font-size:20px;line-height:1;padding:0 18px}
.tk input:focus,.tk textarea:focus,.tk select:focus,.tk-ed input:focus,.tk-ed textarea:focus{outline:none;border-color:var(--accent)}
.tk-prev{min-height:18px;margin:5px 4px 8px;font-size:12.5px;color:var(--accent)}
.tk-flash{border-left:2px solid var(--accent);padding:6px 12px;margin:0 0 12px;font-size:13px;color:var(--tx2)}
.tk-flash .btn-ghost{margin-left:6px}


.tk-main,.tk-more{padding:6px 18px 10px}
.tk-h{display:flex;align-items:baseline;gap:10px;padding:8px 0 6px}
.tk-h b{font-size:18px}
.tk-date{color:var(--tx3);font-size:13px}
.tk-save{margin-left:auto;font-size:11.5px;color:var(--tx3)}
.tk-save.bad{color:var(--down)}
.tk-h2{font-size:12px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 2px}

.tk-r{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(255,255,255,.04)}
.tk-r:first-child{border-top:none}
.tk-ck{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--tx3);background:none;flex:none;padding:0;
  color:var(--up);font-size:12px;display:flex;align-items:center;justify-content:center}
.tk-ck:hover{border-color:var(--up);background:rgba(63,185,80,.15)}
.tk-ck.on{border-color:var(--up)}
.tk-t{flex:1;min-width:0;background:none;border:none;color:var(--tx);text-align:left;padding:0;font-size:14.5px;line-height:1.4}
button.tk-t:hover{color:#fff}
.tk-r.imp .tk-t{font-weight:600}
.tk-who{color:var(--accent);font-weight:600}
.tk-sub{display:block;font-size:12.5px;color:var(--tx3);font-weight:400;margin-top:2px}
.tk-m{font-size:12.5px;color:var(--tx3);white-space:nowrap}
.tk-m a{color:var(--accent);text-decoration:none}
.tk-bad{color:var(--down)}
.tk-new{color:var(--accent)}
.tk-good{font-size:12.5px;color:var(--up);margin:6px 0}
.tk-ack{background:none;border:1px dashed rgba(210,153,34,.6);color:var(--warn);border-radius:5px;padding:0 5px;font-size:11.5px}
.tk-star,.tk-imp{background:none;border:none;color:var(--tx3);opacity:.45;font-size:15px;padding:0 2px;flex:none}
.tk-star:hover,.tk-imp:hover{opacity:1}
.tk-star.on{color:var(--warn);opacity:1}
.tk-imp{font-weight:700;width:16px}
.tk-imp.on{color:var(--accent);opacity:1}
.tk-act{display:flex;gap:4px;flex-wrap:wrap}
.tk-r.reg .tk-t{color:var(--tx2);cursor:pointer}
.tk-r.reg.ok .tk-t{color:var(--tx3);text-decoration:line-through}
.tk-rck{width:18px;height:18px;margin:0 1px;flex:none;accent-color:var(--up)}
.tk-empty{font-size:13.5px;color:var(--tx3);padding:10px 0}

.tk-more{margin-top:12px}
.tk-fold{border-top:1px solid var(--line)}
.tk-fold:first-child{border-top:none}
.tk-fhr{display:flex;align-items:center;gap:10px}
.tk-fh{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:none;border:none;color:var(--tx);
  padding:11px 0;text-align:left;font-size:15px}
.tk-fh b{font-weight:600;min-width:74px}
.tk-fm{flex:1;min-width:0;font-size:12.5px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-car{color:var(--tx3);font-size:11px}
.tk-fb{padding:0 0 10px}

.tk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 5px 1px 6px;background:var(--tx3)}
.tk-dot.st-green{background:var(--up)} .tk-dot.st-amber{background:var(--warn)} .tk-dot.st-red{background:var(--down)}
.tk-pr{padding:6px 0;border-top:1px solid rgba(255,255,255,.04)}
.tk-pr:first-child{border-top:none}
.tk-prh{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--tx);text-align:left;padding:4px 0;font-size:14.5px}
.tk-prh b{flex:1;font-weight:600}
.tk-prh .tk-dot{margin-left:0}
.tk-num{font-size:12.5px;color:var(--tx3);margin:2px 0 4px 16px}
.tk-num b{color:var(--tx)}
.tk-prb{padding:4px 0 8px 16px}
.tk-pst{margin:4px 0 8px;display:inline-flex}
.tk-crit{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font-size:13.5px;color:var(--tx2);cursor:pointer}
.tk-crit input{margin-top:3px;accent-color:var(--up)}
.tk-crit.ok span{color:var(--tx3);text-decoration:line-through}

.tk-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.tk-form .grow{flex:1 1 200px;min-width:0}
.tk-n{width:80px}
.tk-err{color:var(--down);font-size:13px}

.tk-pp{display:flex;align-items:center;gap:10px;padding:7px 0}
.tk-ppn{flex:1;background:none;border:none;color:var(--tx);text-align:left;padding:0;font-size:14.5px}
.tk-ppn span{color:var(--tx3);font-size:13px}
.tk-pp.on .tk-ppn b{color:var(--accent)}
.tk-pc{padding:4px 0 10px 14px;border-left:2px solid var(--line);margin-left:2px}
.tk-pcl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}


.tk-mh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.tk-mh span{color:var(--tx3);font-size:13px}
.tk-mh .btn-ghost:last-child{margin-left:auto}
.tk-agenda{margin:4px 0 8px;padding-left:20px;font-size:13.5px;line-height:1.75;color:var(--tx2)}
.tk-notes{width:100%;resize:vertical;margin-top:6px}
.tk-decide{flex:1 1 100%}
.tk-decide .tk-in{flex:1 1 200px;min-width:0}
.tk-copy{width:100%;margin-top:8px;background:var(--panel2);border:1px solid var(--line);border-radius:7px;
  color:var(--tx);padding:8px 10px;font:12.5px/1.5 inherit;resize:vertical}

.tk-rh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.tk-rh b{font-size:17px}
.tk-steps{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.tk-steps button{background:none;border:none;border-bottom:2px solid transparent;color:var(--tx3);padding:4px 8px;font-size:13px}
.tk-steps button.was{color:var(--tx2)}
.tk-steps button.on{color:var(--tx);border-bottom-color:var(--accent)}
.tk-rbody{padding:10px 18px}
.tk-rfoot{display:flex;justify-content:flex-end;gap:10px}
.tk-mx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:860px){.tk-mx{grid-template-columns:1fr}}
.tk-q{border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.tk-q.ui{border-color:rgba(248,81,73,.35)} .tk-q.ni{border-color:rgba(63,185,80,.45)}
.tk-qh{font-size:13px;font-weight:600;color:var(--tx2);margin-bottom:2px}
.tk-day{padding:4px 6px!important;font-size:12px!important}
.tk-load{display:flex;gap:10px;align-items:flex-end;margin:6px 0 12px}
.tk-ld{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;color:var(--tx3)}
.tk-ld b{color:var(--tx);font-size:12.5px}
.tk-ldb{width:24px;height:60px;background:var(--panel2);border-radius:5px;display:flex;align-items:flex-end;overflow:hidden}
.tk-ldb i{display:block;width:100%;background:var(--accent);border-radius:5px}
.tk-ld.over .tk-ldb i{background:var(--down)}
.tk-mir .card{min-height:0}

.tk-modal{align-items:flex-start;overflow-y:auto}
.tk-ed{max-width:560px;margin:40px 0;display:flex;flex-direction:column;gap:10px}
.tk-ed textarea,.tk-ed input:not([type=checkbox]):not([type=date]){width:100%}
.tk-ed #tkEdT{font-size:15px}
.tk-f2{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tk-f2 select{flex:1 1 160px}
.tk-qd{display:flex;gap:5px;flex-wrap:wrap}
.tk-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tx2);white-space:nowrap}
.tk-chk input[type=checkbox]{width:16px;height:16px;accent-color:var(--up)}
.tk-morebtn{align-self:flex-start;background:none;border:none;color:var(--tx3);padding:0;font-size:12.5px}
.tk-morebtn:hover{color:var(--tx)}
#tkEdDeleg,#tkEdMore{display:flex;flex-direction:column;gap:8px}
#tkEdDeleg[hidden],#tkEdMore[hidden]{display:none}
.tk-edb{flex-wrap:wrap;margin-top:6px}
.tk-sp{flex:1}
@media (max-width:820px){
  .tk-main,.tk-more,.tk-rbody{padding-left:14px;padding-right:14px}
  .tk-m{white-space:normal}
  .tk-steps{margin-left:0}
  .btn-tasks{padding:5px 10px}
}

/* Разделы задачника в строке вкладок, лёгкие кнопки ритуалов (29.09, третья волна) */
.tabs.tk-nav{align-items:center}
.tabs.tk-nav button{display:inline-flex;align-items:center;gap:6px}
.tk-cnt{font-size:11px;font-weight:600;color:var(--accent);background:rgba(76,141,255,.14);border-radius:9px;padding:1px 7px}
.tk-cnt.g{color:var(--tx2);background:var(--panel3)}
.tk-cnt.r{color:var(--down);background:rgba(248,81,73,.14)}
.tabs button.tk-gear{font-size:15px;padding:6px 10px}
.tk-ritbtn{flex:none;background:none;border:1px solid rgba(76,141,255,.45);color:var(--accent);border-radius:14px;
  padding:3px 11px;font-size:12px;white-space:nowrap}
.tk-ritbtn:hover{border-color:var(--accent);background:rgba(76,141,255,.08)}
.tk-link{background:none;border:none;color:var(--tx3);padding:0 4px;font-size:12px;text-decoration:underline;text-decoration-color:var(--line)}
.tk-link:hover{color:var(--tx)}
.tk-note{font-size:13px;color:var(--tx2);padding:6px 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tk-find{margin:0 0 12px}
@media (max-width:820px){
  /* строка задачи в две строки: текст целиком, под ним срок и кнопки */
  .tk-r{flex-wrap:wrap;row-gap:4px}
  .tk-r .tk-t{flex:1 1 calc(100% - 64px)}
  .tk-r .tk-m,.tk-r .tk-act,.tk-r .tk-day{order:3;margin-left:30px}
  .tk-r .tk-act{margin-left:0}
  /* кнопка ритуала — под заголовком строки, чтобы не съедала сводку */
  .tk-fhr{flex-wrap:wrap}
  .tk-fhr .tk-fh{flex:1 1 100%}
  .tk-fhr .tk-ritbtn{margin:-4px 0 10px}
  .tk-r.reg{flex-wrap:nowrap}
  .tk-r.reg .tk-m{order:0;margin-left:0}
}

/* Горизонты в шапке и списки строкой (29.09, четвёртая волна) */
.seg.tk-hz{align-items:center}
.seg.tk-hz button{display:inline-flex;align-items:center;gap:5px}
.tk-rdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.seg.tk-hz button.tk-arch{margin-left:6px;border-left:1px solid var(--line);border-radius:0 6px 6px 0;color:var(--tx3);font-size:12px}
.seg.tk-hz button.tk-arch.on,.seg.tk-hz button.tk-arch:hover{color:var(--tx)}
.tabs button.tk-aib{color:#b89bff}
.tabs button.tk-aib.on{color:#d4c4ff}
.tk-cnt.ai{color:#b89bff;background:rgba(168,121,255,.16)}
.tk-h .tk-ritbtn:first-of-type{margin-left:auto}
.tk-ck.x{border-color:var(--tx3);color:var(--tx3);font-size:11px}
@media (max-width:820px){
  .seg.tk-hz button.tk-arch{margin-left:2px}
}

/* Шестая–восьмая волны: строка задачника — Заметки · Рекомендации ИИ ·
   Сотрудники · Протоколы встреч (06.10: «Ещё» раскрыто, «Сегодня» — в шапке).
   Вбок не листается нигде (решение владельца 29.09) */
.tabs.tk-nav{overflow:visible;flex-wrap:wrap;row-gap:6px}
/* стрелка раскрытия: у выпадающих списков вниз, у свёрнутого сотрудника — вправо */
.tk-chev{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;
  stroke-linejoin:round;opacity:.75;transition:transform .15s}
.tk-hzw.open > button .tk-chev{transform:rotate(180deg)}
.tk-hzw{position:relative;display:inline-flex}
.tk-hzw > button{display:inline-flex;align-items:center;gap:6px}
.tk-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:30;flex-direction:column;
  align-items:stretch;gap:2px;padding:6px;min-width:210px;background:var(--panel2);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.45)}
.tk-hzw.open .tk-menu{display:flex}
.tk-menu button{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;
  background:none;border:none;color:var(--tx2);padding:8px 12px;border-radius:7px;font-size:13.5px}
.tk-menu button:hover{background:var(--panel3);color:var(--tx)}
.tk-menu button.on{background:var(--panel3);color:var(--tx);font-weight:600}
.tk-sm{display:none}
/* сотрудники: стрелка слева от имени — свернуть и развернуть; сверху — «свернуть всех» */
.tk-pp{flex-wrap:wrap;row-gap:4px;border-top:1px solid rgba(255,255,255,.04);padding:8px 0 6px}
.tk-pp:first-child{border-top:none}
.tk-ppn{flex:0 1 auto;display:inline-flex;align-items:center;gap:7px;margin-left:-6px;padding:4px 8px 4px 6px;
  border-radius:7px;cursor:pointer}
.tk-ppn:hover{background:var(--panel2)}
.tk-ppn .tk-chev{width:14px;height:14px;color:var(--tx);opacity:.85}
.tk-pp.shut .tk-ppn .tk-chev{transform:rotate(-90deg)}
.tk-ppn.none{cursor:default}
.tk-ppn.none:hover{background:none}
.tk-chev-sp{display:inline-block;width:14px;flex:none}
.tk-pp .tk-m{flex:1;min-width:140px}
.tk-ppc{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
.tk-h .tk-ppall{margin-left:auto;font-size:12.5px}
/* период в шапке телефона: «Сегодня», «Завтра» и выпадающий список остального — только на узком экране */
.tk-hzc{display:none}
@media (max-width:820px){
  /* телефон: имя и кнопки — первой строкой, сводка — второй */
  .tk-pp .tk-m{order:3;flex-basis:100%;min-width:0;padding-left:21px}
  /* шапка: разделы одной строкой на всю ширину, кнопки делят её поровну; вбок не листается */
  .top-in .seg.tk-hz{flex-wrap:wrap}
  .seg.tk-hz button{flex:1 1 auto;justify-content:center}
}
@media (max-width:560px){
  /* телефон: рядом с логотипом — «Сегодня», «Завтра» и «Период ⌄» (решения владельца 29.09 и 06.10),
     строка разделов — 2×2 */
  .top-in .seg.tk-hz{display:none}
  /* в первой строке шапки — логотип, период и «Задачи»: не переносим, длинное название периода сжимается */
  .top-in:has(.tk-hzc){flex-wrap:nowrap;gap:6px}
  /* число на «Задачах» внутри самой вкладки не нужно — его место отдаём периоду */
  .top-in:has(.tk-hzc) #tasksN{display:none}
  .top-in:has(.tk-hzc) .logo-cup{height:30px}
  .tk-hzc{display:flex;order:2;flex:0 1 auto;min-width:0;align-items:center;gap:4px}
  .tk-hzc > button,.tk-hzw > button{background:var(--panel2);border:1px solid var(--line);color:var(--tx2);
    border-radius:8px;padding:6px 7px;font-size:12.5px;white-space:nowrap}
  .tk-hzc > button.on,.tk-hzw > button.on{background:var(--panel3);color:var(--tx);font-weight:600}
  .tk-hzw{min-width:0}
  .tk-hzw > button{min-width:0;gap:4px}
  .tk-hzl{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .tk-hzw .tk-menu{left:0;right:auto;min-width:180px}
  .tabs.tk-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .tabs.tk-nav > button{width:100%;min-width:0;justify-content:center;border:1px solid var(--line);
    border-radius:9px;background:rgba(255,255,255,.02);padding:7px 6px;white-space:nowrap}
  .tabs.tk-nav > button.on{background:var(--panel3)}
}
@media (max-width:340px){
  .tk-lg{display:none}
  .tk-sm{display:inline}
}
/* совет ИИ в задачнике: стрелка перед действием — в строку, а не отдельной строкой */
.tk .rec-line b{display:inline;margin:0 4px 0 0;font-size:13.5px;letter-spacing:0}
.tk .rec-line:first-child{color:var(--tx2)}

/* Шапка ЦУП на телефоне (29.09): дата со стрелками была шире места — стрелки
   наезжали на логотип и на «Задачи» (у даты оставалась ширина 170 пикселей
   с широкого экрана). Здесь дата мельче и переносится, «обновлено …» под ней
   не показываем — на телефоне эта строка не нужна (решение владельца) */
@media (max-width:820px){
  .top-in .ov-period{min-width:0;flex:0 1 auto;font-size:11.5px;font-weight:600;line-height:1.2;white-space:normal}
  .top-in .ov-upd{display:none}
  .top-in .ov-nav .btn-ghost{flex:none}
}

/* Восьмая волна (06.10): сделанное — внизу «Сегодня», заметки вместо «Неразобранных» */
/* отмеченное сегодня: зачёркнуто, внизу своего списка; галочку можно снять */
.tk-r.done .tk-t{color:var(--tx3);text-decoration:line-through;font-weight:400}
.tk-r.done .tk-who{color:var(--tx3)}
button.tk-ck.on:hover{border-color:var(--tx3);background:none;color:var(--tx3)}
/* заметки: поле «как есть» (оформление — общее у полей .tk-in), карточки записей, фразы нажимаются.
   Подсветка — от --rose, где она есть (тема витрины Виты, theme-vita.css), иначе от --accent */
.tk-memnew textarea{width:100%;resize:vertical;min-height:84px;line-height:1.45;display:block;font-size:14.5px}
.tk-memnew .tk-form{margin:8px 0 4px}
.tk-memo{border-top:1px solid var(--line);padding:10px 0 8px}
.tk-memh{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.tk-memh .tk-date{margin-right:auto}
.tk-memb p{margin:0 0 6px;font-size:14.5px;line-height:1.6;color:var(--tx)}
.tk-ms{cursor:pointer;border-radius:4px;padding:1px 2px;margin:0 -2px;-webkit-tap-highlight-color:transparent}
.tk-ms:hover,.tk-ms:active{background:rgba(76,141,255,.14);background:color-mix(in srgb,var(--rose,var(--accent)) 16%,transparent)}
.tk-ms.used{cursor:default;color:var(--tx3);text-decoration:line-through}
.tk-ms.used:hover,.tk-ms.used:active{background:none}
.tk-mtag{background:none;border:1px solid rgba(76,141,255,.4);color:var(--rose-deep,var(--accent));border-radius:10px;
  padding:0 7px;font-size:12px;line-height:18px;white-space:nowrap;vertical-align:1px;
  border-color:color-mix(in srgb,var(--rose,var(--accent)) 45%,transparent)}
.tk-mtag:hover{border-color:var(--rose,var(--accent))}
.tk-memo.shut{display:flex;align-items:flex-start;gap:8px;padding:6px 0}
.tk-memo.shut details{flex:1;min-width:0}
.tk-memo.shut summary{cursor:pointer;font-size:13.5px;color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-memo.shut .tk-memb{padding:6px 0 0 14px}
.tk-memo.shut .tk-memb p{color:var(--tx2);font-size:13.5px}
@media (max-width:820px){
  .tk-memb p{font-size:15px}
  .tk-memo.shut summary{white-space:normal}
}
/* шапка телефона: рядом с логотипом теперь три кнопки (Сегодня, Завтра, Период) —
   отступы плотнее, чтобы «Период» не сжимался до буквы на 360 пикселях */
@media (max-width:560px){
  .top-in:has(.tk-hzc){gap:4px;padding-left:10px;padding-right:10px}
  .top-in:has(.tk-hzc) .logo-cup{height:24px}
  .top-in:has(.tk-hzc) .who{gap:5px}
  .top-in:has(.tk-hzc) .btn-tasks{padding:5px 6px;font-size:12.5px}
  .top-in:has(.tk-hzc) .who > .btn-ghost.sq{padding-left:8px;padding-right:8px}
  .tk-hzc{gap:3px}
  .tk-hzc > button,.tk-hzw > button{padding:6px 5px;font-size:12px}
  .tk-hzw > button{gap:3px}
}

/* Плюсик «взять на сегодня» (06.10): в неделе, месяце, квартале и завтра; взята — «сегодня»,
   в самом «Сегодня» — «−» убрать. Подсветка — как у меток заметок */
.tk-pick{flex:none;background:none;border:1px solid var(--line);color:var(--tx2);border-radius:12px;
  min-width:26px;height:24px;padding:0 7px;font-size:15px;line-height:22px;text-align:center}
.tk-pick:hover{border-color:var(--rose,var(--accent));color:var(--tx)}
.tk-pick.on{font-size:12px;color:var(--rose-deep,var(--accent));border-color:rgba(76,141,255,.4);
  border-color:color-mix(in srgb,var(--rose,var(--accent)) 45%,transparent)}
.tk-pick.out{color:var(--tx3);border-color:transparent}
.tk-pick.out:hover{border-color:var(--line);color:var(--tx)}
@media (max-width:820px){
  /* телефон: плюсик — в первой строке рядом с текстом, срок — второй строкой */
  .tk-r:has(.tk-pick) .tk-t{flex-basis:calc(100% - 100px)}
  .tk-pick{height:28px;min-width:30px;line-height:26px}
}

/* Регулярные правятся на месте (06.10): строка без кружка-галочки — на телефоне текст
   целиком первой строкой, под ним «когда» слева и ✎ ✕ справа; правка — полями в строке */
.tk-regedit{padding:10px;margin:6px 0;background:var(--panel2);border:1px solid var(--line);border-radius:8px}
@media (max-width:820px){
  .tk-r.rg .tk-t{flex-basis:100%}
  .tk-r.rg .tk-m{margin-left:0}
  .tk-r.rg .tk-act{margin-left:auto}
}

/* Советы ИИ, по которым не решили (07.10): копятся ниже сегодняшних — приглушённые, с датой.
   При наведении и пока пишут причину отказа — ярче */
.recs.old .rec{opacity:.58;background:transparent}
.recs.old .rec:hover,.recs.old .rec:focus-within{opacity:.95}
/* Переданные заказы: полоса «у нас / подрядчикам» с легендой отделена
   от таблицы — без отступа подписи упирались в шапку таблицы (07.10). */
.pr-split{margin:4px 0 22px}
/* Норма по переданным заказам (07.10): у нас не меньше 60%. Строка итога над
   полосой, черта нормы на полосе, красный — только итог периода ниже нормы. */
.pr-norm{font-size:13px;margin:0 0 8px;color:var(--tx2)}
.pr-norm b{color:var(--tx)}
.pr-norm.ok b{color:var(--up)}
.pr-norm.bad,.pr-norm.bad b{color:var(--down)}
.pr-split-bar{position:relative}
.pr-norm-mark{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;
  background:var(--tx);opacity:.85;border-radius:1px}
.pr-bad{color:var(--down)}
.pr-below{font-size:13px;margin:14px 0 6px;color:var(--tx2)}
.pr-below.bad b{color:var(--down)}

/* Взятие в работу: время ожидания цветом нормы (решение владельца 07.10) */
.take-chip{display:inline-block;padding:1px 8px;border-radius:5px;font-weight:600;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.take-chip.g{color:var(--up);background:rgba(63,185,80,.12)}
.take-chip.y{color:var(--warn);background:rgba(210,153,34,.14)}
.take-chip.r{color:var(--down);background:rgba(248,81,73,.13)}
.take-chip.big{font-size:22px;padding:2px 10px}

/* Разбор сделок по чек-листу (решение владельца 07.10): сделка — одна строка
   с семью кружками этапов, раскрывается по клику */
.ck-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;
  vertical-align:middle;flex:none}
.ck-dot.g{background:var(--up)}.ck-dot.y{background:var(--warn)}.ck-dot.r{background:var(--down)}
.ck-dot.n{border:1.5px solid var(--tx3);width:9px;height:9px}
.ck-cell{display:inline-block;min-width:44px;padding:2px 6px;border-radius:5px;font-weight:600;
  font-variant-numeric:tabular-nums}
.ck-cell.g{color:var(--up);background:rgba(63,185,80,.12)}
.ck-cell.y{color:var(--warn);background:rgba(210,153,34,.14)}
.ck-cell.r{color:var(--down);background:rgba(248,81,73,.13)}
.ck-cell.n{color:var(--tx3)}
.ck-order{font-size:11.5px;color:var(--tx3);margin:0 0 4px}
details.ck-deal{border-top:1px solid var(--line)}
details.ck-deal>summary{list-style:none;cursor:pointer;display:grid;
  grid-template-columns:90px minmax(90px,1fr) auto 70px;align-items:center;gap:12px;
  padding:8px 2px;font-size:13px}
details.ck-deal>summary::-webkit-details-marker{display:none}
details.ck-deal>summary:hover{background:var(--panel2)}
details.ck-deal[open]>summary{background:var(--panel2)}
.ck-mgr{color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-dots{display:flex;gap:2px}
.ck-sc{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.ck-sc.g{color:var(--up)}.ck-sc.y{color:var(--warn)}.ck-sc.r{color:var(--down)}
.ck-body{padding:6px 4px 14px 104px;font-size:13px}
.ck-stage{margin:6px 0}.ck-st{font-size:11.5px;color:var(--tx3);text-transform:uppercase;
  letter-spacing:.04em;margin-bottom:2px}
.ck-line{padding:1px 0}.ck-note{color:var(--tx2)}
.ck-improve{margin-top:10px;padding:8px 10px;border-radius:7px;background:var(--panel2)}
.ck-src{margin-top:6px;font-size:11.5px;color:var(--tx3)}
.ck-silent{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--tx2)}
@media (max-width:640px){
  details.ck-deal>summary{grid-template-columns:70px 1fr 54px;gap:8px}
  details.ck-deal>summary .ck-mgr{display:none}
  .ck-body{padding-left:6px}
}

/* «Разбор сделок», вид 07.10: этапы колонками, сортировка, фильтр, итог */
.ck-grid-wrap{margin-bottom:22px}
.ck-mgr-row{cursor:pointer}.ck-mgr-row:hover td{background:var(--panel2)}
.ck-mgr-row.on td{background:var(--panel2)}.ck-mgr-row.on td:first-child{box-shadow:inset 3px 0 var(--accent)}
.ck-filter{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:13px;color:var(--tx2)}
.ck-table th.c{font-size:10.5px;white-space:nowrap;padding:6px 4px}
.ck-table td.c{padding:7px 4px}.ck-table .ck-dot{margin-right:0}
.ck-row{cursor:pointer}.ck-row:hover td,.ck-row.on td{background:var(--panel2)}
.ck-more td{padding:0;background:var(--panel2)}
.ck-more .ck-body{padding:4px 12px 14px}
.ck-sum{margin-top:22px;padding-top:4px;border-top:1px solid var(--line)}
.ck-sum-line{font-size:13.5px;margin:6px 0;line-height:1.7}
/* командные строки итога — отдельной плашкой над таблицей этапов (владелец 13.10) */
.ck-sum-lines{margin:6px 0 20px;padding:10px 14px;border-radius:8px;background:var(--panel2)}
.ck-sum-lines .ck-sum-line{margin:4px 0}
.ck-sum-tb{margin-top:6px}
/* «Сегодня» в блоке «Деньги по дням» (main.js todayBox) — вместо легенды цветов */
.today-box{background:var(--panel2);border:1px solid var(--line);border-radius:9px;
  padding:8px 14px;text-align:right;min-width:150px}
.today-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3)}
.today-v{font-size:20px;font-weight:700;line-height:1.25}
.today-s{font-size:11px;color:var(--tx3)}
@media (max-width:700px){ .today-box{text-align:left} }

/* ══ ПРОЦЕССЫ (processes.js) — карта бизнес-процессов в BPMN, решение владельца 12.10 ══
   Цвета — из переменных темы: у руководителя тёмная, у Виты своя (theme-vita.css). */
.pr-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pr-scale{font-size:12px;color:var(--tx3);min-width:40px;text-align:center}
.pr-canvas{overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel2);
  padding:8px;max-height:78vh}
.bp{display:block;font-family:inherit}
.bp-task rect{fill:color-mix(in srgb,var(--accent) 9%,var(--panel));stroke:var(--accent);stroke-width:1.5}
.bp-user circle,.bp-user path{fill:none;stroke:var(--accent);stroke-width:1.2}
.bp-gw polygon{fill:color-mix(in srgb,var(--warn) 14%,var(--panel));stroke:var(--warn);stroke-width:1.5}
.bp-gw path{stroke:var(--warn);stroke-width:3;stroke-linecap:round}
.bp-start circle{fill:color-mix(in srgb,var(--up) 14%,var(--panel));stroke:var(--up);stroke-width:2}
.bp-end circle{fill:color-mix(in srgb,var(--down) 12%,var(--panel));stroke:var(--down);stroke-width:3.5}
.bp-flow{fill:none;stroke:var(--tx2);stroke-width:1.4;stroke-linejoin:round}
.bp-arrow{fill:var(--tx2)}
.bp-text{fill:var(--tx);font-size:12px}
.bp-label{fill:var(--tx2);font-size:11px}
/* Регламенты под схемой процессов (processes.js, data-reglaments.js) */
.rg-search{width:100%;margin:0 0 6px;padding:10px 12px;font:inherit;font-size:14px;color:var(--tx);
  background:var(--panel2);border:1px solid var(--line);border-radius:8px}
.rg-search:focus{outline:none;border-color:var(--accent)}
.rg-sec{margin:18px 0 6px}
.rg-item{border-top:1px solid var(--line)}
.rg-item>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;
  padding:10px 2px;font-weight:600}
.rg-item>summary::-webkit-details-marker{display:none}
.rg-item>summary::before{content:"▸";color:var(--tx3);margin-right:8px}
.rg-item[open]>summary::before{content:"▾"}
.rg-title{flex:1}
.rg-date{font-size:11.5px;color:var(--tx3);font-weight:400;white-space:nowrap}
.rg-body{white-space:pre-wrap;font-size:13.5px;line-height:1.55;color:var(--tx2);padding:0 4px 14px 22px;
  max-height:70vh;overflow:auto}
.rg-body a{color:var(--accent)}
.rg-gap{color:var(--tx3);font-style:italic;font-size:12.5px}
.rg mark{background:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--tx);border-radius:2px}
/* «Процессы» v3 (13.10, вариант «Storm рисует, ЦУП показывает»): поиск сверху, карта компании,
   процесс с крошками и паспортом, схема по ширине блока и по центру, карточка шага сбоку */
.pr-search-w{margin:0 0 16px}
.pr-find{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:6px 18px;margin-top:6px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.pr-find-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);margin:2px 0 4px}
.pr-find-i{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--line);
  padding:7px 4px;color:var(--tx);font:inherit;font-size:13px;cursor:pointer}
.pr-find-i:hover{background:var(--panel2)}
.pr-find-p{font-size:11.5px;color:var(--tx3);margin-left:8px}
.pr-find-s{display:block;font-size:12.5px;color:var(--tx2);margin-top:2px}
.pr-find-more{font-size:12px;color:var(--tx3);padding:6px 4px}
.pr-find mark{background:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--tx);border-radius:2px}
/* карта компании: три полосы, «основные» — цепочкой стрелок */
.pm-roles{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 14px}
.pm-roles-l{font-size:12px;color:var(--tx3);margin-right:2px}
.pm-role{font:inherit;font-size:12px;background:transparent;color:var(--tx2);border:1px solid var(--line);
  border-radius:999px;padding:3px 11px;cursor:pointer}
.pm-role:hover{color:var(--tx)}
.pm-role[aria-pressed="true"]{border-color:var(--accent);color:var(--tx);background:color-mix(in srgb,var(--accent) 16%,transparent)}
.pm-band{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;margin-bottom:10px}
.pm-band-h{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);padding-top:10px}
.pm-row{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px}
.pm-blk{font:inherit;text-align:left;cursor:pointer;color:var(--tx);background:var(--panel2);border:1px solid var(--line);
  border-radius:9px;padding:10px 12px;display:grid;gap:8px;align-content:space-between;min-height:76px;
  transition:opacity .15s,border-color .15s,background .15s}
.pm-blk:hover{border-color:var(--tx3)}
.pm-blk.on,.pm-blk.hl{border-color:var(--accent)}
.pm-blk.on{box-shadow:0 0 0 1px var(--accent) inset}
.pm-blk.dim{opacity:.3}
.pm-blk:focus-visible,.pm-role:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pm-t{font-size:13.5px;font-weight:600;line-height:1.3}
.pm-st{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--tx2)}
.pm-st i{width:8px;height:8px;border-radius:50%;background:var(--tx3);flex:none}
.st-scheme i{background:var(--up)}
.st-draft i{background:var(--accent)}
.st-reg i{background:var(--warn)}
.pm-chain .pm-blk{border:none;border-radius:0;padding-left:24px;padding-right:22px;
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%)}
.pm-chain .pm-blk:first-child{padding-left:14px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%)}
.pm-chain .pm-blk:hover{background:var(--panel3)}
.pm-chain .pm-blk.on,.pm-chain .pm-blk.hl{background:color-mix(in srgb,var(--accent) 22%,var(--panel2));box-shadow:none}
.pm-info{margin-top:10px;font-size:13px;color:var(--tx2);background:var(--panel2);border:1px dashed var(--line);
  border-radius:8px;padding:9px 12px;line-height:1.6}
.pm-info b{color:var(--tx)}
.pm-role-g{margin-top:6px;display:flex;flex-wrap:wrap;gap:2px 14px;align-items:baseline}
.pm-role-g>b{font-size:12px;color:var(--tx3);font-weight:600}
@media (max-width:900px){
  .pm-band{grid-template-columns:1fr;gap:6px}
  .pm-band-h{padding-top:0}
  .pm-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pm-chain .pm-blk,.pm-chain .pm-blk:first-child{clip-path:none;border:1px solid var(--line);border-radius:9px;padding:10px 12px}
}
/* процесс: крошки, заголовок, паспорт */
.pr-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;color:var(--tx3);margin-bottom:8px}
.pr-crumb{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer}
.pr-crumb:hover{text-decoration:underline}
.pr-crumbs b{color:var(--tx);font-weight:600}
.pr-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:10px}
.pr-title h2{font-size:19px}
/* название процесса сворачивает весь блок: паспорт, схему, карточку (владелец 13.10) */
.pr-fold{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;
  display:inline-flex;align-items:baseline;gap:8px}
.pr-fold::before{content:"▾";color:var(--tx2);font-size:16px}
.pr-fold[aria-expanded="false"]::before{content:"▸"}
.pr-fold:hover{color:var(--accent)}
.pr-fold:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.pr-proc .pr-title:only-child{margin-bottom:0}
.pr-h{font-size:15px;font-weight:600}
.pr-tag{font-size:11.5px;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);
  border-radius:999px;padding:2px 9px}
.pr-pass{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:4px}
.pr-pass>div{background:var(--panel2);padding:9px 12px;min-width:0}
.pr-pass>div.wide{grid-column:span 2}
.pr-pass>div>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);margin-bottom:2px}
.pr-pass>div>div{font-size:13px;line-height:1.5}
.pr-none{color:var(--tx3);font-style:italic}
@media (max-width:900px){ .pr-pass{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .pr-pass{grid-template-columns:1fr} .pr-pass>div.wide{grid-column:auto} }
.pr-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;margin-bottom:10px}
.pr-more{display:inline}
.pr-more>summary{display:inline;cursor:pointer;color:var(--tx3);list-style:none;margin-left:6px}
.pr-more>summary::-webkit-details-marker{display:none}
.pr-more[open]>summary{display:none}
/* схема и карточка шага: на широком экране карточка справа, иначе под схемой
   (уже 1500 — схема сжималась бы до прокрутки вбок) */
.pr-work{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
@media (min-width:1500px){
  .pr-work.with-card{grid-template-columns:minmax(0,1fr) 340px}
  .pr-work.with-card .pr-side{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}
  .pr-work.with-card .pr-step{margin-top:0}
}
.pr-canvas{text-align:center}
.pr-canvas .bp{display:block;margin:0 auto;height:auto;min-width:880px;max-width:none}
.bp .bp-node{cursor:pointer}
.bp .bp-node:focus{outline:none}
.bp .bp-node:hover>rect.bp-box,.bp .bp-node:hover>polygon,.bp .bp-node:hover>circle,
.bp .bp-node:focus-visible>rect.bp-box,.bp .bp-node:focus-visible>polygon,.bp .bp-node:focus-visible>circle{stroke-width:2.6}
.bp .sel>rect,.bp .sel>polygon,.bp .sel>circle{stroke-width:3.2;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 60%,transparent))}
/* фигуры, которых не было в первой схеме: дорожки, подпроцессы, вызовы, другие развилки и события */
.bp-lane-box{fill:none;stroke:var(--line);stroke-width:1.2}
.bp-pool>.bp-lane-box{stroke:var(--tx3)}
.bp-lane-h{fill:color-mix(in srgb,var(--tx3) 12%,transparent);stroke:var(--line);stroke-width:1.2}
.bp-lane-t{fill:var(--tx2);font-size:12px;font-weight:600}
.bp-pool-t{fill:var(--tx);font-size:12.5px;font-weight:700}
.bp-call>rect.bp-box{stroke-width:4}
.bp .bp-sub-open{fill:color-mix(in srgb,var(--accent) 4%,transparent)}
.bp-plus rect{fill:var(--panel);stroke:var(--accent);stroke-width:1.2}
.bp-plus path{stroke:var(--accent);stroke-width:1.6}
.bp-plus[data-pr-drill]{cursor:zoom-in}
.bp-plus[data-pr-drill]:hover rect,.bp-plus[data-pr-drill]:focus-visible rect{fill:var(--accent)}
.bp-plus[data-pr-drill]:hover path,.bp-plus[data-pr-drill]:focus-visible path{stroke:#fff}
.bp-plus:focus{outline:none}
.bp-gwp polygon,.bp-gwi polygon,.bp-gwe polygon{fill:color-mix(in srgb,var(--warn) 14%,var(--panel));stroke:var(--warn);stroke-width:1.5}
.bp-gwp path{stroke:var(--warn);stroke-width:3;stroke-linecap:round}
.bp .bp-mark{fill:none;stroke:var(--warn);stroke-width:2}
.bp-inter circle{fill:color-mix(in srgb,var(--tx3) 10%,var(--panel));stroke:var(--tx2);stroke-width:1.5}
.bp .bp-ico circle,.bp .bp-ico rect,.bp .bp-ico path{fill:none;stroke:var(--tx2);stroke-width:1.3}
.bp-msg{fill:none;stroke:var(--tx2);stroke-width:1.2;stroke-dasharray:6 4}
.bp-assoc{fill:none;stroke:var(--tx3);stroke-width:1.2;stroke-dasharray:2 3}
.bp-arrow-open{fill:var(--panel2);stroke:var(--tx2)}
.bp-flow-t{fill:var(--tx2);font-size:11px;font-weight:600}
.bp-group rect{fill:none;stroke:var(--tx3);stroke-dasharray:8 4 2 4}
.bp-note path{fill:none;stroke:var(--tx3);stroke-width:1.2}
.bp-data path{fill:var(--panel);stroke:var(--tx2);stroke-width:1.2}
/* карточка шага */
.pr-step-k{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);font-weight:400}
.pr-step-f{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;padding:6px 0;font-size:13px;border-top:1px solid var(--line)}
.pr-step-f>span{color:var(--tx3);font-size:12px}
.pr-step-sub{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);margin:12px 0 0}
.pr-jump{margin:8px 0 2px}
.bp-rg rect{fill:var(--accent)}
.bp-rg text{fill:#fff;font-size:10px;font-weight:700}
.pr-step{margin-top:12px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;
  padding:10px 14px;background:var(--panel2)}
.pr-step-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.pr-step-row{padding:6px 0;border-top:1px solid var(--line)}
.pr-step-row:first-of-type{border-top:none}
.pr-rg-link,.pr-goto{background:none;border:none;padding:0;font:inherit;color:var(--accent);
  font-weight:600;cursor:pointer;text-align:left}
.pr-rg-link:hover,.pr-goto:hover{text-decoration:underline}
.pr-step-note{font-size:13px;color:var(--tx2);margin-top:2px}
.rg-back{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:12.5px;padding:0 4px 8px 22px;color:var(--tx3)}
.rg-back .pr-goto{font-size:12.5px}
.rg-item.rg-flash>summary{background:color-mix(in srgb,var(--accent) 16%,transparent);transition:background .3s}
/* «Показать все» под таблицей сделок с ошибками — как details.fold в других вкладках */
.qc-more{margin-top:8px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;
  color:var(--tx2);background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:6px 12px}
.qc-more::after{content:"▾";font-size:11px;color:var(--tx3)}
.qc-more[data-qc-all="0"]::after{content:"▴"}
.qc-more:hover{color:var(--tx);border-color:var(--panel3)}
