/* =====================================================================
   vt-raporty.css — wspólny styl RAPORTÓW (sbRaportPlugin) dla wszystkich
   aplikacji: admin, accountant, kasa, kasa uproszczona, dystrybutor,
   organizator. Wydzielone z main.css, bo kasa ładuje własny cashbox.css.
   Zmienne --vt-* są zdefiniowane w main.css oraz w cashbox.css.
   Ładowane ZARAZ PO głównym arkuszu aplikacji (kolejność kaskady jak przed
   wydzieleniem — przed motywem flick).
   ===================================================================== */

/* =====================================================================
   .vt-rap — RAPORTY (sbRaportPlugin): wspólna skorupa nowego wyglądu.
   Użycie w szablonie raportu (gałąź admin/accountant):
     <div class="vt-page-head"><h1 …>Tytuł</h1></div>
     <div class="vt-list vt-rap"><div class="vt-rap-cols">
       <div class="vt-rap-side">rpMenu/menu</div>
       <div class="vt-rap-main">…dotychczasowa zawartość raportu…</div>
     </div></div>
   Stylowanie zaczepia się o ISTNIEJĄCE klasy legacy (n-*, #raport_filter,
   ui-state-default, div.button) — szablony wyników bez zmian. print.css jest
   ładowany PO main.css z media=screen, przebijamy go #all + !important.
   Kasa/dystrybutor (cashbox.css) nie znają .vt-rap — zero wpływu.
   Selektory pozycyjne legacy (#all > table:nth-child(5)…) po zmianie
   szkieletu na divy przestają łapać — celowo.
   ===================================================================== */
#all .vt-rap .vt-rap-cols { display: flex; gap: 16px; align-items: flex-start; }
#all .vt-rap .vt-rap-side { flex: 0 0 252px; min-width: 0; }
#all .vt-rap .vt-rap-main { flex: 1 1 auto; min-width: 0; max-width: 1040px; }

/* Neutralizacja legacy tabel-wrapperów (width:768px, border-left:5px…) */
#all .vt-rap .vt-rap-main > table {
  width: 100% !important;
  border: none !important;
  background: transparent !important;
  border-collapse: separate !important; border-spacing: 0 !important;
}
#all .vt-rap .vt-rap-main > table > tbody > tr > td,
#all .vt-rap .vt-rap-main > table > tbody > tr > th {
  background: transparent !important; border: none !important; padding: 0 !important;
  text-align: left;
}
#all .vt-rap .vt-rap-main table { background-color: transparent; }

/* --- karta menu raportów (rpMenu, gałąź vt) --- */
#all .vt-rap-menu {
  background: var(--vt-surface);
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  overflow: hidden;
  margin: 0 0 16px;
}
#all .vt-rap-menu-head {
  padding: 12px 12px 4px;
  font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase;
  color: var(--vt-text-muted-2);
}
#all .vt-rap-menu-search { position: relative; padding: 8px 10px 4px; }
#all .vt-rap-menu-search input {
  width: 100%; box-sizing: border-box; height: 32px;
  padding: 0 28px 0 10px !important; margin: 0 !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: var(--vt-surface) !important; color: var(--vt-text-body) !important;
  font-family: var(--vt-font); font-size: 12.5px !important;
}
#all .vt-rap-menu-search input:focus {
  outline: none; border-color: var(--vt-accent) !important;
  box-shadow: 0 0 0 3px var(--vt-accent-soft);
}
#all .vt-rap-menu-search input::placeholder { color: var(--vt-text-faint); }
#all .vt-rap-menu #raport-search-clear {
  position: absolute; right: 18px; top: 50%; transform: translateY(-46%);
  cursor: pointer; color: var(--vt-text-faint); font-weight: 700; font-size: 18px;
  line-height: 1;
}
#all .vt-rap-menu #raport-search-clear:hover { color: var(--vt-text-2); }
#all .vt-rap-menu #raport-menu-items { padding: 6px; }
#all .vt-rap-menu #raport-menu-items p { margin: 0 !important; padding: 0 !important; width: auto !important; }
#all .vt-rap-menu #raport-menu-items p > a {
  display: block; padding: 7px 10px; border-radius: 6px;
  color: var(--vt-text-2); text-decoration: none;
  font-family: var(--vt-font); font-size: 12.5px; font-weight: 500; line-height: 1.35;
}
#all .vt-rap-menu #raport-menu-items p > a:hover {
  background: var(--vt-row-hover); color: var(--vt-text);
}
/* legacy a:active{color:#fff!important} wybiela tekst przy kliku */
#all .vt-rap-menu #raport-menu-items p > a:active { color: var(--vt-text) !important; }
#all .vt-rap-menu #raport-menu-items p > a.is-active {
  background: var(--vt-accent-soft); color: var(--vt-accent); font-weight: 700;
}
#all .vt-rap-menu #raport-menu-items p > a.is-active:active { color: var(--vt-accent) !important; }
/* separator grupy raportów */
#all .vt-rap-menu #raport-menu-items p.vt-rap-sep {
  border-top: 1px solid var(--vt-border-row);
  margin-top: 6px !important; padding-top: 6px !important;
}
/* nagłówek grupy raportów w menu (SB-4021) — div, nie <p>: szukajka
   iteruje po <p> i nagłówków nie dotyka (JS chowa je osobno przy szukaniu) */
#all .vt-rap-menu #raport-menu-items .vt-rap-menu-h {
  padding: 14px 10px 4px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase;
  color: var(--vt-text-muted-2);
}
#all .vt-rap-menu #raport-menu-items .vt-rap-menu-h:first-child { padding-top: 6px; }
/* pigułka „nowy” */
#all .vt-rap-new {
  float: right; margin-left: 6px;
  background: var(--vt-amber-bg); color: var(--vt-amber);
  border-radius: 999px; padding: 1px 7px;
  font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
}

/* --- pasek narzędzi raportu (z _filter.php: O raporcie / Drukuj / PDF / filtr) --- */
/* nagłówek raportu w treści dubluje h1 strony (.vt-page-head) — chowamy */
#all .vt-rap .n-raport-header { display: none !important; }
#all .vt-rap div.button.ui-state-default {
  display: inline-flex; align-items: center;
  width: auto !important; padding: 8px 14px !important; margin: 0 0 14px 8px !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap div.button.ui-state-default:hover {
  background: var(--vt-row-hover) !important; border-color: var(--vt-border-input) !important;
  color: var(--vt-text) !important;
}
#all .vt-rap div.button.ui-state-default > .ui-icon { display: none; }
#all .vt-rap div.btn_raport_info { margin-left: 0 !important; }

/* --- panel „O raporcie” --- */
#all .vt-rap .about-raport {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius);
  padding: 16px !important; margin: 0 0 16px; clear: both;
}
#all .vt-rap .about-raport > .ui-widget-header {
  background: transparent !important; border: none !important;
  padding: 0 0 8px !important; margin: 0 !important;
  font-family: var(--vt-font); font-size: 13.5px !important; font-weight: 700 !important;
  color: var(--vt-text) !important; text-align: left;
}
#all .vt-rap .about-raport .ui-state-default {
  background: transparent !important; border: none !important;
  padding: 12px 0 2px !important; text-align: left !important;
  text-transform: uppercase; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .6px; color: var(--vt-text-muted-2) !important;
}
#all .vt-rap .about-raport table th.ui-state-default {
  background: var(--vt-surface-2) !important;
  padding: 8px 10px !important; border-bottom: 1px solid var(--vt-border) !important;
}
#all .vt-rap .about-raport .ui-widget-content,
#all .vt-rap .about-raport td.ui-widget-content {
  background: transparent !important; border: none !important;
  border-bottom: 1px solid var(--vt-border-row) !important;
  padding: 8px 10px !important; font-size: 12.5px; color: var(--vt-text-body);
  text-align: left;
}
#all .vt-rap .about-raport img { max-height: 16px; }

