/* ═══════════════════════════════════════════════════════════
   «Повышение ЗП» (Раиль 26.10.2026).
   «Всё компактно, плашечки и таблицы по высоте и ширине максимально
   компактные, меньше скролла. Границы чёрные, шрифт красивый, не печатная
   машинка, всё отцентровано, ничего не прыгает».
   Строка 22 px, числа по разрядам и по центру, шрифт сайта. Ширины столбцов
   заданы заранее — пересчёт меняет только цифры, таблица не сдвигается.
   Вторая правка: границы чёрные; месяц по краям жирнее (две линии вплотную),
   факт и план внутри — тонкой; отмеченные строки — светлым цветом.
   ═══════════════════════════════════════════════════════════ */
.pz,.pz-person{
  --pz-line:var(--text-1);
  --pz-frame:var(--text-1);
  --pz-dim:color-mix(in srgb,var(--text-1) 58%,var(--surface-2));
  --pz-h:22px;
  /* Шаг 1 — свой синий: синий сайта в светлой теме почти чёрный и сливается с цифрами.
     Контраст: 6,4 на белом, 8,1 на тёмном; зелёный шага 2 — 5,2 и 8,8. */
  --pz-s1:#1F5FA8;
  --pz-s2:var(--gain);
  --pz-ck:26px;
  --pz-name:150px;
  --pz-role:136px;
  font-size:12px;color:var(--text-1);
}
.pz-loading{padding:24px 4px;color:var(--text-1);font-size:13px}
/* Общее правило сайта делает шапки таблиц прописными с разрядкой. Здесь — обычный
   шрифт: Раиль просил «красивый, не печатную машинку». */
.pz th,.pz-person th{text-transform:none;letter-spacing:0}

/* ── Верхний ряд: подразделение, вкладки, настройки ── */
.pz-top{display:flex;align-items:center;gap:12px;row-gap:6px;flex-wrap:wrap;margin:0 0 8px;min-height:30px}
/* Не хватает места — период, месяцы и «Настройки» уходят на вторую строку вправо, вкладки не обрезаются (28.10.2026) */
.pz-per{display:flex;align-items:center;gap:12px;row-gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.pz-seg{display:inline-flex;flex:0 0 auto;border:1px solid var(--pz-frame);border-radius:6px;overflow:hidden;background:var(--surface-2)}
.pz-seg button{appearance:none;border:0;margin:0;background:transparent;color:var(--text-1);font:inherit;font-size:12.5px;
  height:26px;padding:0 11px;cursor:pointer;white-space:nowrap}
.pz-seg button+button{border-left:1px solid var(--pz-line)}
.pz-seg button:hover{background:var(--surface-3)}
.pz-seg button.on{background:var(--surface-head);font-weight:680}
.pz-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pz-seg.sm button{height:22px;font-size:12px;padding:0 9px}
.pz .pz-tabs.subtabs{margin:0;border-bottom:0;flex:0 0 auto;min-width:0}
.pz .pz-tabs .subtab{height:26px}
.pz-sp{flex:1 1 auto}
/* Период: пока грузится, прежние цифры остаются на экране, а у кнопки бежит полоса */
.pz-win button[disabled]{cursor:progress}
.pz-win button.busy{position:relative}
.pz-win button.busy::after{content:'';position:absolute;left:7px;right:7px;bottom:3px;height:2px;border-radius:1px;background:var(--accent);
  transform-origin:left;animation:pz-busy .9s ease-in-out infinite alternate}
@keyframes pz-busy{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.pz-win button.busy::after{animation:none}}
.pz .pz-ptg{height:26px}
.pz .pz-ptg.on{background:var(--surface-head);border-color:var(--pz-frame)}
.pz-chip{appearance:none;font:inherit;font-size:12px;height:24px;padding:0 9px;border:1px solid var(--pz-frame);border-radius:6px;
  background:var(--surface-2);color:var(--text-1);cursor:pointer;white-space:nowrap}
.pz-chip:hover{background:var(--surface-3)}
.pz-chip.on{background:var(--surface-head);font-weight:680;box-shadow:inset 0 0 0 1px var(--pz-frame)}
.pz-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* ── Полоса итогов ── */
.pz-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:6px;margin:0 0 8px}
.pz-tile{border:1px solid var(--pz-line);border-radius:6px;background:var(--surface-2);padding:3px 6px 4px;
  display:flex;flex-direction:column;align-items:center;gap:0;min-width:0;text-align:center}
