/* ═══════════════════════════════════════════════════════════
   «Повышение ЗП» (Раиль 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;
  --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;margin:0 0 8px;min-height:30px}
.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 1 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-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}
.pz-tin tr.g td{height:20px;padding-top:5px;font-size:10.5px;font-weight:720;color:var(--pz-dim);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:86px}
.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-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-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 .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)}
}