/* --- obszar filtra (#raport_filter) --- */
#all .vt-rap #raport_filter:not(.vt-rap-form) {
  background: transparent !important; padding: 0 !important; clear: both;
  width: 100% !important;
}
#all .vt-rap #raport_filter h1 {
  background: transparent !important; border: none !important; box-shadow: none !important;
  font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .8px; color: var(--vt-text-muted-2) !important;
  padding: 12px 2px 6px !important; margin: 0 !important; display: block;
  text-align: left !important; float: none !important;
}
/* karty filtra: divy .ui-state-default.ui-corner-all (sbUserRaport) oraz
   tabela-formularz z klasą .vt-rap-form (raporty z formularzem w tabeli) */
#all .vt-rap #raport_filter div.ui-state-default.ui-corner-all:not(.button),
#all .vt-rap #raport_filter #more-filter,
#all .vt-rap table.vt-rap-form {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius) !important;
  box-shadow: none !important;
  padding: 4px 10px 10px !important;
}
#all .vt-rap table.vt-rap-form {
  width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important;
  padding: 4px !important; overflow: hidden;
}
/* komórki-etykiety i komórki pól */
#all .vt-rap #raport_filter td.ui-state-default,
#all .vt-rap #raport_filter th.ui-state-default {
  background: transparent !important; border: none !important;
  font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .6px; color: var(--vt-text-muted-2) !important;
  text-align: left !important; padding: 10px 6px 4px !important;
}
#all .vt-rap #raport_filter th.ui-widget-content,
#all .vt-rap #raport_filter td.ui-widget-content {
  background: transparent !important; border: none !important;
  text-align: left !important; font-weight: 400 !important;
  padding: 6px !important; font-size: 12.5px; color: var(--vt-text-body);
  height: auto !important;
}
/* nagłówek karty-formularza („Opcje raportu”) */
#all .vt-rap #raport_filter th.ui-widget-header {
  background: transparent !important; border: none !important;
  border-bottom: 1px solid var(--vt-border) !important;
  font-size: 13px !important; font-weight: 700 !important;
  color: var(--vt-text) !important; text-align: left !important;
  padding: 10px 8px 10px !important;
}
/* w tabeli-formularzu wiersze rozdzielamy liniami */
#all .vt-rap table.vt-rap-form > tbody > tr > th.ui-state-default {
  padding: 12px 8px !important; vertical-align: top;
  border-bottom: 1px solid var(--vt-border-row) !important;
}
#all .vt-rap table.vt-rap-form > tbody > tr > td.ui-widget-content,
#all .vt-rap table.vt-rap-form > tbody > tr > th.ui-widget-content {
  border-bottom: 1px solid var(--vt-border-row) !important;
  padding: 10px 8px !important;
}
#all .vt-rap table.vt-rap-form > tbody > tr:last-child > th,
#all .vt-rap table.vt-rap-form > tbody > tr:last-child > td { border-bottom: none !important; }
/* pola tekstowe/daty i selecty w filtrze */
#all .vt-rap #raport_filter input[type="text"],
#all .vt-rap #raport_filter select {
  height: 32px; box-sizing: border-box; padding: 0 10px !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: var(--vt-surface) !important; color: var(--vt-text-body) !important;
  font-family: var(--vt-font); font-size: 12.5px !important;
  margin: 2px 4px 2px 0 !important;
}
#all .vt-rap #raport_filter input[type="text"]:focus {
  outline: none; border-color: var(--vt-accent) !important;
  box-shadow: 0 0 0 3px var(--vt-accent-soft);
}
#all .vt-rap #raport_filter input.date-field,
#all .vt-rap #raport_filter input[name="date_from"],
#all .vt-rap #raport_filter input[name="date_to"] { width: 110px !important; }
#all .vt-rap #raport_filter input[type="checkbox"] {
  accent-color: var(--vt-accent); width: 15px; height: 15px;
  vertical-align: middle; margin: 0 6px 0 0; cursor: pointer;
}
#all .vt-rap #raport_filter label { font-size: 12.5px; color: var(--vt-text-body); cursor: pointer; }
/* chipy skrótów dat (Dzisiaj/Wczoraj/…, jQuery .button() dokłada klasy ui-*) */
#all .vt-rap #raport_filter button.btn {
  padding: 5px 12px !important; margin: 2px 6px 2px 0 !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 999px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap #raport_filter button.btn:hover {
  background: var(--vt-accent-soft) !important;
  border-color: var(--vt-accent) !important; color: var(--vt-accent) !important;
}
#all .vt-rap #raport_filter button.btn .ui-button-text { padding: 0 !important; }
/* wiersz akcji filtra (Pokaż wyniki / Wyczyść filtr) */
#all .vt-rap #raport_filter th:not([class]) { background: transparent !important; border: none !important; text-align: left; padding: 0 !important; }
#all .vt-rap #raport_filter th:not([class]) > div { margin: 14px 2px 0 !important; text-align: left !important; }
#all .vt-rap a#btn_raport,
#all .vt-rap a.vt-rap-primary {
  display: inline-flex; align-items: center;
  width: auto !important; padding: 9px 18px !important; margin: 0 8px 8px 0 !important;
  background: var(--vt-accent) !important;
  border: 1px solid var(--vt-accent) !important; border-radius: 6px !important;
  color: #fff !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
  float: none !important;
}
#all .vt-rap a#btn_raport:hover,
#all .vt-rap a.vt-rap-primary:hover {
  background: var(--vt-accent-hover) !important; border-color: var(--vt-accent-hover) !important;
  color: #fff !important;
}
#all .vt-rap a#btn_raport > .ui-icon,
#all .vt-rap a.vt-rap-primary > .ui-icon { display: none; }
#all .vt-rap a.vt-rap-primary i { font-style: normal; opacity: .75; padding-left: 5px; }
#all .vt-rap a#btn_clear,
#all .vt-rap a#btn_reset {
  display: inline-flex; align-items: center;
  width: auto !important; padding: 9px 16px !important; margin: 0 8px 8px 0 !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap a#btn_clear:hover,
#all .vt-rap a#btn_reset:hover { background: var(--vt-row-hover) !important; color: var(--vt-text) !important; }
#all .vt-rap a#btn_clear:active,
#all .vt-rap a#btn_reset:active { color: var(--vt-text-2) !important; }
#all .vt-rap a#btn_clear > .ui-icon,
#all .vt-rap a#btn_reset > .ui-icon { display: none; }