.pz-tile .l{font-size:10.5px;line-height:14px;color:var(--pz-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pz-tile b{font-size:15px;line-height:20px;font-weight:720;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em}
.pz-tile.g b{color:var(--gain)}

/* ── Сетка: панель слева, результат справа ── */
.pz-grid{display:grid;grid-template-columns:310px minmax(0,1fr);gap:10px;align-items:start}
.pz-grid.nopanel{grid-template-columns:minmax(0,1fr)}
.pz-grid.nopanel .pz-panel{display:none}
.pz-main{min-width:0}

/* ── Панель настроек ── */
.pz-panel{border:1px solid var(--pz-frame);border-radius:7px;background:var(--surface-2);overflow:auto;
  overscroll-behavior:contain;display:flex;flex-direction:column}
.pz-pb{padding:6px 8px 7px;border-bottom:1px solid var(--pz-line)}
.pz-ph{display:flex;align-items:center;gap:6px;margin:0 0 5px;font-size:11.5px;font-weight:720;line-height:22px}
.pz-ph-act{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:400}
.pz-ph-act[hidden]{display:none}
/* Сворачиваемый блок панели: заголовок — кнопка */
.pz-foldbtn{appearance:none;border:0;background:transparent;padding:0;margin:0;font:inherit;color:var(--text-1);cursor:pointer;display:inline-flex;align-items:center}
.pz-foldbtn:hover{text-decoration:underline}
.pz-foldbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.pz-fold:not(.open) .pz-ph{margin-bottom:0}
.pz-foldn{font-weight:500;color:var(--mid)}
.pz-foldbtn .pz-car{width:14px;font-size:11px;color:var(--text-1)}
.pz-row{display:flex;align-items:center;gap:6px;margin:0 0 6px}
.pz-row:last-child{margin-bottom:0}
.pz-row label{font-size:12px;white-space:nowrap}
.pz-row .u{font-size:12px}
.pz-panel .btn{height:24px;padding:0 9px;font-size:12px}
.pz-panel .btn.sm,.pz .btn.sm,.pz-person .btn.sm{height:22px;padding:0 7px;font-size:11.5px}
.pz-panel select.pz-sc,.pz-panel .pz-sc{flex:1 1 auto;min-width:0;height:24px;font-size:12px}
.pz-in{height:22px;width:62px;box-sizing:border-box;border:1px solid var(--pz-dim);border-radius:4px;background:var(--surface-2);
  color:var(--text-1);font:inherit;font-size:12px;text-align:center;padding:0 3px;font-variant-numeric:tabular-nums}
.pz-in:hover{border-color:var(--pz-frame)}
.pz-in:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}
.pz-in::placeholder{color:var(--pz-dim);opacity:1}
/* Изменённое поле — контуром (Раиль: «чтобы я видел, где поменял») */
.pz-in.chg{border:2px solid var(--accent);font-weight:720;background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}
.pz-in.w5{width:64px}
/* Тарифы: вписано вручную — сплошная рамка (подбор не меняет), подобрано — пунктир */
.pz-in.man{border:2px solid var(--accent);font-weight:720;background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}
.pz-in.auto{border:1.5px dashed var(--accent);font-weight:560}
.pz-in.w3{width:40px}
.pz-go{position:sticky;bottom:0;z-index:3;margin-top:auto;background:var(--surface-2);padding:7px 8px;display:flex;align-items:center;gap:8px;
  border-top:1px solid var(--pz-frame)}
.pz-panel .pz-go .btn.primary{flex:1 1 auto;height:28px;font-size:12.5px;font-weight:680}
.pz-calc.dirty::after{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-ink);margin-left:7px}
.pz-dirty{font-size:11px;color:var(--mid);white-space:nowrap}
.pz-rozn{margin-top:6px;font-size:11.5px;line-height:16px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.pz-rozn[hidden],.pz-rozn:empty{display:none}

/* Таблицы в панели: без внешней рамки, строки тонкой линией */
.pz-tin{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.pz-tin th{font-size:10.5px;font-weight:600;color:var(--pz-dim);text-align:center;padding:0 2px 2px;line-height:14px;white-space:nowrap}
.pz-tin th:first-child{text-align:left}
.pz-tin td{height:24px;padding:1px 2px;border-top:1px solid color-mix(in srgb,var(--text-1) 22%,var(--surface-2));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-tin td.n{text-align:center}
.pz-tin td.sm{font-size:10.5px}
.pz-tin td.dim{color:var(--pz-dim)}
.pz-tin td.gain{font-weight:650}
.pz-tin td.gain.up{color:var(--gain)}
.pz-tin td .pz-in{width:100%}
.pz-tin col.c-t{width:44px}
.pz-tin col.c-in{width:60px}
/* тарифы: поле плана уже, «за смену» шире — заголовок целиком */
.pz-ttar col.c-in{width:52px}
.pz-tin col.c-g{width:54px}
/* Два шага повышения (Раиль 28.10.2026): синим — шаг 1 (тарифы клиентов), зелёным — шаг 2 (подбор сверху).
   Цвет — токены сайта: --accent глубокий синий, --gain тёмный изумруд; в тёмной теме — свои светлые. */
.pz-ttar col.c-t2{width:48px}
/* «шаг 2»: подобранное — в подсказке поля зелёным; вписанный итог — сплошная зелёная рамка */
.pz-in.t2in::placeholder{color:var(--pz-s2);font-weight:650;opacity:1}
.pz-in.t2in.fin{border:2px solid var(--pz-s2);font-weight:720;color:var(--pz-s2)}
.pz-tgt col.c-got{width:54px}
.pz-tgt td.got{font-weight:650;color:var(--pz-s2)}
.pz-tgt td.got.short{color:var(--mid)}
.pz-tin th.h1,.pz-t th.h1{color:var(--pz-s1)}
.pz-tin th.h2,.pz-t th.h2{color:var(--pz-s2)}
.pz-tin td.s2,.pz-t td.s2{color:var(--pz-s2);font-weight:650}
.pz-t td.s1v{color:var(--pz-s1);font-weight:650}
.pz-st{display:inline-flex;gap:5px;align-items:baseline;justify-content:center;font-variant-numeric:tabular-nums}
.pz-st b{font-weight:680}
.pz-st .s1{color:var(--pz-s1)}
.pz-st .s2{color:var(--pz-s2)}
.pz-st .st{color:var(--text-1);font-weight:720}
.pz-tin .pz-st.two .st{display:none}
.pz-tgt td.got{line-height:11px}
.pz-tgt td.got .g2v{display:block}
.pz-tgt td.got .gtot{display:block;font-size:10.5px;font-weight:650;color:var(--text-1)}
.pz-help .pz-c1{color:var(--pz-s1)}
.pz-help .pz-c2{color:var(--pz-s2)}
/* в узкой колонке панели — двумя строками, высота строки та же */
.pz-tin .pz-st.two{flex-direction:column;gap:0;font-size:11px;line-height:11px}
.pz-tile .pz-st{gap:6px}
/* три числа (шаг 1, шаг 2, итого) в плашке — мельче, чтобы не упирались в края */
.pz-tile .pz-st.sum{gap:4px;white-space:nowrap}
.pz-tile .pz-st.sum b{font-size:13px}
/* цвет плашки «.g b» не должен перекрашивать шаги */
.pz-tile .pz-st .s1{color:var(--pz-s1)}
.pz-tile .pz-st .s2{color:var(--pz-s2)}
.pz-tile .pz-st .st{color:var(--text-1)}
/* в фонде по подразделениям суммы длинные — шаги друг под другом */
html[data-theme="dark"] .pz,html[data-theme="dark"] .pz-person{--pz-s1:#8DB6F2}
/* «За день» в строке сотрудника (Раиль 28.10.2026: «факт синим, план жёлтым, прибавка своим цветом — чтобы
   визуально сразу отличалось»). Жёлтый — латунь сайта (--mid): ярко-жёлтый на белом не читается. */
.pz-tday tr.dr td.dF{color:var(--pz-s1);font-weight:700}
.pz-tday tr.dr td.dP{color:var(--mid);font-weight:750}
.pz-tday tr.dr td.dG{color:var(--gain);font-weight:750}
/* Отбор по клиенту (Раиль 28.10.2026): строка панели нажимается, выбранная подсвечена; в смене — его строки. */
.pz-ttar td.fl{cursor:pointer}
.pz-ttar td.fl:hover{text-decoration:underline}
.pz-ttar tr.flt td{background:color-mix(in srgb,var(--mid) 16%,var(--surface-2));font-weight:700}
.pz-dd .pz-t tr.hl td{background:color-mix(in srgb,var(--mid) 16%,var(--surface-2))}
.pz-flt{font-weight:650;border-color:var(--mid)}
.pz-xnew{appearance:none;border:0;background:transparent;color:var(--pz-dim);font:inherit;font-size:13px;line-height:1;padding:0 3px;margin-left:3px;cursor:pointer}
.pz-xnew:hover{color:var(--text-1)}
.pz-addnew{margin-top:6px;gap:6px}
.pz-addnew .pz-newc{flex:1 1 auto;min-width:0;height:24px;font:inherit;font-size:12px;padding:0 6px;border:1px solid var(--hair-2);border-radius:5px;background:var(--surface-1);color:var(--text-1)}
.pz-tdep .pz-st.two{flex-direction:column;gap:0;font-size:10.5px;line-height:10.5px}
.pz-ttar.locked .pz-in{border-style:solid;background:transparent;cursor:default}
.pz-tin tr.g td{height:20px;padding-top:5px;font-size:11px;font-weight:750;color:var(--text-1);border-top:0}
.pz-tadm td:first-child{font-weight:550}
.pz-ttar td:first-child{white-space:normal;line-height:14px;padding-top:3px;padding-bottom:3px}
/* Цели подбора по направлениям и кнопка «Подобрать» справа */
.pz-tgt{margin:0 0 6px}
.pz-tgt col.c-act{width:84px}
.pz-tgt td.act{text-align:right;vertical-align:middle}
.pz-tgt td.act .btn{height:28px}
.pz-hint{margin:6px 0 0;font-size:11px;line-height:15px;color:var(--pz-dim)}
.pz-dmark{appearance:none;border:0;background:none;margin:0;padding:0 0 0 3px;font:inherit;font-size:10.5px;color:var(--accent);
  text-decoration:underline;text-underline-offset:2px;cursor:pointer;white-space:nowrap}
.pz-dmark:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* ── Панель инструментов над таблицей ── */
.pz-bar{display:flex;align-items:center;gap:8px;margin:0 0 6px;min-height:24px;flex-wrap:wrap}
.pz-bar select.pz-role,.pz-bar .pz-role{width:200px;height:24px;font-size:12px}
.pz-q{height:24px;width:190px;box-sizing:border-box;border:1px solid var(--pz-frame);border-radius:5px;background:var(--surface-2);
  color:var(--text-1);font:inherit;font-size:12px;padding:0 8px}
.pz-q:focus{outline:2px solid var(--accent);outline-offset:-1px}
.pz-note{margin-left:auto;font-size:11.5px;color:var(--pz-dim);white-space:nowrap}
.pz-src{color:var(--text-1);font-weight:600}
.pz-src.off{color:var(--pz-dim);font-weight:500}

/* ── Таблицы результата ── */
.pz-tw{overflow:auto;border:1px solid var(--pz-frame);border-radius:6px;background:var(--surface-2);max-width:100%;
  overscroll-behavior:contain}
.pz-t{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;font-size:12px;
  font-variant-numeric:tabular-nums}
.pz-t th,.pz-t td{box-sizing:border-box;height:var(--pz-h);padding:2px 5px;line-height:17px;white-space:nowrap;overflow:hidden;
  border-right:1px solid var(--pz-line);border-bottom:1px solid var(--pz-line);color:var(--text-1)}
.pz-t tr>:last-child{border-right:0}
/* Край месяца (и других групп): своя линия слева вплотную к линии соседа — жирно,
   а факт и план внутри месяца разделены одной тонкой. */
.pz-t th.mL,.pz-t td.mL{border-left:1px solid var(--pz-frame)}
.pz-t th{background:var(--surface-head);font-size:11px;font-weight:650;text-align:center;vertical-align:middle;
  position:sticky;top:0;z-index:3}
.pz-t thead tr:nth-child(2) th{top:var(--pz-h)}
.pz-t th.grp{font-weight:720}
.pz-t th.sub{font-weight:500}
.pz-t th.sortable{cursor:pointer;user-select:none}
.pz-t th.sortable:hover{background:color-mix(in srgb,var(--surface-head) 70%,var(--text-1) 6%)}
.pz-t th.sortable.on{font-weight:760}
.pz-t th.sortable.on.desc::after{content:'\2009\2193'}
.pz-t th.sortable.on.asc::after{content:'\2009\2191'}
.pz-t td.n{text-align:center}
.pz-t td.nm{font-weight:560;text-overflow:ellipsis}
.pz-t td.rl{text-overflow:ellipsis}
.pz-t td.pl{font-weight:620}
.pz-t td.pl.same{color:var(--pz-dim);font-weight:500}
.pz-t td.up{color:var(--gain);font-weight:680}
.pz-t td.down{color:var(--loss);font-weight:680}
.pz-t td.u{color:var(--pz-dim)}
/* закреплённые столбцы: галочка, имя, роль */
.pz-t .sl{position:sticky;left:0;z-index:2;background:var(--surface-2);text-align:left}
.pz-tm .s1,.pz-ts .s1{left:var(--pz-ck)}
.pz-tm .s2,.pz-ts .s2,.pz-t .s2{left:calc(var(--pz-ck) + var(--pz-name))}
.pz-tr .s1,.pz-tx .s1,.pz-tp .s1,.pz-tdst .s1{left:0}
.pz-t td.s2,.pz-t th.s2{border-right:1px solid var(--pz-frame)}
.pz-t thead .sl{z-index:5;background:var(--surface-head);text-align:left}
.pz-t .ck{text-align:center;padding:0;cursor:pointer}
.pz-ck{width:14px;height:14px;margin:0;vertical-align:middle;accent-color:var(--accent);cursor:pointer}
/* итог — первой строкой, чтобы ФОТ был виден без прокрутки вниз */
.pz-t tbody tr.tot td{background:color-mix(in srgb,var(--surface-head) 55%,var(--surface-2));font-weight:720;
  border-bottom:2px solid var(--pz-frame)}
.pz-t tbody tr.tot td.pl.same{color:var(--pz-dim)}
.pz-t tbody tr[data-fio],.pz-t tbody tr[data-role]{cursor:pointer}
.pz-t tbody tr[data-fio]:hover td,.pz-t tbody tr[data-role]:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
/* Отмеченные строки: светлые и разные по тону (зелёный, голубой, песочный, розовый, сиреневый, бирюзовый). */
.pz-t tbody tr.sel.c0 td{background:color-mix(in srgb,#2E9E5B 20%,var(--surface-2))}
.pz-t tbody tr.sel.c1 td{background:color-mix(in srgb,#3B7DD8 18%,var(--surface-2))}
.pz-t tbody tr.sel.c2 td{background:color-mix(in srgb,#D9A21B 24%,var(--surface-2))}
.pz-t tbody tr.sel.c3 td{background:color-mix(in srgb,#D9537A 17%,var(--surface-2))}
.pz-t tbody tr.sel.c4 td{background:color-mix(in srgb,#8A5CD1 17%,var(--surface-2))}
.pz-t tbody tr.sel.c5 td{background:color-mix(in srgb,#1E9AA0 19%,var(--surface-2))}
.pz-t tbody tr.sel td.s1{font-weight:720}
/* ширины столбцов */
.pz-t col.c-ck{width:var(--pz-ck)}
.pz-t col.c-name{width:var(--pz-name)}
.pz-t col.c-role{width:var(--pz-role)}
.pz-t col.c-m{width:58px}
.pz-t col.c-pc{width:62px}
.pz-t col.c-k{width:46px}
.pz-t col.c-s{width:54px}
.pz-t col.c-y{width:86px}
.pz-t col.c-rl{width:200px}
.pz-t col.c-bar{width:132px}
.pz-t col.c-v{width:116px}
.pz-card .pz-t col.c-hr{width:190px}
.pz-card .pz-t col.c-r2{width:136px}
.pz-card .pz-t col.c-why{width:auto}
/* «Роли» помещаются в экран: первый столбец гибкий */
.pz-tr{width:100%;min-width:900px}
.pz-tr col.c-rl{width:auto}
/* полоса дохода в «Ролях»: длина — середина дохода, риска — план */
.pz-t td.bar{position:relative;text-align:left;padding-left:6px}
.pz-t td.bar span{position:relative;font-weight:680}
.pz-bv{position:absolute;left:0;top:4px;bottom:4px;background:color-mix(in srgb,var(--accent) 18%,transparent);border-radius:0 3px 3px 0}
.pz-bv.pl{background:transparent;border-right:2px solid var(--gain);border-radius:0}

/* «По городам»: клиент сети — строкой-заголовком, тариф города — полем */
.pz-tdst tbody tr.g td{background:color-mix(in srgb,var(--surface-head) 45%,var(--surface-2));font-weight:650;text-align:left}
.pz-tdst td .pz-in{width:100%}
.pz-tdst col.c-in{width:62px}
.pz-note1{font-size:11.5px;color:var(--pz-dim)}
/* «По дням»: смена — строкой, раскрытая — клиенты с тарифами и заказы по времени */
.pz-dnav{display:inline-flex;align-items:center;gap:5px}
.pz-dnav .pz-chip{min-width:26px;padding:0 7px;font-size:13px;line-height:1}
.pz-dnav .pz-chip[disabled]{opacity:.35;cursor:default}
.pz-daybar .xdate-btn{height:24px}
.pz-wd{font-size:12px;color:var(--pz-dim);min-width:16px}
.pz-daybar.busy{cursor:progress}
.pz-daybar.busy .pz-dnav{opacity:.5}
/* таблица на всю ширину, «Роль» забирает остаток; раскрытая смена ширину не диктует */
.pz-tday{width:100%;min-width:960px}
.pz-tday .s1{left:0}
.pz-tday col.c-name{width:170px}
.pz-tday col.c-role{width:auto}
.pz-tday col.c-d{width:86px}
.pz-troles .pz-in.auto::placeholder{color:var(--pz-s2);font-weight:650;opacity:1}
.pz-tday tbody tr.dr{cursor:pointer}
.pz-tday tbody tr.dr:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
.pz-tday tbody tr.dr.on td{background:color-mix(in srgb,var(--surface-head) 55%,var(--surface-2));font-weight:600}
.pz-tday td.dim{color:var(--pz-dim)}
.pz-tday sup{font-size:8px;margin-left:1px;color:var(--pz-dim)}
.pz-car{display:inline-block;width:12px;color:var(--pz-dim);font-size:10px}
.pz-tday tr.dd>td{height:auto;padding:6px 8px 8px 20px;background:var(--surface-2);white-space:normal;overflow:visible;border-bottom:2px solid var(--pz-frame)}
.pz-dd{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;contain:inline-size}
/* Раскрытая смена — в пределах видимой области: главная таблица шире экрана и прокручивается вбок,
   а раскрытая часть стоит у левого края и не уходит за правый (--pz-vis ставит renderMain). */
.pz-tday tr.dd .pz-dd{position:sticky;left:20px;max-width:calc(var(--pz-vis, 100%) - 34px)}
.pz-dd .pz-t{border:1px solid var(--pz-frame);border-radius:6px;overflow:hidden}
.pz-dd .pz-t th{position:static;font-size:10.5px;font-weight:600;height:20px;padding:1px 2px}
.pz-dd .pz-t td{height:24px;padding:1px 5px}
.pz-dd .pz-t td.cl{text-overflow:ellipsis}
.pz-dd .pz-t td .pz-in{width:100%;height:20px;box-sizing:border-box;vertical-align:middle}
.pz-dd .pz-t tr.tot td{font-weight:720;background:color-mix(in srgb,var(--surface-head) 55%,var(--surface-2));border-bottom:0}
.pz-dd .pz-t tr.cnt td{color:var(--pz-dim)}
.pz-dd .pz-t tr.dim td{color:var(--pz-dim)}
.pz-dd .pz-note2{margin:4px 2px 0;max-width:560px}
/* ширина задана явно: при max-content длинные названия клиентов раздували таблицу */
.pz-dd .pz-tdc{width:100%;max-width:910px}
.pz-tdc col.c-v1{width:80px}
.pz-tdc col.c-df{width:132px}
.pz-dd .pz-tdo{width:100%;max-width:910px}
.pz-dcap{font-size:12px;font-weight:750;color:var(--text-1);margin:0 0 3px 2px}
.pz-tdc col.c-cl{width:auto}
.pz-tdc col.c-tm,.pz-tdo col.c-tm{width:92px}
.pz-tdc col.c-in{width:58px}
.pz-tdo col.c-no{width:90px}
.pz-tdo col.c-cl2{width:auto}
.pz-tdr col.c-cl{width:auto}
/* Раиль 27.10.2026: обе таблицы раскрытой смены одной ширины и одной высоты строк */
.pz-dd .pz-t td,.pz-dd .pz-t th{box-sizing:border-box}
.pz-ddo{max-height:260px;overflow:auto;border-radius:6px}

/* «Итог»: города со своим тарифом — с отступом под клиентом */
.pz-card .pz-t tr.sub td.s1{padding-left:18px}

/* ── Итог под таблицей ── */
.pz-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pz-foot{flex-wrap:nowrap}
.pz-fi{border:1px solid var(--pz-line);border-radius:6px;background:var(--surface-2);padding:3px 6px 4px;display:flex;flex-direction:column;
  align-items:center;min-width:0;flex:1 1 0}
.pz-fi:nth-child(2),.pz-fi:nth-child(3){flex-grow:1.6}
.pz-fi span{font-size:10.5px;line-height:14px;color:var(--pz-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pz-fi b{font-size:13.5px;line-height:18px;font-weight:720;white-space:nowrap;font-variant-numeric:tabular-nums}

/* ── «Итог», «Подсказки», «Справка»: карточки ── */
.pz-scroll{overflow:auto}
.pz-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:10px;align-items:start}
.pz-cards:has(> .pz-col){grid-template-columns:repeat(2,minmax(0,1fr))}
.pz-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.pz-card{border:1px solid var(--pz-frame);border-radius:7px;background:var(--surface-2);overflow:hidden}
.pz-card.wide{grid-column:1/-1}
.pz-card h4{margin:0;padding:3px 8px;min-height:24px;line-height:18px;font-size:12px;font-weight:720;background:var(--surface-head);
  border-bottom:1px solid var(--pz-frame);display:flex;align-items:center}
.pz-card .pz-t{width:100%}
.pz-card .pz-t th{position:static;white-space:normal;line-height:13px}
.pz-ttl td.s1{white-space:normal;line-height:14px}
.pz-card .pz-t tbody tr:last-child td{border-bottom:0}
.pz-card .pz-t .sl{position:static}
.pz-card .pz-t col.c-rl{width:auto}
.pz-card .pz-t col.c-y{width:96px}
.pz-card .pz-t col.c-m{width:70px}
.pz-card .pz-t tr.g td{background:color-mix(in srgb,var(--surface-head) 45%,var(--surface-2));font-size:11px;font-weight:720;text-align:left}
.pz-help p{margin:6px 10px;line-height:1.45;font-size:12.5px}
.pz-help p+p{margin-top:4px}
.pz-empty{margin:8px 10px;font-size:12.5px}
.pz-note2{margin:5px 8px 6px;font-size:11px;line-height:15px;color:var(--pz-dim)}
/* Подсказки: вывод — цветным контуром, без заливки */
.pz-th td.why{white-space:normal;line-height:15px;font-size:11.5px;text-align:left;height:auto;padding-top:3px;padding-bottom:3px}
.pz-card .pz-th{table-layout:fixed}
.pz-v{display:inline-block;padding:0 5px;border-radius:4px;border:1.5px solid currentColor;font-weight:680;line-height:16px;font-size:11px}
.pz-v.v-yes{color:var(--gain)}
.pz-v.v-check{color:var(--mid)}
.pz-v.v-no{color:var(--pz-dim)}
.pz-ex{list-style:none;margin:4px 0;padding:0}
.pz-ex li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 10px;border-top:1px solid color-mix(in srgb,var(--text-1) 22%,var(--surface-2));font-size:12.5px}
.pz-ex li:first-child{border-top:0}

/* ── Карточка сотрудника ── */
.modal:has(.pz-person){width:min(1120px,96vw);max-width:96vw}
.pz-person .modal-body{padding-top:8px}
.pz-pmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 8px;font-size:12.5px}
.pz-pmeta span+span::before{content:'';display:inline-block;width:1px;height:12px;background:var(--pz-dim);margin-right:14px;vertical-align:-1px}
.pz-pmeta .pz-exbtn{margin-left:auto}
.pz-person .pz-tw{max-height:60vh}
.pz-person .pz-tp{width:100%}
.pz-person .pz-tp col.c-rl{width:150px}
.pz-person .pz-tp col.c-k{width:auto}
.pz-person .pz-t tr.tot td{font-weight:720;background:color-mix(in srgb,var(--surface-head) 55%,var(--surface-2))}
.pz-person .pz-t tr.dl td{color:var(--gain);font-weight:650}
.pz-person .pz-t tr.cnt td{color:var(--pz-dim)}
.pz-person .pz-t td.yr{font-weight:720}
.pz-lab{display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.pz-name{height:30px;border:1px solid var(--hair-2);border-radius:6px;padding:0 9px;font:inherit;font-size:13px;background:var(--surface-2);color:var(--text-1)}

/* ── Телефон ── */
@media (max-width:760px){
  .pz,.pz-person{--pz-name:118px;--pz-role:104px}
  .pz-top{flex-wrap:wrap;gap:6px}
  .pz-top .pz-seg{order:1}
  .pz-per{margin-left:0;justify-content:flex-start}
  .pz .pz-ptg{order:2;margin-left:auto}
  .pz .pz-tabs.subtabs{order:3;flex:1 1 100%}
  .pz-sp{display:none}
  .pz-sum{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pz-grid{grid-template-columns:minmax(0,1fr)}
  .pz-panel{max-height:none!important}
  .pz-go{position:static}
  .pz-tw{max-height:70vh}
  .pz-bar select.pz-role,.pz-bar .pz-role{width:calc(50% - 4px)}
  .pz-q{width:calc(50% - 4px)}
  .pz-note{margin-left:0}
  /* на телефоне закреплены галочка и имя: роль уезжает вместе с цифрами, им нужнее место */
  .pz-t .s2{position:static}
  .pz-t thead .s2{position:sticky;left:auto;z-index:4}
  .pz-t thead .s1{z-index:6}
  /* Общее правило сайта даёт первому столбцу любой таблицы 122 px — у нас там галочка 26 px. */
  .pz-t thead th:first-child,.pz-t tbody td:first-child{min-width:0}
  /* И любой таблице — не уже 512 px: таблицы панели (тарифы, оклады) должны помещаться в экран. */
  .pz-tin{min-width:0}
  .pz-tin th:first-child,.pz-tin td:first-child{min-width:0}
  /* …и крайним ячейкам — отступы 8 и 16 px: в узком столбце «за смену» цифры обрезались. */
  .pz-tin tbody td:first-child,.pz-tin thead th:first-child{padding-left:2px}
  .pz-tin tbody td:last-child,.pz-tin thead th:last-child{padding-right:2px}
  .pz-cards,.pz-cards:has(> .pz-col){grid-template-columns:minmax(0,1fr)}
  .pz-foot{flex-wrap:wrap}
  .pz-fi{min-width:calc(50% - 3px)}
}

/* Раскрытая смена: выбор одного клиента (Раиль 28.10.2026) — над таблицами, у левого края видимой области. */
.pz-dsel{position:sticky;left:20px;display:inline-flex;margin:0 0 6px}
.pz-dsel label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--pz-dim)}
.pz-dsel select{height:24px;font:inherit;font-size:12px;font-weight:600;color:var(--text-1);background:var(--surface-1);
  border:1px solid var(--pz-frame);border-radius:6px;padding:0 6px;max-width:320px;cursor:pointer}
.pz-dsel select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.pz-dd .pz-t tr.tot.sel td{background:color-mix(in srgb,var(--mid) 14%,var(--surface-2));border-top:1px solid color-mix(in srgb,var(--mid) 45%,transparent)}
/* Плашка направления с изменённым окладом: «сделка +206 оклад +150 = 356» (Раиль 28.10.2026). */
.pz-tile .pz-st.pz-sok{gap:3px;white-space:nowrap;flex-wrap:wrap;justify-content:center;row-gap:0}
.pz-tile .pz-sok i{font-style:normal;font-size:10.5px;font-weight:600;color:var(--text-2);margin-left:3px}
.pz-tile .pz-sok i:first-child{margin-left:0}
.pz-tile .pz-sok b{font-size:13px;color:var(--gain)}
.pz-tile .pz-sok b.ok{color:var(--mid)}
.pz-tile .pz-sok b.st{color:var(--text-1);margin-left:3px}
.pz-tile .pz-st.pz-sok{flex-wrap:nowrap;gap:2px}
.pz-tile .pz-sok i{font-size:10px;margin-left:2px}
.pz-tile .pz-sok b{font-size:12.5px}
.pz-tile .pz-st.pz-sok{flex-wrap:wrap}
@media (min-width:1500px){ .pz-tile .pz-st.pz-sok{flex-wrap:nowrap} }
.pz-tile .pz-sok .pr{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap}
.pz-tile .pz-sok .pr + .pr{margin-left:3px}
/* Защищённый сценарий (Раиль 29.10.2026) */
.pz-lockrow{flex-wrap:wrap;margin-top:-2px}
.pz-lockrow .pz-hint{margin:0}
.pz-locked{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;color:var(--mid);
  border:1px solid color-mix(in srgb,var(--mid) 55%,transparent);border-radius:6px;padding:1px 7px}
.pz-locked::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mid)}
