/* ============================================================================
   27-raporty.css — widok „Raporty” (tor H, 27.09.2026)
   ----------------------------------------------------------------------------
   Widok nosi te same klasy co Pulpit (dash-grid, dash-cards, dash-panel, dash-table — dom w 16-dashboard.css,
   telefon w 9-telefon/6). Tu tylko to, czego Pulpit nie ma: pasek nad raportem (przełącznik zakresu + objaśnienie).
   ============================================================================ */
.raporty-pasek { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); }
.raporty-pasek > .dash-hint { flex: 1 1 320px; min-width: 0; text-wrap: pretty; }
:root[data-ui="mobile"] .raporty-pasek > .segmented { display: flex; width: 100%; }
:root[data-ui="mobile"] .raporty-pasek > .segmented > button { flex: 1 1 0; min-height: 44px; }
/* Komórka projektu: klient drobnym drukiem pod numerem i nazwą. */
.raporty-klient { display: block; margin-top: 2px; color: var(--text-muted); font-size: var(--t-xs); }
.raporty-widok .dash-table td:has(> .dash-project-link) { min-width: 240px; }
/* Kolumny tekstowe (dostawca, materiał, handlowiec) zawijają się — kwoty i liczby zostają w jednej linii (Pulpit trzyma
   wszystko w jednej linii, a tu tabele mają do 10 kolumn; na tablecie ostatnia kolumna uciekała za krawędź). */
.raporty-widok .dash-table td:not(.dash-num):not(.dash-money) { white-space: normal; }
/* Do 1180 px Pulpit układa panele po dwa — tabele raportu (4–7 kolumn kwot) potrzebują całej szerokości. */
@media (max-width: 1180px) {
  .raporty-widok .dash-panels > .dash-panel { grid-column: 1 / -1; }
}
/* H3 Księgowość: pola dat „Od / Do” w pasku i rząd przycisków pobierania (zawija się na wąskim ekranie). */
.raporty-okres { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--text-muted); font-size: var(--t-sm); }
.raporty-okres > input { width: auto; min-width: 150px; }
.raporty-pobierz { display: flex; flex-wrap: wrap; gap: var(--s-2); }
:root[data-ui="mobile"] .raporty-okres { flex: 1 1 140px; }
:root[data-ui="mobile"] .raporty-okres > input { flex: 1 1 auto; min-width: 0; min-height: 44px; }
:root[data-ui="mobile"] .raporty-pobierz > .button { flex: 1 1 100%; min-height: 44px; }
/* H4 Import z Excela: blok „Zapis” — ptaszek cen, objaśnienie i przyciski jeden pod drugim. */
.raporty-import-zapis { display: grid; gap: var(--s-2); justify-items: start; }
/* Kolumna „Wiersz” (numer wiersza w pliku) — wąska, reszta szerokości dla opisu. */
.raporty-widok .dash-table .raporty-nr { width: 72px; }
/* v15 RP1: raport zgłoszeń — wybór projektu w pasku (jak pola dat), opis zgłoszenia jako link (Pilne obok, tekst się zawija). */
.raporty-okres > select { width: auto; min-width: 200px; max-width: 320px; }
.raporty-zgl-otworz { display: inline-flex; align-items: baseline; gap: var(--s-2); text-align: left; white-space: normal; }
.raporty-zgl-otworz .dash-project-name { overflow-wrap: anywhere; }
.raporty-widok .dash-table td:has(> .raporty-zgl-otworz) { white-space: normal; }
:root[data-ui="mobile"] .raporty-okres > select { flex: 1 1 auto; min-width: 0; max-width: none; min-height: 44px; }
:root[data-ui="mobile"] .raporty-zgl-projekt { flex: 1 1 100%; }
:root[data-ui="tablet"] .raporty-zgl-zrodlo > button { height: var(--h-control); }
:root[data-ui="mobile"] .raporty-zgl :is(.dash-project-link, .raporty-zgl-otworz) { min-height: 44px; } :root[data-ui="mobile"] .raporty-widok .dash-table .dash-project-link { min-height: var(--h-control); margin-block: calc((var(--h-control) - 1em * var(--lh-base)) / -2); }