/* --- wyniki raportu --- */
/* „Raport za dzień/okres”, „Użytkownik: …” */
#all .vt-rap .n-raport-user-info {
  float: none !important; width: auto !important;
  margin: 4px 0 10px !important; padding: 0 !important;
  background: transparent !important;
  font-size: 13px; color: var(--vt-text-2);
}
#all .vt-rap .n-raport-user-info .bold,
#all .vt-rap .n-header-filter .bold { font-weight: 700; color: var(--vt-text); }
/* pasek podsumowania filtrów */
#all .vt-rap .n-header-filter {
  float: none !important; width: auto !important;
  margin: 0 0 6px !important; padding: 10px 12px !important;
  background: var(--vt-accent-soft) !important; border-radius: 6px;
  font-size: 12px; color: var(--vt-text-2); line-height: 1.6;
}
#all .vt-rap .n-header-filter img.n-filter-header-img { display: none; }
/* nagłówki sekcji wyników */
#all .vt-rap .n-raport-separator {
  background: transparent !important; float: none !important; width: auto !important;
  padding: 18px 2px 8px !important; margin: 0 !important;
  font-size: 13.5px !important; font-weight: 700 !important; color: var(--vt-text) !important;
}
#all .vt-rap .n-raport-separator.empty {
  background: var(--vt-surface-2) !important;
  border: 1px dashed var(--vt-border-input); border-radius: var(--vt-radius);
  color: var(--vt-text-muted) !important; font-weight: 400 !important;
  padding: 14px !important; margin: 8px 0 !important;
}
/* tabela wyników = biała karta */
#all .vt-rap table.n-table-print {
  width: 100% !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius);
  border-collapse: separate !important; border-spacing: 0 !important;
  overflow: hidden;
  margin: 0 0 6px !important;
}
#all .vt-rap table.n-table-print td.n-description {
  background: var(--vt-surface-2) !important; color: var(--vt-text-muted) !important;
  text-transform: uppercase; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .6px; padding: 9px 12px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border) !important;
}
#all .vt-rap table.n-table-print td.n-item {
  background: transparent !important;
  padding: 8px 12px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
  font-size: 12.5px !important; color: var(--vt-text-body) !important;
}
#all .vt-rap table.n-table-print tr:hover td.n-item { background: var(--vt-row-hover) !important; }
#all .vt-rap table.n-table-print td.n-item-sum {
  background: var(--vt-surface-2) !important;
  padding: 8px 12px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
  font-size: 12.5px !important; font-weight: 600 !important; color: var(--vt-text-2) !important;
}
#all .vt-rap table.n-table-print td.n-summary {
  background: var(--vt-surface-2) !important;
  padding: 9px 12px !important;
  border: none !important; border-top: 1px solid var(--vt-border) !important;
  font-size: 12.5px !important; font-weight: 700 !important; color: var(--vt-text) !important;
}
/* --- neutralizacja wrapperów wewnątrz #raport_filter ---
   sbUserRaport: #raport_filter to TABELA (komórki-wrappery bez klas);
   rpReturnRaport: #raport_filter to DIV z tabelą-wrapperem width:768px. */
#all .vt-rap #raport_filter > table:not(.vt-rap-form) {
  width: 100% !important; border: none !important;
  background: transparent !important;
  border-collapse: separate !important; border-spacing: 0 !important;
}
#all .vt-rap #raport_filter > table:not(.vt-rap-form) > tbody > tr > td,
#all .vt-rap table#raport_filter:not(.vt-rap-form) > tbody > tr > td {
  background: transparent !important; border: none !important; padding: 0 !important;
  text-align: left;
}
/* legacy: #raport_filter, #sbUserRaport_filter { padding: 0 10px 10px } — karta ma własny */
#all .vt-rap #raport_filter form { padding: 0 !important; margin: 0 !important; }
/* tabele pomocnicze bez klas (toolbar, siatki pól) — bez białych teł legacy */
/* UWAGA: dotyczy tylko obszaru FILTRA (pola wyboru do lewej — uwaga z SB-4021).
   Wczesniej regula obejmowala takze TABELE WYNIKOW i wymuszala `text-align:left`
   na komorkach bez klasy, przez co dane rozjezdzaly sie z wysrodkowanymi
   naglowkami (np. Kody rabatowe). */
#all .vt-rap #raport_filter table > tbody > tr > td:not([class]),
#all .vt-rap #raport_filter table > tbody > tr > th:not([class]),
#all .vt-rap table.vt-rap-form > tbody > tr > td:not([class]),
#all .vt-rap table.vt-rap-form > tbody > tr > th:not([class]) {
  background: transparent !important; border: none !important;
  text-align: left !important;
}
/* poza filtrem: tylko wyzerowanie legacy tla/ramek, BEZ ruszania wyrownania */
#all .vt-rap .vt-rap-main table:not(.n-table-print) > tbody > tr > td:not([class]):not(#raport_filter *),
#all .vt-rap .vt-rap-main table:not(.n-table-print) > tbody > tr > th:not([class]):not(#raport_filter *) {
  background: transparent !important; border: none !important;
}
/* przyciski eksportu (XLS) mają inline display:block/float — przebijamy.
   UWAGA: NIE dawać display !important na #btn_raport (JS chowa go .hide()
   po kliknięciu — inline display:none musi wygrywać). */
#all .vt-rap a.vt-rap-primary {
  display: inline-flex !important;
  float: none !important;
  width: auto !important;
  margin: 12px 8px 0 0 !important;
}

/* grupa checkboxów w delikatnej ramce (SB-4021) — analogicznie do kart .vt-ms;
   wrapper <div class="vt-rap-checkgroup"> wokół listy input+label */
#all .vt-rap .vt-rap-checkgroup {
  display: inline-block; box-sizing: border-box;
  min-width: 300px; max-height: 260px; overflow: auto;
  background: var(--vt-surface);
  border: 1px solid var(--vt-border-input); border-radius: 6px;
  padding: 10px 12px; line-height: 2;
  text-align: left;
  height: auto !important; /* inline height:100px na legacy divach przewijanych */
  /* legacy `#all #report{text-transform:uppercase}` wersalikuje formularz zwrotów */
  text-transform: none;
}
#all .vt-rap .vt-rap-checkgroup label,
#all .vt-rap #raport_filter label { text-transform: none; }

/* --- rozszerzenia dla rpSales / sbRaport / sbRepertoireSumaryRaport --- */
/* legacy `#all #report{text-transform:uppercase}` (formularze o id=report) */
#all .vt-rap #report, #all .vt-rap form#report { text-transform: none; }
/* naglowki sekcji w kartach filtra jako DIV (rpSales: "Grupy Wydarzeń:" itd.) */
#all .vt-rap #raport_filter div.ui-state-default:not(.ui-corner-all):not(.button) {
  background: transparent !important; border: none !important;
  font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .6px; color: var(--vt-text-muted-2) !important;
  text-align: left !important; padding: 12px 6px 4px !important; margin: 0 !important;
  clear: both;
  /* legacy nadaje tym divom stałą szerokość i centruje — pełna szerokość, do lewej */
  width: auto !important; float: none !important; display: block;
}
#all .vt-rap #raport_filter #more-filter table {
  margin: 0 !important;
}
/* legacy `#raport_filter #more-filter{display:flex;align-items:center}` (~6347)
   centrowal WSZYSTKIE dzieci sekcji; h1 dodatkowo centrowany regula ~6216.
   UWAGA: NIE nadpisywac display (jQuery .hide() chowa sekcje inline stylem) —
   wystarczy zniesc centrowanie dzieci flexa. */
#all .vt-rap #raport_filter #more-filter {
  align-items: stretch !important;
}
/* wiersze tabeli-formularza bez klas na komorkach (sumaryRaport: sposoby platnosci) */
#all .vt-rap table.vt-rap-form > tbody > tr > td:not([class]) {
  background: transparent !important; border: none !important;
  border-bottom: 1px solid var(--vt-border-row) !important;
  padding: 10px 8px !important; text-align: left !important; vertical-align: top;
}
/* selecty wielokrotne (rpSales: uzytkownicy) nie moga miec wysokosci pola */
#all .vt-rap #raport_filter select[multiple] { height: auto; min-height: 90px; }
/* pasek-naglowek tresci dublujacy h1 strony (rpSales "Szybki raport",
   sbRaport "Raporty szczegółowe") — pierwsze dziecko komorki glownej */
