/* 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-hide-zakup .pv-col-zakup,
.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;
}

/* Redystrybucja kolumn — gdy duża część kolumn cenowych jest ukrywana
   (rola partner/ph_partnera/summary), kolumna „Produkt"/„Kategoria/Produkt"
   ma się rozszerzać na całą wolną szerokość zamiast zostawiać pustą przestrzeń.
   Targetujemy przez klasę `w-100` (Bootstrap) — w wizardzie jest na "Produkt",
   w view-modal/result-modal na "Kategoria / Produkt" (różne nth-child). */
.pv-me-viz table {
    width: 100%;
    table-layout: auto;
}
.pv-me-viz-summary table thead th.w-100,
.pv-me-viz-partner table thead th.w-100,
.pv-me-viz-ph_partnera table thead th.w-100 {
    width: 100% !important;
    min-width: 220px;
}
