/* ═══════════════════════════════════════════════════════════════════
   Окна блока «Нагрузка и отдых персонала» (ТЗ-промт Бородулина 14.10.2026).
   Пять окон — одна система: спокойный почти монохромный фон, тонкие границы,
   цвет только у статуса, главной цифры и тонкой полосы слева у строки.
   Токены — те же, что у окон Дашборда (.d2-back): --ink, --rule, --good, --mid, --bad.
   ═══════════════════════════════════════════════════════════════════ */
.d2-win.nw .body.nw-body{max-height:74vh}
.nw .t-good{color:var(--good)}
.nw .t-mid{color:var(--mid)}
.nw .t-bad{color:var(--bad)}

/* Что найдено, почему важно, что сделать — три короткие строки. */
.nw-lead{padding:12px 16px 10px;border-bottom:1px solid var(--rule-2)}
.nw-lead p{margin:0;font-size:13px;line-height:1.5}
.nw-lead .f{font-weight:650;color:var(--ink)}
.nw-lead .w{color:var(--ink-2)}
.nw-lead .t{color:var(--ink);margin-top:2px}
.nw-lead .t::before{content:"";display:inline-block;width:3px;height:12px;margin-right:8px;border-radius:2px;background:var(--nav);vertical-align:-1px}

/* Сводка — одинаковая полоса во всех окнах. */
.nw-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 16px 0;border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.nw-sum.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.nw-sum.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nw-sum>div{padding:8px 12px;min-width:0}
.nw-sum>div+div{border-left:1px solid var(--rule)}
.nw-sum span{display:block;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw-sum b{display:block;font-size:17px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.nw-sum b.t-good{color:var(--good)} .nw-sum b.t-mid{color:var(--mid)} .nw-sum b.t-bad{color:var(--bad)}

/* Панель: период слева, действия справа — одинаково во всех окнах. */
.nw-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px}
.nw-acts{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.nw-per{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}
.nw-per button.on{border-color:var(--nav);color:var(--nav);background:color-mix(in srgb,var(--nav) 8%,var(--card))}
.d2-win.nw .nw-per input[type=date]{font:500 12.5px var(--d2-sans);padding:6px 8px;width:auto}
.d2-win.nw button:disabled{opacity:.45;cursor:default}

/* Таблица: от худшего к лучшему, полоса статуса слева, главная цифра крупно. */
.nw-tw{margin:0 16px;border:1px solid var(--rule);border-radius:8px;overflow:auto;max-height:52vh}
.nw-t{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.nw-t th{position:sticky;top:0;z-index:2;background:var(--head);font-size:10.5px;font-weight:700;color:var(--ink-2);text-align:left;
  padding:8px 10px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule-2);white-space:nowrap}
.nw-t th.r,.nw-t td.r{text-align:right}
.nw-t td{padding:8px 10px;border-bottom:1px solid var(--rule-2);border-right:1px solid var(--rule-2);vertical-align:top;color:var(--ink)}
.nw-t tr>:last-child{border-right:0}
.nw-t td small{display:block;font-size:11px;color:var(--ink-3);margin-top:1px;white-space:nowrap}
.nw-t tr.nw-r{cursor:pointer}
.nw-t tr.nw-r:hover>td{background:color-mix(in srgb,var(--ink) 3%,var(--card))}
.nw-t tr.nw-r:focus-visible{outline:2px solid var(--nav);outline-offset:-2px}
.nw-t tr.nw-r>td:first-child{box-shadow:inset 3px 0 0 var(--st,transparent)}
.nw-t tr.t-good{--st:var(--good)} .nw-t tr.t-mid{--st:var(--mid)} .nw-t tr.t-bad{--st:var(--bad)}
.nw-t tr.open>td{border-bottom-color:transparent}
.nw-fio{font-weight:600;white-space:nowrap}
.nw-role{color:var(--ink-2);font-size:12px;max-width:220px}
.nw-main{font-size:15px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.nw-cnt{font-size:13px;font-weight:700;white-space:nowrap}
.nw-cases span{display:block;white-space:nowrap;font-size:12px}
.nw-st{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700;white-space:nowrap;
  background:color-mix(in srgb,currentColor 11%,transparent)}
.nw-dim{color:var(--ink-3)}
.nw-t td.chk,.nw-t th.chk{width:30px;text-align:center;padding-left:6px;padding-right:6px}
.d2-win.nw .nw-t input[type=checkbox]{width:15px;height:15px;padding:0;accent-color:var(--nav)}
.nw-reason{min-width:200px}
.d2-win.nw input.nw-note{font:500 12.5px var(--d2-sans);width:100%;padding:6px 8px;border-radius:6px}
.d2-win.nw input.nw-note.saved{border-color:var(--good)}
.nw-hint{padding:8px 16px 14px;font-size:11.5px;color:var(--ink-3)}

/* Раскрытая строка: неделя по дням или точные отметки TimeX. */
.nw-t tr.nw-dr>td{padding:4px 10px 12px 13px;background:color-mix(in srgb,var(--ink) 3%,var(--card));box-shadow:inset 3px 0 0 var(--rule)}
.nw-weekw{overflow-x:auto}
.nw-week{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;min-width:760px}
.nw-week th{font-size:10.5px;color:var(--ink-3);font-weight:600;text-align:left;padding:4px 8px;border:1px solid var(--rule-2);background:var(--card)}
.nw-week td{padding:6px 8px;border:1px solid var(--rule-2);vertical-align:top;background:var(--card)}
.nw-week .nw-sh{display:block;white-space:nowrap}
.nw-week small{display:block;color:var(--ink-3);font-size:11px}
.nw-exits{font-size:11.5px;color:var(--ink-2);padding-top:6px}
.nw-det{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule-2);border:1px solid var(--rule-2);border-radius:6px;overflow:hidden}
.nw-det>div{background:var(--card);padding:7px 10px}
.nw-det span{display:block;font-size:11px;color:var(--ink-3)}
.nw-det b{font-size:12.5px;font-weight:600}

/* Лист действия (записка, списки, отчёт) — на экране как бумага. */
.nw-sheetw{margin:0 16px 16px;border:1px solid var(--rule);border-radius:8px;padding:18px 22px;background:var(--card)}
.nw-pg h1{font-size:17px;margin:0 0 2px;font-weight:700}
.nw-pg h2{font-size:13.5px;margin:16px 0 6px;font-weight:700}
.nw-pgsub{font-size:12px;color:var(--ink-3);margin-bottom:10px}
.nw-plead{font-size:12.5px;line-height:1.5;margin:6px 0 10px;color:var(--ink-2);max-width:900px}
.nw-psum{font-size:12.5px;margin:0 0 10px}
.nw-pt{width:100%;border-collapse:collapse;font-size:12px}
.nw-pt th{text-align:left;font-size:10.5px;font-weight:700;padding:6px 8px;border:1px solid var(--rule);background:var(--head)}
.nw-pt td{padding:6px 8px;border:1px solid var(--rule);vertical-align:top}
.nw-pt tr.sub td,.nw-pt tfoot td{background:var(--head);font-weight:600}
.nw-memo-to{text-align:right;font-size:12.5px;line-height:1.9;margin-bottom:10px}
.nw-sign{display:flex;justify-content:space-between;gap:20px;margin-top:28px;font-size:12.5px}

/* Печатный лист для PDF: вне экрана, белый, чёрный текст — независимо от темы. */
.nw-print-host{position:fixed;left:-12000px;top:0}
.nw-print{width:1060px;background:#fff;color:#111;padding:6px;
  font:400 12px/1.45 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.nw-print .nw-pg h1{font-size:18px;margin:0 0 2px}
.nw-print .nw-pg h2{font-size:14px;margin:14px 0 6px}
.nw-print .nw-pgsub{font-size:12px;color:#555;margin-bottom:8px}
.nw-print .nw-plead{font-size:12px;color:#333;margin:4px 0 8px}
.nw-print .nw-psum{font-size:12px;margin:0 0 8px}
.nw-print .nw-pt{width:100%;border-collapse:collapse;font-size:11.5px}
.nw-print .nw-pt th{text-align:left;font-size:10.5px;padding:5px 7px;border:1px solid #999;background:#eee;color:#111}
.nw-print .nw-pt td{padding:5px 7px;border:1px solid #999;vertical-align:top;color:#111}
.nw-print .nw-pt tr.sub td,.nw-print .nw-pt tfoot td{background:#f2f2f2;font-weight:600}
.nw-print .nw-memo-to{text-align:right;line-height:1.9;margin-bottom:10px}
.nw-print .nw-sign{display:flex;justify-content:space-between;margin-top:28px}

@media (max-width:760px){
  .nw-sum,.nw-sum.c3{grid-template-columns:1fr 1fr}
  .nw-sum>div:nth-child(odd){border-left:0}
  .nw-sum>div:nth-child(n+3){border-top:1px solid var(--rule)}
  .nw-acts{margin-left:0}
  .nw-det{grid-template-columns:1fr 1fr}
}

/* Первый столбец: общий стиль сайта красит его через --col-stick с !important и снимает липкость шапки
   в окнах Дашборда. Задаём переменную под наши цвета и возвращаем липкую шапку. */
.d2-win.nw .nw-t thead th:first-child{--col-stick:var(--head);position:sticky;top:0;z-index:3}
.d2-win.nw .nw-t tbody td:first-child{--col-stick:var(--card)}
.d2-win.nw .nw-week thead th:first-child,.d2-win.nw .nw-week tbody td:first-child{--col-stick:var(--card)}
.d2-win.nw .nw-pt thead th:first-child,.d2-win.nw .nw-pt tr.sub td:first-child{--col-stick:var(--head)}
.d2-win.nw .nw-pt tbody td:first-child{--col-stick:var(--card)}
.nw-print .nw-pt thead th:first-child,.nw-print .nw-pt tr.sub td:first-child{--col-stick:#eee}
.nw-print .nw-pt tbody td:first-child{--col-stick:#fff}
.nw-print .nw-pt tfoot td:first-child{background:#f2f2f2 !important}
.nw-print .nw-pt thead th:first-child{background:#eee !important}
@media (max-width:760px){.nw-sum span{white-space:normal}}