#all .vt-rap .vt-rap-main > table > tbody > tr > td > div.ui-widget-header:first-child {
  display: none !important;
}
/* tabela n-table-print uzyta jako WRAPPER toolbara+filtra (sumaryRaport
   repertoire/event) — nie robic z niej karty wynikow */
#all .vt-rap table.n-table-print:has(.btn_raport_info) {
  background: transparent !important; border: none !important; margin: 0 !important;
}
#all .vt-rap table.n-table-print:has(.btn_raport_info) > tbody > tr > td {
  background: transparent !important; border: none !important; padding: 0 !important;
}
/* wyniki rpSales (AJAX do #raport_result) i sbRaport: separator sekcji */
#all .vt-rap .raport-separator {
  background: transparent !important; border: none !important;
  padding: 18px 2px 8px !important; margin: 0 !important;
  font-size: 13.5px !important; font-weight: 700 !important; color: var(--vt-text) !important;
  text-transform: none !important;
}
/* tabele wynikow .table_print (rpSales, sbRaport) = karta jak n-table-print */
#all .vt-rap table.table_print {
  width: 100% !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius);
  border-collapse: separate !important; border-spacing: 0 !important;
  overflow: hidden;
  margin: 0 0 6px !important;
}
#all .vt-rap table.table_print th.ui-state-default,
#all .vt-rap table.table_print td.ui-widget-header {
  background: var(--vt-surface-2) !important; color: var(--vt-text-muted) !important;
  text-transform: uppercase; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .6px; padding: 9px 12px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border) !important;
  text-align: left;
}
#all .vt-rap table.table_print td.ui-widget-content,
#all .vt-rap table.table_print td.ui-state-default {
  background: transparent !important;
  padding: 8px 12px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
  font-size: 12.5px !important; color: var(--vt-text-body) !important;
  text-align: left;
}
/* wiersze sum w .table_print: th.ui-state-default w tbody za wierszami danych
   (rpSales "Suma") zostawiamy jak naglowek — odrozniamy po Aright/Acenter */
#all .vt-rap table.table_print th.ui-state-default.Aright {
  text-align: right !important; color: var(--vt-text) !important; text-transform: none;
  font-size: 12.5px !important;
}
#all .vt-rap #raport_result { margin-top: 4px; }

/* pickery komponentow (lupki Wydarzenie/Termin/Lokalizacje) — obramowany
   przycisk jak w .vt-edit; markup: a.title > span.small-button.ui-icon */
#all .vt-rap .vt-rap-main a.title:has(> .small-button.ui-icon) {
  /* !important konieczne: legacy reguła słowników
     `#all .vt-list td:last-child > div > table tbody td:last-child > a:not(...)`
     ustawia height/width 27×30 z !important, a skorupa raportu ma klasę vt-list */
  display: inline-flex !important; align-items: center; justify-content: center;
  min-width: 34px !important; width: 34px !important; height: 32px !important;
  padding: 0 !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: #fff !important; transition: all .12s;
}
#all .vt-rap .vt-rap-main a.title:has(> .small-button.ui-icon):hover {
  background: var(--vt-accent-soft); border-color: var(--vt-accent);
}
#all .vt-rap .vt-rap-main a.title > .small-button.ui-icon { float: none !important; margin: 0 !important; }

/* pasek akcji raportu (sbRaport: div[float:left] z Pokaz wyniki/Wyczysc) —
   biala stopka-karta zamiast przyciskow luzem na szarym tle */
#all .vt-rap .vt-rap-actions {
  float: none !important;
  display: block;
  margin: 16px 0 !important;
  background: var(--vt-surface);
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  padding: 12px !important;
}
#all .vt-rap .vt-rap-actions a#btn_raport,
#all .vt-rap .vt-rap-actions a#btn_clear {
  margin: 0 8px 0 0 !important;
}
/* wrapper lupki (np. Lokalizacje w sbRaport: div[float:left] wokol komponentu)
   ma legacy padding/margines — lupki maja byc wyrownane 1:1 */
#all .vt-rap #raport_filter td > div:has(> a.title) {
  padding: 0 !important; margin: 0 !important; float: none !important;
}

/* --- dialogi wyboru komponentow (SB-4021): Wydarzenie/Termin/Lokalizacje itd. --- */
/* wrapper jQuery UI bywa przezroczysty — luka miedzy trescia a panelem
   przyciskow (Anuluj/Wybierz) pokazywala strone pod spodem; spojne biale okno */
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: 10px;
  box-shadow: 0 12px 40px rgba(15, 30, 45, .18);
  overflow: hidden;
  padding: 0 !important;
}
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) > .ui-dialog-buttonpane {
  background: var(--vt-surface) !important;
  border: none !important; border-top: 1px solid var(--vt-border) !important;
  margin: 0 !important; padding: 10px 14px !important;
}
/* tresc dialogu bez poziomego suwaka; tabele maja sie miescic w oknie */
.ui-dialog > .ui-dialog-content[id*="ComponentDialog"] { overflow-x: hidden !important; }
.ui-dialog > .ui-dialog-content[id*="ComponentDialog"] > table { width: 100% !important; }
/* zadna tabela w dialogu nie moze byc szersza niz okno — overflow-x:hidden
   obcinalo kolumne WYBIERZ, gdy lista (szersze dane) przekraczala szerokosc */
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] table { max-width: 100% !important; }
/* okno dialogu dopasowuje szerokosc do tresci: sztywne width:700 z .dialog()
   bylo mniejsze niz min-content tabel (stale szerokosci pol filtra) i kolumna
   WYBIERZ byla obcinana; nadpisujemy inline width jQuery */
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) {
  width: auto !important;
  max-width: calc(100vw - 60px);
}
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) > .ui-dialog-content[id*="ComponentDialog"] {
  width: auto !important;
}
/* rozowe wiersze niepublikowanych (.nonPublish #feebee) -> stonowany amber,
   jak na liscie terminow (.vt-repertoire) */
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] tr.nonPublish,
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] tr.nonPublish > td {
  background: var(--vt-amber-bg) !important;
}
/* rpSales, filtry dodatkowe: wspolna kolumna etykiet — kazde pojedyncze pole
   zaczyna sie w tym samym miejscu przy lewej (SB-4021) */
#all .vt-rap #raport_filter #more-filter table th.ui-widget-content {
  width: 190px !important; min-width: 190px !important;
}

