/* NH.kampanieTabela — tabela źródeł kampanii (Panel zarządczy + Kampanie; makieta 2MSvvQjT, 12.10; każde źródło widoczne, bez zwijania). Scoped .nh-kt5.
   Spokojnie: dwa rozmiary tekstu w wierszu (liczba + mniejszy procent), równe kolumny, bez wierszy grup i plakietek.
   Reguły TYLKO dla komórek samej tabeli (.kt-t > … > td) — w rozwinięciu wiersza (Kampanie) siedzą inne tabele (lista leadów),
   których te style nie mogą dotknąć.
   Kolory: w Kampaniach dziedziczą ich tokeny (--ink, --line, …), poza nimi — tokeny Huba (tokens.css). */
.nh-kt5 {
  --kt5-ink: var(--ink, var(--nh-text));
  --kt5-mut: var(--muted, var(--nh-text-2));
  --kt5-line: var(--line, var(--nh-line));
  --kt5-soft: var(--line-soft, var(--nh-line-soft));
  --kt5-warn: var(--warn, var(--nh-warn-text));
  --kt5-hover: var(--surface-3, var(--nh-field));
  min-width: 0;
}
.nh-kt5 .kt-scroll { overflow-x: auto; container-type: inline-size; }   /* 100cqw = widoczna szerokość pudełka (rozwinięcie wiersza na telefonie) */
.nh-kt5 .kt-t { width: 100%; min-width: 600px; border-collapse: collapse; table-layout: fixed; font-variant-numeric: tabular-nums; color: var(--kt5-ink); }
.nh-kt5 col.kt-c-name { width: 24%; } .nh-kt5 col.kt-c-n { width: 14%; } .nh-kt5 col.kt-c-cost { width: 20%; }   /* koszt: „nikt jeszcze w leczeniu” w 1 linii przy 15 px */
.nh-kt5 .kt-t > thead > tr > th { font-size: .87em; font-weight: 500; color: var(--kt5-mut); text-align: right; padding: 0 0 var(--space-3, 10px) var(--space-4, 16px); border-bottom: 1px solid var(--kt5-line); vertical-align: bottom; line-height: 1.3; }
.nh-kt5 .kt-t > tbody > tr > td { text-align: right; padding: var(--space-3, 12px) 0 var(--space-3, 12px) var(--space-4, 16px); border-bottom: 1px solid var(--kt5-soft); }
.nh-kt5 .kt-t > thead > tr > th:first-child, .nh-kt5 .kt-t > tbody > tr > td:first-child { text-align: left; padding-left: 0; }
.nh-kt5 .kt-src { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-kt5 .kt-dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: var(--space-3, 10px); vertical-align: 1px; }
.nh-kt5 .kt-dot-none { background: transparent; box-shadow: inset 0 0 0 1.5px var(--kt5-mut); }   /* pusta kropka = „Bez źródła” (to nie źródło) */
.nh-kt5 .kt-none .kt-src { color: var(--kt5-mut); }
.nh-kt5 .kt-p { display: inline-block; min-width: 3.2em; margin-left: var(--space-2, 6px); font-size: .85em; color: var(--kt5-mut); text-align: right; }
.nh-kt5 .kt-cost small { display: block; font-size: .85em; }
.nh-kt5 .kt-mut { color: var(--kt5-mut); }
.nh-kt5 .kt-warn { color: var(--kt5-warn); }
.nh-kt5 .kt-sum > td { font-weight: 700; border-bottom: 0; }
.nh-kt5 .kt-sum .kt-p { font-weight: 600; }
/* Rozwijany wiersz (Kampanie: koszty i lista osób kampanii) */
.nh-kt5 .kt-row { cursor: pointer; }
.nh-kt5 .kt-row:hover > td, .nh-kt5 .kt-row:focus-visible > td, .nh-kt5 .kt-row[aria-expanded="true"] > td { background: var(--kt5-hover); }
.nh-kt5 .kt-row:focus-visible { outline: 2px solid var(--nh-accent); outline-offset: -2px; }
.nh-kt5 .kt-chev { display: inline-flex; vertical-align: middle; margin-left: var(--space-1, 4px); color: var(--kt5-mut); }
.nh-kt5 .kt-chev svg { transition: transform .15s; }
.nh-kt5 .kt-row[aria-expanded="true"] .kt-chev svg { transform: rotate(180deg); }
.nh-kt5 .kt-t > tbody > tr.kt-detail > td { text-align: left; padding: 0 0 var(--space-4, 16px); white-space: normal; }
