/* PV/ME — widoczność kolumn cenowych wg roli + company scope.
   Globalny stylesheet (włączany z master.html), zastępuje lokalne style w project.html.

   Logika: wrapper tabeli/karty otrzymuje klasy `pv-hide-{level}` dla każdego
   ukrytego poziomu cenowego. Komórki kolumn dostają klasy `pv-col-{level}`.
   CSS chowa odpowiednie kolumny + ich sumy w stopce + ich nagłówki.

   `pv-col-zakup-jedn` (cena zakupu za 1 jednostkę) dzieli widoczność z `pv-col-zakup`
   (cena zakupu razem) — kto widzi „Zakup", widzi też „Zakup jedn.". */

.pv-hide-zakup .pv-col-zakup,
.pv-hide-zakup .pv-col-zakup-jedn,
.pv-hide-oneau .pv-col-oneau,
.pv-hide-icd .pv-col-icd,
.pv-hide-icd .pv-col-icd-razem,
.pv-hide-cena_partner .pv-col-partner,
.pv-hide-kwota_narzutu_partner .pv-col-narzut-partner {
    display: none !important;
}

/* Kolumny "koncowa" (Netto klient / VAT / Brutto) w nagłówku i wierszach pozycji
   ukryte gdy user nie ma dostępu do poziomu koncowa. Stopka pozostaje widoczna
   gdy grupa ma „koncowa" — sumy RAZEM/Zaliczka są wartością same w sobie. */
.pv-hide-koncowa thead .pv-col-koncowa,
.pv-hide-koncowa tbody .pv-col-koncowa {
    display: none !important;
}

/* Grupa "summary" — w nagłówku i wierszach pozycji ukrywamy też kolumny „koncowa"
   (Netto klient/VAT/Brutto) — tabela ma tylko Kategoria/Produkt + Ilość.
   Stopka tabeli (RAZEM, Zaliczka) pozostaje widoczna — tam pokazujemy globalne sumy
   Klient netto/VAT/Brutto, bo komórki sum nie mają klasy `pv-col-koncowa`. */
.pv-me-viz-summary thead .pv-col-koncowa,
.pv-me-viz-summary tbody .pv-col-koncowa {
    display: none !important;
}

/* Wiersz „Marża PH" w grupie summary — ukryty (kwota widoczna w chipie nad tabelą,
   sam wiersz bez kolumny „Netto klient" pokazuje tylko myślnik). */
.pv-me-viz-summary tbody .pv-row-marza {
    display: none !important;
}

/* Etykiety sum w stopce dla grupy summary — bez nagłówków kolumn user nie wie
   co to za liczby. Atrybut `data-summary-label` na komórkach <td> stopki
   (Klient netto / VAT / Brutto) renderuje prefix tylko dla summary.
   `display: block` — label nad wartością (dwie linie zamiast łamanych słów
   w wąskiej kolumnie). `white-space: nowrap` na całej komórce — kwota nie łamie
   się na "53 897,48" + "zł". */
/* Cała stopka tabel PV/ME — kwoty nie mają się łamać "53 897,48" / "zł". */
.pv-me-viz tfoot td {
    white-space: nowrap;
}
.pv-me-viz-summary tfoot td[data-summary-label] {
    white-space: nowrap;
}

/* Wiersz Zaliczka w summary mode — label "Zaliczka (30%):" w lewej td (colspan=8)
   wisi daleko od kwoty po prawej (8 hidden+visible kolumn). Ukrywamy ten label
   i renderujemy go z ::before nad kwotą (data-summary-label na td z wartością). */
.pv-me-viz-summary tfoot tr.pv-row-zaliczka td:first-child {
    display: none !important;
}

/* Dropdown VAT marży — Select2 default rozciąga się na 100% kontenera (pełna
   szerokość kolumny w step 3). Dla samego "8% / 0% / 23%" wystarczy ~120px. */
.pv-vat-narrow,
#pv_marza_vat_wrapper .select2-container,
#me_marza_vat_wrapper .select2-container {
    max-width: 140px !important;
    width: 140px !important;
}

/* Modal: scroll body lock + overscroll containment.
   Body.modal-open powinno blokować scroll strony, ale w niektórych konfiguracjach
   Keenthemes nie działa. Plus overscroll-behavior na modal-content żeby kółko myszy
   po zakończeniu scrolla modal-body NIE przekazywało scrolla do body strony. */
body.modal-open {
    overflow: hidden !important;
}
.modal-dialog-scrollable .modal-content,
.modal-content {
    overscroll-behavior: contain;
}

/* Dropdown w tabeli kalkulacji (#kt_calculations_table) — `table-responsive` ma
   overflow-x:auto co ścina dropdown-menu wystający w dół. Wymuszamy strategy fixed
   przez CSS jako fallback dla data-bs-strategy. */
#kt_calculations_table .dropdown-menu.show {
    z-index: 1080;
}

/* Swal alerty muszą być NAD modalami — przy modal stack (View → Wizard → Result)
   z-index dochodzi do 1075. Default Swal z-index = 1060 — Swal jest schowany pod
   result modalem, klik Zapisz w edycji nic nie robił (showVersioningModal Swal
   tworzył się ale był ukryty). */