/* --- dialogi ComponentDialog, runda 2 (SB-4021): marginesy + przyciski --- */
/* margines wewnetrzny tresci (brak prawego marginesu przy tabeli/scrollbarze) */
.ui-dialog > .ui-dialog-content[id*="ComponentDialog"] {
  padding: 12px 14px !important;
  box-sizing: border-box;
}
/* rzedowe „Wybierz" i inne przyciski w tresci dialogu — vt primary;
   pomijamy pager (biale pigulki), juz ostylowane .vt-filter-* i przyciski czyszczenia */
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button:not(.pager):not(.vt-filter-search):not(.vt-filter-clear):not([id*="clear"]) {
  background: var(--vt-accent) !important;
  border: 1px solid var(--vt-accent) !important;
  color: #fff !important; border-radius: 6px !important;
  padding: 6px 12px !important;
  font-family: var(--vt-font); font-size: 12px !important; font-weight: 600 !important;
  box-shadow: none !important; text-shadow: none !important;
}
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button:not(.pager):not(.vt-filter-clear):not([id*="clear"]):hover {
  background: var(--vt-accent-hover) !important; border-color: var(--vt-accent-hover) !important;
  color: #fff !important;
}
/* przyciski czyszczenia filtra (np. #repertoire_filters_clear_button — legacy czerwony) — secondary */
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button[id*="clear"],
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button.vt-filter-clear {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border-input) !important;
  color: var(--vt-text-2) !important; border-radius: 6px !important;
  box-shadow: none !important; text-shadow: none !important;
}
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button[id*="clear"]:hover {
  background: var(--vt-row-hover) !important; color: var(--vt-text) !important;
}
.ui-dialog .ui-dialog-content[id*="ComponentDialog"] a.button[id*="clear"]:active { color: var(--vt-text-2) !important; }
/* stopka dialogu: Anuluj (pierwszy) = secondary, Wybierz / Wybierz i zakoncz = primary */
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) .ui-dialog-buttonpane button {
  background: var(--vt-accent) !important;
  border: 1px solid var(--vt-accent) !important;
  color: #fff !important; border-radius: 6px !important;
  padding: 8px 16px !important; margin: 0 0 0 8px !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) .ui-dialog-buttonpane button:hover {
  background: var(--vt-accent-hover) !important; border-color: var(--vt-accent-hover) !important;
}
/* Anuluj (pierwszy przycisk) = secondary; legacy czerwony blok celuje pozycyjnie
   `body > div:nth-child(N) > div.ui-dialog-buttonpane... > div > button:nth-child(1)`
   z wysoka specyficznoscia — stad rozbudowany selektor z .ui-dialog-buttonset */
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) > div.ui-dialog-buttonpane > div.ui-dialog-buttonset > button:first-child {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border-input) !important;
  color: var(--vt-text-2) !important;
}
body > .ui-dialog:has(> .ui-dialog-content[id*="ComponentDialog"]) > div.ui-dialog-buttonpane > div.ui-dialog-buttonset > button:first-child:hover {
  background: var(--vt-row-hover) !important; color: var(--vt-text) !important;
}

/* --- generyczna karta filtra (SB-4021 „czesc raportow nie ma bialego tla") ---
   Wiekszosc pozostalych raportow ma filtr w div#raport_filter z sekcyjnymi
   BELKAMI (div.ui-state-default.ui-corner-all bez tabel) i golymi polami.
   Karta na calym divie; wykluczamy filtry typu sbUserRaport (karty-kontenery
   Z TABELAMI w srodku), vt-rap-form i rpSales (#more-filter). */
#all .vt-rap div#raport_filter:not(:has(div.ui-state-default.ui-corner-all:not(.button) table, table.vt-rap-form, #more-filter)) {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  padding: 6px 14px 12px !important;
  margin: 0 0 16px;
}
/* belki sekcyjne w karcie -> naglowki sekcji (transparent, uppercase) */
#all .vt-rap div#raport_filter div.ui-state-default.ui-corner-all:not(.button):not(:has(table)) {
  background: transparent !important;
  border: none !important; box-shadow: none !important;
  font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .6px; color: var(--vt-text-muted-2) !important;
  text-align: left !important; padding: 12px 2px 4px !important; margin: 0 !important;
  width: auto !important; float: none !important;
}

/* belki div.ui-widget-header na poczatku partiali filtrow (np. "Opcje raportu")
   -> etykieta sekcji nad karta (jak h1 "Filtr podstawowy" w sbUserRaport) */
#all .vt-rap div#raport_filter > div.ui-widget-header,
#all .vt-rap div#raport_filter > form > div.ui-widget-header {
  background: transparent !important; border: none !important; box-shadow: none !important;
  font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .8px; color: var(--vt-text-muted-2) !important;
  text-align: left !important; padding: 10px 2px 6px !important; margin: 0 !important;
}

/* pasek akcji w karcie filtra: przyciski (#btn_raport/#btn_reset/#btn_clear)
   lezace luzem w #raport_filter dostaja biala stopke zamiast szarego tla */
#all .vt-rap #raport_filter > div:has(a#btn_raport),
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) {
  background: var(--vt-surface);
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  padding: 12px !important;
  margin: 16px 0 !important;
  overflow: hidden;
}
/* uklad flex zamiast floatow (legacy „float:right; margin-top:-15px" na grupie
   XLS/PDF nachodzil na przyciski po wylaczeniu floatow) */
#all .vt-rap #raport_filter > div:has(a#btn_raport),
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
#all .vt-rap #raport_filter > div:has(a#btn_raport) > div,
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) > div {
  float: none !important; margin: 0 !important;
  display: flex; align-items: center; gap: 8px;
}
/* grupa eksportow (drugi blok przyciskow) dosuwana do prawej */
#all .vt-rap #raport_filter > div:has(a#btn_raport) > div:nth-of-type(2),
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) > div:nth-of-type(2) {
  margin-left: auto !important;
}
/* legacy rozpychacz float-owy jest w flexie zbedny */
#all .vt-rap #raport_filter > div:has(a#btn_raport) > div[style*="clear"],
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) > div[style*="clear"] {
  display: none !important;
}

/* --- tabele wynikow raportow bez wlasnych klas (rpPass*, rpDeposit, ...) ---
   Naglowki `td.ui-widget-header` i wiersze sum `.ui-state-default` mialy legacy
   szare/ciemne tla; ujednolicamy z kartami .n-table-print / .table_print. */
#all .vt-rap .vt-rap-main table td.ui-widget-header {
  background: var(--vt-surface-2) !important; color: var(--vt-text-muted) !important;
  text-transform: uppercase; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .5px; padding: 9px 10px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border) !important;
  text-align: left; text-shadow: none !important;
}
#all .vt-rap .vt-rap-main table tr.ui-widget-header > td {
  background: transparent !important;
  border: none !important;
  color: var(--vt-text) !important;
  font-size: 13.5px !important; font-weight: 700 !important;
  text-transform: none !important; letter-spacing: 0;
  text-align: left !important; padding: 16px 2px 8px !important;
}
#all .vt-rap .vt-rap-main table td.ui-state-default {
  background: var(--vt-surface-2) !important; color: var(--vt-text-2) !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
  padding: 8px 10px !important; font-size: 12.5px !important; font-weight: 600 !important;
  text-shadow: none !important;
}
#all .vt-rap .vt-rap-main table td.ui-widget-content {
  background: transparent !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
  padding: 8px 10px !important; font-size: 12.5px !important; color: var(--vt-text-body) !important;
}
/* wewnetrzna tabela WYNIKOW = biala karta (gdy nie ma wlasnej klasy).
   `:has(td.ui-widget-header)` = to naprawde tabela z danymi; `:not(:has(div.button))`
   wyklucza pasek narzedzi (O raporcie / Drukuj / PDF), ktory tez jest tabela —
   bez tego przyciski dotykaly krawedzi bialego paska. */
#all .vt-rap .vt-rap-main > table > tbody > tr > td > table:has(td.ui-widget-header):not(:has(div.button)) {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius);
  border-collapse: separate !important; border-spacing: 0 !important;
  overflow: hidden; margin: 0 0 8px !important;
}

/* --- boczne submenu raportow (Raporty Karnetów, Szablony, Generuj) --- */
#all .vt-rap .vt-rap-side > table,
#all .vt-rap .vt-rap-side > div.ui-widget-content,
#all .vt-rap .vt-rap-side > form > div.ui-widget-content {
  width: auto !important;
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important;
  border-radius: var(--vt-radius) !important;
  margin: 0 0 16px !important;
  padding: 6px !important;
  box-shadow: none !important;
}
#all .vt-rap .vt-rap-side > div.ui-widget-content > div:first-child,
#all .vt-rap .vt-rap-side > table > tbody > tr > td > div:first-child {
  background: transparent !important; border: none !important;
  padding: 8px 8px 4px !important; margin: 0 !important;
  font-size: 11px !important; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; color: var(--vt-text-muted-2) !important;
}
#all .vt-rap .vt-rap-side a.button {
  display: block; width: auto !important;
  padding: 7px 10px !important; margin: 2px 0 !important;
  background: transparent !important; border: none !important;
  border-radius: 6px !important; box-shadow: none !important; text-shadow: none !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 500 !important;
  text-align: left;
}
#all .vt-rap .vt-rap-side a.button:hover {
  background: var(--vt-row-hover) !important; color: var(--vt-text) !important;
}
#all .vt-rap .vt-rap-side a.button.ui-state-active {
  background: var(--vt-accent-soft) !important; color: var(--vt-accent) !important;
  font-weight: 700 !important;
}
#all .vt-rap .vt-rap-side a.button > .ui-icon { display: none; }

/* inline `background-color: gray` na wierszach SUMA (te same partiale zasilaja
   PDF — szablonow nie ruszamy, przebijamy tylko w widoku vt) */
#all .vt-rap .vt-rap-main [style*="background-color: gray"] {
  background-color: var(--vt-surface-2) !important;
  color: var(--vt-text) !important;
  font-weight: 700 !important;
  padding: 9px 10px !important;
  border-top: 1px solid var(--vt-border) !important;
}

/* --- DataTables w raportach (sbCustomSQL, rpEparagon) ---
   Wtyczka wnosi wlasny wyglad (bootstrapowe .btn-secondary, paginacja, select
   dlugosci strony). Ujednolicamy z reszta zaplecza; scope .vt-rap, wiec kasa
   i widoki legacy zostaja nietkniete. */
#all .vt-rap .dataTables_wrapper {
  background: var(--vt-surface);
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  padding: 12px 14px 6px;
  margin: 16px 0 0;
}
/* pasek gorny: szukajka + przyciski eksportu */
#all .vt-rap .dataTables_wrapper .dataTables_filter label {
  font-size: 12.5px; color: var(--vt-text-muted); display: flex; align-items: center; gap: 8px;
}
#all .vt-rap .dataTables_wrapper .dataTables_filter input {
  height: 32px; box-sizing: border-box; min-width: 220px;
  padding: 0 10px !important; margin: 0 !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: var(--vt-surface) !important; color: var(--vt-text-body) !important;
  font-family: var(--vt-font); font-size: 12.5px !important;
}
#all .vt-rap .dataTables_wrapper .dataTables_filter input:focus {
  outline: none; border-color: var(--vt-accent) !important;
  box-shadow: 0 0 0 3px var(--vt-accent-soft);
}
#all .vt-rap .dt-buttons { display: inline-flex; flex-wrap: wrap; gap: 6px; }
#all .vt-rap .dt-buttons > .btn-group { float: none !important; }
#all .vt-rap .dt-buttons .btn,
#all .vt-rap .dt-buttons button.btn-secondary,
#all .vt-rap .btn-secondary {
  background: var(--vt-surface) !important; background-image: none !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12px !important; font-weight: 600 !important;
  padding: 7px 12px !important; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap .dt-buttons .btn:hover,
#all .vt-rap .btn-secondary:hover {
  background: var(--vt-accent-soft) !important;
  border-color: var(--vt-accent) !important; color: var(--vt-accent) !important;
}
/* tabela */
#all .vt-rap table.dataTable {
  width: 100% !important;
  border-collapse: separate !important; border-spacing: 0 !important;
  border: 1px solid var(--vt-border) !important; border-radius: var(--vt-radius);
  overflow: hidden; margin: 10px 0 !important;
}
#all .vt-rap table.dataTable thead th {
  background: var(--vt-surface-2) !important; color: var(--vt-text-muted) !important;
  text-transform: uppercase; font-size: 10.5px !important; font-weight: 700 !important;
  letter-spacing: .4px; padding: 10px 10px !important; vertical-align: middle;
  border: none !important; border-bottom: 1px solid var(--vt-border) !important;
  text-align: left !important;
}
#all .vt-rap table.dataTable tbody td {
  background: transparent !important;
  padding: 8px 10px !important; font-size: 12.5px !important; color: var(--vt-text-body) !important;
  border: none !important; border-bottom: 1px solid var(--vt-border-row) !important;
}
#all .vt-rap table.dataTable tbody tr:hover td { background: var(--vt-row-hover) !important; }
/* stopka: info + dlugosc strony + paginacja */
#all .vt-rap .dataTables_wrapper .dataTables_info {
  font-size: 12px !important; color: var(--vt-text-muted) !important; padding: 8px 0 !important;
}
#all .vt-rap .dataTables_wrapper .dataTables_length label {
  font-size: 12px; color: var(--vt-text-muted); display: inline-flex; align-items: center; gap: 6px;
}
#all .vt-rap .dataTables_wrapper .dataTables_length select,
#all .vt-rap .dataTables_wrapper .dataTables_length input {
  height: 30px !important; box-sizing: border-box; width: auto !important;
  padding: 0 8px !important; margin: 0 !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: var(--vt-surface) !important; color: var(--vt-text-body) !important;
  font-family: var(--vt-font); font-size: 12.5px !important;
}
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button {
  display: inline-flex; align-items: center;
  padding: 6px 12px !important; margin: 0 0 0 -1px !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 0 !important;
  background: var(--vt-surface) !important; background-image: none !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12px !important; font-weight: 600 !important;
  box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button:first-child { border-radius: 6px 0 0 6px !important; }
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button:last-child { border-radius: 0 6px 6px 0 !important; }
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled) {
  background: var(--vt-accent-soft) !important; color: var(--vt-accent) !important;
  border-color: var(--vt-accent) !important; position: relative; z-index: 1;
}
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--vt-accent) !important; border-color: var(--vt-accent) !important;
  color: #fff !important; position: relative; z-index: 1;
}
#all .vt-rap .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  background: var(--vt-surface-2) !important; color: var(--vt-text-faint) !important;
  opacity: 1 !important; cursor: default;
}

/* miejsce na strzalki sortowania (wtyczka rysuje je absolutnie w komorce) */
#all .vt-rap table.dataTable thead th.sorting,
#all .vt-rap table.dataTable thead th.sorting_asc,
#all .vt-rap table.dataTable thead th.sorting_desc { padding-right: 26px !important; }
/* dodatkowe przyciski akcji w pasku filtra (np. #btn_export_csv) — secondary
   jak "Wyczysc filtr"; legacy dawalo im niebieski tekst i pelna szerokosc */
#all .vt-rap #raport_filter a.button[id^="btn_"]:not(#btn_raport) {
  display: inline-flex; align-items: center;
  width: auto !important; padding: 9px 16px !important; margin: 0 !important;
  background: var(--vt-surface) !important; background-image: none !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap #raport_filter a.button[id^="btn_"]:not(#btn_raport):hover {
  background: var(--vt-row-hover) !important; color: var(--vt-text) !important;
}
#all .vt-rap #raport_filter a.button[id^="btn_"]:not(#btn_raport):active { color: var(--vt-text-2) !important; }
#all .vt-rap #raport_filter a.button[id^="btn_"] > .ui-icon { display: none; }