.swal2-container {
    z-index: 10000 !important;
}
.pv-me-viz-summary tfoot td[data-summary-label]::before {
    content: attr(data-summary-label);
    display: block;
    font-weight: 600;
    color: #6c757d;
    font-size: 0.85em;
    line-height: 1.2;
    margin-bottom: 2px;
}

/* Backward compat — stare klasy używane w 4 templates (project.html eliminowane).
   `pv-col-admin` = zakup + oneau (admin only)
   `pv-col-partner-plus` = ICD (admin + partner) */
.pv-hide-zakup.pv-hide-oneau .pv-col-admin,
.pv-hide-icd .pv-col-partner-plus {
    display: none !important;
}

/* Pozycje techniczne w wizardzie PV — ukryte dla wszystkich (zgodnie z Excel
   ICDPH, ukrywane wiersze 8, 9, 13, 20). Admin może odkryć przez toggle —
   wtedy klasa `pv-show-hidden-tech` na wrapperze zdejmuje ukrycie i koloruje. */
.pv-row-hidden-tech {
    display: none;
}

.pv-show-hidden-tech .pv-row-hidden-tech {
    display: table-row;
    background-color: #fff3cd;
}

/* Nagłówek bloku pozycji technicznych w wizardzie PV/ME (tryb pełny). Oddziela
   pozycje techniczne — przeniesione na sam dół tabeli — od głównej wyceny, żeby
   „żółte" wiersze techniczne nie wplatały się w widok wyceny handlowej. Cały
   wiersz jest klikalnym togglem (zwija/rozwija wiersze techniczne pod nim). */
.pv-tech-section-header td {
    background-color: #ffe69c;
    color: #6b5520;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    border-top: 2px solid #d6a700;
}
.pv-tech-section-header {
    cursor: pointer;
}
.pv-tech-section-header:hover td {
    background-color: #ffdf85;
}

/* Kolumna „Wart. ICD" / „Netto ICD" (cena_icd_razem) — ostatnia, najwyższa cena
   ICD. Wszystko na prawo od niej (Partner, Klient, VAT, Brutto) to narzut partnera
   i marża PH. Wyróżniamy ją ramką (cała kolumna w obramowaniu w kolorze primary
   Keenthemes) + tłem — czytelna granica „cena ICD ↔ narzut". Klasa używana w tabeli
   wizarda PV/ME oraz w modalach Wynik / Podgląd kalkulacji. */
.pv-col-icd-razem {
    background-color: #e1f0ff;
    font-weight: 700;
    border-left: 2px solid var(--bs-primary, #009ef7);
    border-right: 2px solid var(--bs-primary, #009ef7);
}
thead .pv-col-icd-razem {
    border-top: 2px solid var(--bs-primary, #009ef7);
    background-color: #cfe5ff;
}
tfoot .pv-col-icd-razem {
    border-bottom: 2px solid var(--bs-primary, #009ef7);
    background-color: #cfe5ff;
}

/* ===== Dark mode — jasne tła hardkodowane wyżej (kolumna „Wart. ICD",
   blok pozycji technicznych) są nieczytelne na ciemnym motywie. Używane
   w wizardzie oraz w modalach Wynik / Podgląd kalkulacji PV/ME. ===== */
[data-bs-theme="dark"] .pv-col-icd-razem,
[data-bs-theme="dark"] thead .pv-col-icd-razem,
[data-bs-theme="dark"] tfoot .pv-col-icd-razem {
    background-color: var(--bs-primary-light);
}
[data-bs-theme="dark"] .pv-show-hidden-tech .pv-row-hidden-tech {
    background-color: var(--bs-warning-light);
}
[data-bs-theme="dark"] .pv-tech-section-header td {
    background-color: var(--bs-warning-light);
    color: var(--bs-warning);
    border-top-color: var(--bs-warning);
}
[data-bs-theme="dark"] .pv-tech-section-header:hover td {
    filter: brightness(1.2);
}

/* Redystrybucja kolumn — gdy część kolumn cenowych jest ukryta, kolumna
   „Produkt"/„Kategoria/Produkt" ma wchłonąć całą wolną szerokość, żeby tabela nie
   zostawiała pustego pasa po prawej (tło wiersza RAZEM rozciągało się w pusty obszar).
   Targetujemy przez klasę `w-100` (Bootstrap) — w wizardzie jest na "Produkt",
   w view-modal/result-modal na "Kategoria / Produkt".

   Dlaczego `width` absolutny zamiast `100%`: `width: 100%` na komórce <th> w tabeli
   `table-layout: auto` bywa ignorowane (cykliczna zależność: szerokość komórki zależy
   od szerokości tabeli, która zależy od kolumn) — wtedy kolumna zostaje na szerokości
   treści i wolne miejsce wisi jako pusty „słup". Duża wartość absolutna jest przez
   auto-layout przycinana do (szerokość tabeli − pozostałe kolumny), więc kolumna
   przewidywalnie rozciąga się na całą resztę, a w widoku admina (brak luzu) i tak
   spada do swojego min-width. */
.pv-me-viz table {
    width: 100% !important;
    table-layout: auto;
}
.pv-me-viz table thead th.w-100 {
    width: 2000px !important;
    min-width: 220px;
}