/* szeroka tabela (duzo kolumn) WYSTAJE poza karte, a przewija sie CALA strona
   (decyzja usera: wewnetrzny suwak byl gorszy w obsludze) */
#all .vt-rap .dataTables_wrapper { max-width: none; box-sizing: border-box; }
#all .vt-rap table.dataTable { width: 100% !important; min-width: max-content; }

/* legacy tabela-wrapper raportu rozciagala sie do min-content DataTables
   (1244px > 1040 karty). table-layout:fixed odcina propagacje szerokosci —
   scope tylko do raportow z DataTables, reszta ukladow nietknieta. */
/* table-layout:fixed trzyma tabele-wrapper w szerokosci kolumny (bez tego
   rozciaga sie do szerokosci DataTables i ciagnie ze soba karte filtra) */
#all .vt-rap .vt-rap-main > table:has(.dataTables_wrapper) {
  table-layout: fixed; width: 100% !important;
}
/* WYSTAJE tylko karta z tabela — karty filtra zostaja w normalnej szerokosci
   kolumny (max-width 1040). Szeroka tabela wychodzi poza kolumne i przewija
   sie CALA strona (decyzja usera). */
#all .vt-rap .dataTables_wrapper { width: max-content; min-width: 100%; }

/* --- reguly ogolne dla raportow z wlasnym ukladem filtra (poza #raport_filter),
   np. rpEparagon: chipy skrotow dat i przycisk submit --- */
#all .vt-rap .vt-rap-main button.btn {
  padding: 5px 12px !important; margin: 2px 6px 2px 0 !important;
  background: var(--vt-surface) !important; background-image: none !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 999px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap .vt-rap-main button.btn:hover {
  background: var(--vt-accent-soft) !important;
  border-color: var(--vt-accent) !important; color: var(--vt-accent) !important;
}
#all .vt-rap .vt-rap-main button.btn .ui-button-text { padding: 0 !important; }
/* przycisk submit formularza filtra = primary */
#all .vt-rap .vt-rap-main button[type="submit"].button {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 9px 18px !important; width: auto !important;
  background: var(--vt-accent) !important; background-image: none !important;
  border: 1px solid var(--vt-accent) !important; border-radius: 6px !important;
  color: #fff !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  cursor: pointer; box-shadow: none !important; text-shadow: none !important;
}
#all .vt-rap .vt-rap-main button[type="submit"].button:hover {
  background: var(--vt-accent-hover) !important; border-color: var(--vt-accent-hover) !important;
}
#all .vt-rap .vt-rap-main button[type="submit"].button > .ui-icon { display: none !important; }
/* pola tekstowe w filtrach spoza #raport_filter */
#all .vt-rap .vt-rap-main table.vt-rap-form input[type="text"],
#all .vt-rap .vt-rap-main form input[type="text"],
#all .vt-rap .vt-rap-main form select {
  height: 32px; box-sizing: border-box; padding: 0 10px !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  background: var(--vt-surface) !important; color: var(--vt-text-body) !important;
  font-family: var(--vt-font); font-size: 12.5px !important;
}

/* --- poprawki po testach (SB-4021) --- */
/* 1. pola dat bywaly legacy width:80px → tekst „2026-07-30" ucinany */
#all .vt-rap #raport_filter input[type="text"],
#all .vt-rap .vt-rap-main form input[type="text"] { min-width: 118px; }
/* 2. lupki pickerow ladowaly w roznych miejscach (poprzedza je tekst roznej
   dlugosci: „Wybierz wydarzenie", „Wybierz termin", albo nic). Float left
   ustawia je zawsze przy lewej krawedzi komorki — jedna pionowa linia. */
#all .vt-rap .vt-rap-main a.title:has(> .small-button.ui-icon) {
  float: left !important; margin: 0 8px 0 0 !important;
}
#all .vt-rap #raport_filter td:has(> a.title),
#all .vt-rap #raport_filter td:has(> div > a.title) { overflow: hidden; }
/* 3. DataTables: przyciski eksportu nie moga sie rozciagac na cala szerokosc
   (ostatnia grupa lamala sie do wlasnego wiersza jako blok) */
#all .vt-rap .dt-buttons { justify-content: flex-end; }
#all .vt-rap .dt-buttons > .btn-group,
#all .vt-rap .dt-buttons > .dt-button {
  flex: 0 0 auto !important; width: auto !important; float: none !important;
}
#all .vt-rap .dataTables_wrapper .col-sm-6 { width: auto !important; }
#all .vt-rap .dataTables_wrapper .row:first-child {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}

/* wrappery pickerow (dowolnie zagniezdzone divy z inline margin-left) —
   zerujemy odsuniecia, zeby lupki stały w jednej pionowej linii */
#all .vt-rap .vt-rap-main div:has(> a.title > .small-button.ui-icon) {
  margin-left: 0 !important; padding-left: 0 !important; float: none !important;
}

/* boczne submenu bez wspolnego wrappera (rpCinema: naglowek + lista jako dwa
   osobne divy w .vt-rap-side) — sklejamy je w jedna karte */
#all .vt-rap .vt-rap-side > div.ui-state-default:first-child {
  background: var(--vt-surface) !important; border: 1px solid var(--vt-border) !important;
  border-bottom: none !important; border-radius: var(--vt-radius) var(--vt-radius) 0 0 !important;
  margin: 0 !important; padding: 12px 12px 4px !important;
  font-size: 11px !important; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; color: var(--vt-text-muted-2) !important;
}
#all .vt-rap .vt-rap-side > div.ui-state-default:first-child + div {
  background: var(--vt-surface) !important;
  border: 1px solid var(--vt-border) !important; border-top: none !important;
  border-radius: 0 0 var(--vt-radius) var(--vt-radius) !important;
  padding: 6px !important; margin: 0 0 16px !important;
}
#all .vt-rap .vt-rap-side > div p { margin: 0 !important; }
#all .vt-rap .vt-rap-side i { font-style: normal; opacity: .65; font-size: 11px; }

/* w pasku akcji (flex) przyciski musza miec ZEROWE marginesy — #btn_raport mial
   resztkowy margin-bottom:8px z reguly primary i siedzial 4px wyzej od reszty */
#all .vt-rap #raport_filter > div:has(a#btn_raport) a.button,
#all .vt-rap #raport_filter > form > div:has(a#btn_raport) a.button,
#all .vt-rap .vt-rap-actions a.button { margin: 0 !important; }

/* stopka DataTables — bootstrapowe klasy siatki bez bootstrapa nachodzily na
   siebie (paginacja na polu „Pokaz N pozycji") */
#all .vt-rap .dataTables_wrapper .row:last-child {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
}
#all .vt-rap .dataTables_wrapper .row:last-child > div {
  width: auto !important; float: none !important; padding: 0 !important;
}
#all .vt-rap .dataTables_wrapper .dataTables_pager {
  display: flex; align-items: center; gap: 16px; margin-left: auto;
}
#all .vt-rap .dataTables_wrapper .dataTables_length,
#all .vt-rap .dataTables_wrapper .dataTables_paginate {
  float: none !important; margin: 0 !important; padding: 0 !important;
  position: static !important; white-space: nowrap;
}

/* --- pasek przyciskow generowania/eksportu POD filtrem (SB-4021) ---
   Raporty, ktore mialy te przyciski w lewej kolumnie nad menu (rpCinema,
   rpPlaceStatus, rpGraphicReport) — teraz karta z przyciskami pod filtrem. */
#all .vt-rap .vt-rap-exports {
  background: var(--vt-surface);
  border: 1px solid var(--vt-border);
  border-radius: var(--vt-radius);
  padding: 12px 14px 14px;
  margin: 16px 0;
}
#all .vt-rap .vt-rap-exports-head {
  font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase;
  color: var(--vt-text-muted-2); padding: 0 0 10px;
}
#all .vt-rap .vt-rap-exports > div {
  display: flex; flex-wrap: wrap; gap: 8px;
}
#all .vt-rap .vt-rap-exports p { margin: 0 !important; padding: 0 !important; }
#all .vt-rap .vt-rap-exports a.button {
  display: inline-flex !important; align-items: center;
  width: auto !important; float: none !important;
  padding: 9px 16px !important; margin: 0 !important;
  background: var(--vt-surface) !important; background-image: none !important;
  border: 1px solid var(--vt-border-input) !important; border-radius: 6px !important;
  color: var(--vt-text-2) !important;
  font-family: var(--vt-font); font-size: 12.5px !important; font-weight: 600 !important;
  box-shadow: none !important; text-shadow: none !important; white-space: nowrap;
}
#all .vt-rap .vt-rap-exports a.button:hover {
  background: var(--vt-accent-soft) !important;
  border-color: var(--vt-accent) !important; color: var(--vt-accent) !important;
}
#all .vt-rap .vt-rap-exports a.button:active { color: var(--vt-text-2) !important; }
#all .vt-rap .vt-rap-exports a.button > .ui-icon { display: none !important; }
#all .vt-rap .vt-rap-exports a.button i { font-style: normal; opacity: .6; padding-left: 5px; }

/* =====================================================================
   Skorupa strony raportu dla aplikacji, ktore NIE laduja main.css
   (kasa, kasa uproszczona, dystrybutor). W adminie te same reguly sa juz
   w main.css — tutaj powtorzone ze scope .vt-rap, wiec nic poza raportami
   nie jest ruszane.
   ===================================================================== */
#all .vt-list.vt-rap {
  background: var(--vt-bg) !important;
  padding: 0 16px 16px !important;
  border-radius: var(--vt-radius);
}
#all:has(.vt-list.vt-rap) { background: var(--vt-bg) !important; }
.vt-page-head:has(+ .vt-list.vt-rap) {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  background: var(--vt-bg);
}
.vt-page-head:has(+ .vt-list.vt-rap) > h1 {
  flex: 0 1 auto; float: none !important;
  border: none !important; box-shadow: none !important;
  padding: 10px 16px !important; margin: 0 !important;
  background: transparent !important;
  display: inline-flex !important; justify-content: flex-start !important;
  font-family: var(--vt-font);
  font-size: 17px !important; font-weight: 700;
  color: var(--vt-text) !important;
  text-transform: none !important; text-align: left !important;
}
/* pusta karta filtrow dodatkowych (kasa nie ma filtra uzytkownikow) */
#all .vt-rap #raport_filter div.ui-state-default.ui-corner-all:not(.button):empty { display: none !important; }

/* w kasie #all jest komorka tabeli rosnaca do tresci — szare tlo konczyloby
   sie w polowie ekranu; malujemy cala strone */
body:has(.vt-list.vt-rap) { background: var(--vt-bg); }

/* ikona filtra w wariancie PDF pokazywala sie takze na ekranie (klasa
   -pdf nie byla ukryta) — pusty pasek „z kreskami" pod filtrem */
#all .vt-rap .n-header-filter img.n-filter-header-img-pdf { display: none !important; }
/* pasek podsumowania filtrow bez zadnej tresci (sam obrazek) — nie pokazuj */
#all .vt-rap .n-header-filter:not(:has(span, strong, b)) { display: none !important; }

/* --- czytelnosc wynikow (SB-4021: „po wyszukaniu prawie nieczytelny") ---
   1. Tabele wynikow bywaja zagniezdzone w komorce <th> ukladu, po ktorej
      DZIEDZICZA wersaliki — zerujemy dziedziczenie (wlasne naglowki maja
      uppercase ustawiony wprost, wiec nie ucierpia). */
#all .vt-rap .vt-rap-main table { text-transform: none; }
/* 2. `n-raport-separator` bywa uzyte na KOMORKACH danych (tantiemy: nazwa
      terminu, „Sprzedaż netto", kwota) — jako naglowek sekcji stylujemy tylko
      wersje DIV; komorki maja wygladac jak dane. */
#all .vt-rap .vt-rap-main td.n-raport-separator,
#all .vt-rap .vt-rap-main th.n-raport-separator {
  background: transparent !important;
  padding: 7px 10px !important;
  margin: 0 !important;
  font-size: 12.5px !important;
  font-weight: 400 !important;
  color: var(--vt-text-body) !important;
  border-bottom: 1px solid var(--vt-border-row) !important;
}
/* komorka rozciagnieta na cala szerokosc = naglowek grupy/wydarzenia */
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="4"],
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="5"],
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="6"] {
  background: var(--vt-surface-2) !important;
  font-weight: 700 !important;
  color: var(--vt-text) !important;
}

/* --- czytelnosc tantiem: bloki terminow oddzielone, kwoty wyrozniene --- */
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="4"],
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="5"],
#all .vt-rap .vt-rap-main td.n-raport-separator[colspan="6"] {
  padding: 10px !important;
  border-top: 1px solid var(--vt-border) !important;
}
/* wiersz terminu (nazwa + „Sprzedaż netto" + kwota) — delikatna linia nad blokiem */
#all .vt-rap .vt-rap-main tr:has(> td.n-raport-separator:not([colspan="4"]):not([colspan="5"])) > td {
  border-top: 1px solid var(--vt-border-row) !important;
}
/* kwoty w kolumnie po prawej — cyfry tabelaryczne, latwiej porownac */
#all .vt-rap .vt-rap-main table.n-table-print td.a-right,
#all .vt-rap .vt-rap-main table.n-table-print td.n-item,
#all .vt-rap .vt-rap-main table.n-table-print td.n-item-sum,
#all .vt-rap .vt-rap-main table.n-table-print td.n-summary {
  font-variant-numeric: tabular-nums;
}

/* wiersz naglowka tabeli wynikow bywa mieszany: czesc komorek ma klase
   (ui-state-default / n-description), czesc jest goła — wtedy polowa naglowka
   wygladala jak dane. Stylujemy CALY pierwszy wiersz, jesli zawiera naglowek. */
#all .vt-rap .vt-rap-main table > tbody > tr:first-child:has(> td.ui-state-default, > td.ui-widget-header, > td.n-description) > td:not([class]) {
  background: var(--vt-surface-2) !important; color: var(--vt-text-muted) !important;
  text-transform: uppercase; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .5px; padding: 9px 10px !important;
  border: none !important; border-bottom: 1px solid var(--vt-border) !important;
  text-align: left;
}

/* --- naglowki SEKCJI w filtrze vs etykiety pol ---
   Oba byly identyczne (uppercase 11px muted), przez co „KOD / KOD ZAWIERA"
   wygladalo jak zdublowany naglowek. Sekcja: ciemniejsza, z linia. */
#all .vt-rap #raport_filter div.ui-state-default:not(.ui-corner-all):not(.button),
#all .vt-rap #raport_filter > div.ui-widget-header,
#all .vt-rap #raport_filter > form > div.ui-widget-header {
  font-size: 12px !important;
  color: var(--vt-text) !important;
  letter-spacing: .4px;
  padding: 16px 2px 6px !important;
  border-bottom: 1px solid var(--vt-border-row);
  margin: 0 0 6px !important;
}
