/* Rejestr — Thomas Trailers. Zasady: tabela zamiast zdania, jedna główna akcja (pomarańczowa) na ekranie,
   spokojne tło, dużo światła, szczegóły po rozwinięciu (60_PLAN/REJESTR/04_zasady_ekranow.md). */
:root {
  --granat: #1D1D1F; --pom: #E8622C; --pom2: #CF5220;
  --tlo: #F5F5F7; --karta: #FFFFFF; --linia: #E5E5EA; --linia2: #F0F0F3; --tekst: #1D1D1F; --szary: #6E6E73; --jasny: #8E8E93;
  --zielony: #1E7F45; --zielony-t: #E5F5EB; --niebieski: #0A63C9; --niebieski-t: #E8F1FC;
  --zolty: #9A5B00; --zolty-t: #FFF4DB; --czerwony: #C4302B; --czerwony-t: #FDECEB; --szary-t: #EFEFF2;
  --r: 12px; --r2: 8px; --cien: 0 1px 2px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.04);
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font: 14px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--tekst);
       background: var(--tlo); -webkit-font-smoothing: antialiased; }
a { color: var(--niebieski); text-decoration: none; }
a:hover { text-decoration: underline; }
.kod, code, .mono { font-family: "SF Mono", ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }

/* układ */
.aplikacja { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.boczne { background: #1F2A44; color: #C9D0DF; padding: 16px 10px 24px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.logo { display: flex; align-items: center; gap: 10px; padding: 4px 10px 16px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 6px; }
.logo img { width: 36px; height: 36px; object-fit: contain; background: #fff; border-radius: 9px; padding: 3px; }
.logo b { color: #fff; font-size: 15px; letter-spacing: -.1px; display: block; }
.logo span { font-size: 11px; color: #8E99B3; }
.menu-grupa { padding: 14px 10px 4px; font-size: 11px; color: #7D89A6; font-weight: 600; letter-spacing: .3px; text-transform: uppercase; }
.boczne a { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; margin: 1px 0; color: #D5DBE8; border-radius: 7px; font-size: 13.5px; }
.boczne a:hover { background: rgba(255,255,255,.07); text-decoration: none; color: #fff; }
.boczne a.aktywny { background: rgba(232,98,44,.18); color: #fff; font-weight: 600; box-shadow: inset 3px 0 0 var(--pom); }
.boczne a .licz { background: var(--pom); color: #fff; border-radius: 999px; font-size: 11px; font-weight: 700; padding: 0 7px; line-height: 18px; }
.uzytkownik { padding: 14px 10px 0; margin-top: 14px; border-top: 1px solid rgba(255,255,255,.08); font-size: 12px; color: #8E99B3; }
.uzytkownik button { background: none; border: 0; color: #9FC2F5; padding: 0; cursor: pointer; font: inherit; }
.boczne .uzytkownik a { display: inline; padding: 0; margin: 0; border-radius: 0; font-size: 12px; color: #9FC2F5; }
.boczne .uzytkownik a:hover { background: none; text-decoration: underline; }
.uzytkownik .rola { display: inline-block; margin-top: 3px; padding: 1px 8px; border-radius: 999px; background: rgba(255,255,255,.1); color: #D5DBE8; font-weight: 600; font-size: 11px; }
main { padding: 26px 34px 70px; max-width: 1480px; width: 100%; }
.pasek-podglad { background: var(--niebieski-t); color: var(--niebieski); padding: 8px 14px; border-radius: var(--r2); margin-bottom: 14px; font-weight: 600; font-size: 13px; }

/* nagłówki */
.naglowek { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.naglowek h1 { margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -.4px; }
.naglowek .pod { color: var(--szary); margin-top: 4px; font-size: 13.5px; }
.akcje { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
h2 { font-size: 16px; margin: 0 0 10px; font-weight: 650; letter-spacing: -.1px; }
.okruszki { font-size: 12.5px; color: var(--jasny); margin-bottom: 6px; }

/* przyciski */
.btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 8px; border: 1px solid #D2D2D7; background: #fff;
       color: var(--tekst); font: 600 13px/1.25 inherit; font-family: inherit; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .12s, box-shadow .12s; }
.btn:hover { background: #F7F7F9; text-decoration: none; }
.btn:focus-visible { outline: 3px solid rgba(10,99,201,.3); outline-offset: 1px; }
.btn.glowny { background: var(--pom); border-color: var(--pom); color: #fff; box-shadow: 0 1px 2px rgba(232,98,44,.3); }
.btn.glowny:hover { background: var(--pom2); }
.btn.duzy { padding: 11px 20px; font-size: 14.5px; border-radius: 10px; }
.btn.maly { padding: 4px 10px; font-size: 12px; font-weight: 500; }
.btn.niebezp { color: var(--czerwony); border-color: #F0C4C2; }
.btn.niebezp:hover { background: var(--czerwony-t); }
.btn.cichy { border-color: transparent; background: transparent; color: var(--niebieski); }
.btn.cichy:hover { background: var(--niebieski-t); }
.btn:disabled, .btn.czeka { opacity: .5; cursor: not-allowed; }
form.inline { display: inline; }

/* karty / panele */
.panel { background: var(--karta); border-radius: var(--r); box-shadow: var(--cien); border: 1px solid rgba(0,0,0,.04); padding: 18px 20px; margin-bottom: 18px; }
.panel.bez { padding: 0; overflow: hidden; }
.panel > .tytul { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--linia2); flex-wrap: wrap; }
.panel > .tytul h2 { margin: 0; }
.panel.akcent { border: 1px solid #F6C9B4; box-shadow: 0 0 0 4px rgba(232,98,44,.07), var(--cien); }
.siatka { display: grid; gap: 18px; }
.s2 { grid-template-columns: repeat(2, minmax(0,1fr)); } .s3 { grid-template-columns: repeat(3, minmax(0,1fr)); } .s4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.kafel { background: var(--karta); border-radius: var(--r); padding: 16px 18px; box-shadow: var(--cien); border: 1px solid rgba(0,0,0,.04); display: block; color: inherit; }
a.kafel:hover { text-decoration: none; box-shadow: 0 0 0 1px #D2D2D7, var(--cien); }
.kafel .liczba { font-size: 28px; font-weight: 700; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.kafel .opis { color: var(--szary); font-size: 12.5px; }
.kafel.alarm .liczba { color: var(--czerwony); }
.pola { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px 24px; }
.pola div span { display: block; font-size: 11.5px; color: var(--jasny); font-weight: 500; margin-bottom: 1px; }
.pola div b { font-weight: 600; }

/* tabele */
table.t { width: 100%; border-collapse: collapse; background: #fff; }
.t th { position: sticky; top: 0; background: #FAFAFC; text-align: left; font-size: 11.5px; font-weight: 600; color: var(--szary);
        padding: 9px 12px; border-bottom: 1px solid var(--linia); white-space: nowrap; z-index: 1; }
.t td { padding: 8px 12px; border-bottom: 1px solid var(--linia2); vertical-align: middle; }
.t tr:last-child td { border-bottom: 0; }
.t tr:hover td { background: #FAFAFC; }
.t .l, .t td.l, .t th.l { text-align: right; font-variant-numeric: tabular-nums; }
.t td.wyb { color: var(--szary); font-size: 12.5px; }
.t tr.opcja td { background: #FBFBFD; color: #48484A; }
.t tr.opcja td:first-child { padding-left: 32px; }
.t tr.razem td { font-weight: 700; background: #FAFAFC; }
.t tr.rozne td { background: #FFF8EC; }
.t input[type=text] { padding: 5px 8px; }
.przewijana { overflow-x: auto; }
.licznik { padding: 10px 16px; color: var(--szary); font-size: 12.5px; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--linia2); }
.pusto { padding: 30px; text-align: center; color: var(--jasny); }

/* etykiety statusu */
.etykieta { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.etykieta.zielony { background: var(--zielony-t); color: var(--zielony); }
.etykieta.niebieski { background: var(--niebieski-t); color: var(--niebieski); }
.etykieta.zolty { background: var(--zolty-t); color: var(--zolty); }
.etykieta.czerwony { background: var(--czerwony-t); color: var(--czerwony); }
.etykieta.szary { background: var(--szary-t); color: #5A5A5F; }
.brak { color: var(--czerwony); font-weight: 600; }
.ok { color: var(--zielony); font-weight: 600; }
.cicho { color: var(--jasny); }

/* oś czasu dokumentu: Szkic → Wydrukowany → Rozliczony → Zatwierdzony */
.os-czasu { display: flex; gap: 0; margin: 4px 0 18px; background: #fff; border-radius: var(--r); box-shadow: var(--cien); border: 1px solid rgba(0,0,0,.04); overflow: hidden; }
.os-czasu .krok-d { flex: 1; padding: 12px 16px; border-right: 1px solid var(--linia2); position: relative; min-width: 0; }
.os-czasu .krok-d:last-child { border-right: 0; }
.os-czasu .krok-d b { display: block; font-size: 13px; }
.os-czasu .krok-d small { color: var(--jasny); font-size: 12px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.os-czasu .krok-d .nr { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--szary-t); color: var(--szary); font-size: 11px; font-weight: 700; margin-right: 6px; }
.os-czasu .krok-d.zrobiony .nr { background: var(--zielony); color: #fff; }
.os-czasu .krok-d.teraz { background: #FFF7F2; }
.os-czasu .krok-d.teraz .nr { background: var(--pom); color: #fff; }
.os-czasu .krok-d.teraz b { color: var(--pom2); }

/* filtry i formularze */
.filtry { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 12px 18px; border-bottom: 1px solid var(--linia2); }
.zakladki { display: flex; gap: 4px; flex-wrap: wrap; padding: 10px 14px 0; border-bottom: 1px solid var(--linia2); background: #fff; }
.zakladki a { padding: 7px 12px 9px; color: var(--szary); border-bottom: 2px solid transparent; font-weight: 600; font-size: 13px; }
.zakladki a.aktywna { color: var(--tekst); border-bottom-color: var(--pom); }
.zakladki a:hover { text-decoration: none; color: var(--tekst); }
input[type=text], input[type=search], input[type=number], input[type=date], input[type=password], input[type=email], select, textarea {
  font: inherit; padding: 7px 10px; border: 1px solid #D2D2D7; border-radius: 8px; background: #fff; color: var(--tekst); min-width: 0; }
input:disabled, select:disabled, textarea:disabled { background: var(--tlo); color: #3A3A3C; border-color: var(--linia); opacity: 1; -webkit-appearance: none; appearance: none; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(10,99,201,.18); border-color: var(--niebieski); }
textarea { width: 100%; }
.formularz { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px 20px; }
.formularz label, .pole label { display: block; font-size: 12px; font-weight: 600; color: #48484A; margin-bottom: 4px; }
.formularz input:not([type=checkbox]):not([type=radio]), .formularz select, .formularz textarea { width: 100%; }
.formularz .szeroki { grid-column: 1 / -1; }
.formularz .helptext { color: var(--jasny); font-size: 11.5px; display: block; margin-top: 3px; }
.formularz .errorlist, .bledy { color: var(--czerwony); font-size: 12px; margin: 4px 0 0; padding: 0; list-style: none; }
.wiersz-dodaj { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; padding: 14px 18px; background: #FAFAFC; border-top: 1px solid var(--linia2); }
.wiersz-dodaj .pole { display: flex; flex-direction: column; }
.wiersz-dodaj .pole input, .wiersz-dodaj .pole select { width: auto; }
.wybor-tak-nie { display: flex; gap: 10px; flex-wrap: wrap; margin: 6px 0 14px; }
.wybor-tak-nie label { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid #D2D2D7; border-radius: 10px; cursor: pointer; font-weight: 600; background: #fff; }
.wybor-tak-nie label:has(input:checked) { border-color: var(--pom); box-shadow: 0 0 0 3px rgba(232,98,44,.12); }
.tylko-roznice { display: none; }
form.roznice .tylko-roznice { display: table-cell; }

/* podpowiedzi indeksów */
.podp { position: relative; }
.podp input { width: 340px; }
.lista-podp { position: fixed; z-index: 1000; max-height: 360px; overflow-y: auto; background: #fff; border: 1px solid #D2D2D7; border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,.14); }
.lista-podp div { padding: 7px 12px; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 10px; border-bottom: 1px solid var(--linia2); white-space: normal; text-align: left; }
.lista-podp small { overflow-wrap: anywhere; color: var(--szary); }
.lista-podp div:hover, .lista-podp div.zaz { background: var(--niebieski-t); }

/* komunikaty i paski */
.komunikaty { margin-bottom: 16px; }
.kom { padding: 11px 15px; border-radius: 10px; margin-bottom: 8px; border: 1px solid; font-size: 13.5px; }
.kom.success { background: var(--zielony-t); border-color: #BDE3CB; color: #14532D; }
.kom.error { background: var(--czerwony-t); border-color: #F2C2BF; color: #8E1F1A; }
.kom.warning, .kom.info { background: var(--zolty-t); border-color: #F0DCA5; color: #6B4600; }
.pasek { padding: 11px 15px; border-radius: 10px; margin-bottom: 16px; font-weight: 600; }
.pasek.szkic { background: var(--szary-t); color: #48484A; }
.pasek.zatw { background: var(--zielony-t); color: var(--zielony); }
.pasek.czeka { background: var(--zolty-t); color: var(--zolty); }
.pasek.anul { background: var(--szary-t); color: var(--szary); text-decoration: none; }
.info { color: var(--szary); font-size: 12.5px; }

/* konfigurator */
.konfig td select { width: 100%; max-width: 520px; }
.konfig tr.ma-wybor td { background: #FFFCF6; }
.konfig tr.niewybrany td { background: var(--czerwony-t); }
.konfig tr.niewybrany select { border-color: var(--czerwony); }
.obow-panel { border-left: 3px solid var(--czerwony); }

/* logowanie */
.logowanie { min-height: 100vh; display: grid; place-items: center; background: var(--tlo); }
.logowanie .panel { width: 380px; padding: 32px; }
.logowanie img { width: 110px; display: block; margin: 0 auto 12px; }
.logowanie input { width: 100%; margin-bottom: 12px; }

@media (max-width: 1000px) { .aplikacja { grid-template-columns: 1fr; } .boczne { position: static; height: auto; } .s3, .s4 { grid-template-columns: 1fr 1fr; } main { padding: 18px 16px 60px; } .os-czasu { flex-direction: column; } }

/* konfigurator przyczepy */
details.sekcja > summary { cursor: pointer; list-style: none; }
details.sekcja > summary::-webkit-details-marker { display: none; }
details.sekcja > summary h2::before { content: "▸ "; color: var(--jasny); }
details.sekcja[open] > summary h2::before { content: "▾ "; }
.konfig tr.gl1 td, .konfig tr.gl2 td, .konfig tr.gl3 td { background: #FBFBFD; font-size: 13px; }
.konfig tr.gl1 td:nth-child(3) { padding-left: 26px; } .konfig tr.gl2 td:nth-child(3) { padding-left: 46px; } .konfig tr.gl3 td:nth-child(3) { padding-left: 66px; }
.konfig tr.faza td { border-top: 1px solid #DCE3F0; }
.konfig tr.usuniety td { opacity: .45; text-decoration: line-through; }
.konfig tr.usuniety td input, .konfig tr.usuniety td select { text-decoration: none; }
.konfig .podp input { width: 210px; }
.pasek-akcji { position: sticky; bottom: 0; display: flex; gap: 8px; justify-content: flex-end; padding: 12px 18px; background: rgba(245,245,247,.9);
               backdrop-filter: blur(16px); border-top: 1px solid var(--linia); margin: 0 -34px; z-index: 20; }
.t tr.grupa-zl td { background: #F4F6FA; font-weight: 600; font-size: 12.5px; color: #3A3A3C; }
.t tr.w-grupie td:first-child { padding-left: 26px; }
.status-grupa > summary { cursor: pointer; list-style: none; }
.status-grupa > summary::-webkit-details-marker { display: none; }

.rama-wyk { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; padding: 14px 18px; background: #FFFCF6; border-bottom: 1px solid var(--linia2); }
details.pojedynczo > summary { padding: 9px 18px; cursor: pointer; border-bottom: 1px solid var(--linia2); }
details.rozwin > summary { cursor: pointer; padding: 12px 18px; font-weight: 600; list-style: none; color: var(--tekst); }
details.rozwin > summary::-webkit-details-marker { display: none; }
details.rozwin > summary::before { content: "▸"; color: var(--jasny); margin-right: 8px; display: inline-block; transition: transform .15s; }
details.rozwin[open] > summary::before { transform: rotate(90deg); }
details.rozwin > summary .info { font-weight: 400; margin-left: 6px; }

tr.ukryty { display: none; }
tr.grupa-zl { cursor: pointer; }
tr.grupa-zl .strzalka { display: inline-block; width: 12px; color: var(--szary); transition: transform .15s; }
tr.grupa-zl.otwarta .strzalka { transform: rotate(90deg); }
.faza-pod { margin-top: 5px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* etapy produkcji (łańcuch) */
.kroki { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.krok { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; white-space: nowrap; border: 1px solid transparent; }
.krok:hover { text-decoration: none; filter: brightness(.97); }
.krok b { font-weight: 650; }
.krok.zielony { background: var(--zielony-t); color: var(--zielony); } .krok.niebieski { background: var(--niebieski-t); color: var(--niebieski); }
.krok.zolty { background: var(--zolty-t); color: var(--zolty); } .krok.szary { background: var(--szary-t); color: #5A5A5F; }
.krok.czerwony { background: var(--czerwony-t); color: var(--czerwony); }
.kroki .strz { color: var(--jasny); font-size: 12px; }
.dmc-box { display: grid; grid-template-columns: 1.2fr 2fr; gap: 16px; padding: 14px 18px; background: #F5F8FD; border-bottom: 1px solid var(--linia2); }

/* historia zmian */
.hist td { font-size: 12.5px; vertical-align: top; }
.hist .zm { color: var(--szary); }
.hist .zm b { color: var(--tekst); font-weight: 600; }
.hist .przed { color: var(--czerwony); text-decoration: line-through; text-decoration-color: rgba(196,48,43,.4); }
.hist .po { color: var(--zielony); }
.skutek-plus { color: var(--zielony); font-weight: 600; } .skutek-minus { color: var(--czerwony); font-weight: 600; }

/* sortowanie i filtrowanie tabel */
.t th.sortowalna { cursor: pointer; user-select: none; }
.t th.sortowalna:hover { color: var(--tekst); }
.t th.sortowalna::after { content: " ↕"; color: #C7C7CC; font-size: 10px; }
.t th[data-kier=asc]::after { content: " ▲"; color: var(--pom); }
.t th[data-kier=desc]::after { content: " ▼"; color: var(--pom); }
.t tr.filtr-wiersz td { background: #FAFAFC; padding: 4px 6px; }
.t tr.filtr-wiersz input { width: 100%; min-width: 50px; padding: 4px 7px; font-size: 12px; }
.filtr-przycisk { margin: 6px 10px; }
/* zdjęcia */
.galeria { display: flex; flex-wrap: wrap; gap: 14px; padding: 14px 18px; }
.galeria figure { margin: 0; width: 200px; }
.galeria img { width: 200px; height: 150px; object-fit: cover; border-radius: 10px; box-shadow: 0 0 0 1px var(--linia); background: #fff; }
.galeria figcaption { font-size: 12px; color: var(--szary); margin-top: 4px; }
img.miniatura { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; box-shadow: 0 0 0 1px var(--linia); }
/* akcja z powodem (zamiast okienek przeglądarki) */
details.akcja-z-powodem { display: inline-block; vertical-align: top; }
details.akcja-z-powodem > summary { list-style: none; }
details.akcja-z-powodem > summary::-webkit-details-marker { display: none; }
details.akcja-z-powodem[open] > form { position: absolute; z-index: 30; margin-top: 6px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; max-width: 560px; }
.okno-kopiuj { position: fixed; inset: 0; background: rgba(0,0,0,.25); display: grid; place-items: center; z-index: 2000; }
.okno-kopiuj .panel { width: min(640px, 92vw); }

/* listy z podziałem na statusy — drzewo */
.status-grupa { border-bottom: 1px solid var(--linia); }
.status-grupa > summary.status-naglowek { display: flex; align-items: center; gap: 10px; padding: 12px 18px; cursor: pointer; list-style: none;
  background: #F2F4F8; font-weight: 650; border-left: 5px solid #AEB4C2; position: sticky; top: 0; z-index: 2; }
.status-grupa > summary.status-naglowek::-webkit-details-marker { display: none; }
.status-grupa > summary.status-naglowek .etykieta { font-size: 13px; padding: 3px 12px; }
.status-grupa > summary .chevron { display: inline-block; width: 14px; color: var(--szary); transition: transform .15s; }
.status-grupa[open] > summary .chevron { transform: rotate(90deg); }
.status-grupa > summary .liczba-grupy { background: #fff; border-radius: 999px; padding: 1px 10px; font-size: 12px; color: var(--szary); box-shadow: 0 0 0 1px var(--linia); }
.status-naglowek.zielony { border-left-color: var(--zielony); } .status-naglowek.niebieski { border-left-color: var(--niebieski); }
.status-naglowek.zolty { border-left-color: #E0A100; } .status-naglowek.czerwony { border-left-color: var(--czerwony); }
.status-grupa .galaz { margin-left: 26px; border-left: 2px solid var(--linia); overflow-x: auto; }
.status-grupa .galaz table.t th { position: static; }

.t tr.wpisany td { background: #F2FAF5; }
.t tr.wpisany:hover td { background: #E8F5EC; }
.uzytkownik .wersja { margin-top: 10px; font-size: 11px; color: #6E7A96; font-family: "SF Mono", ui-monospace, Menlo, monospace; }
.kroki-zam .krok-d { text-decoration: none; color: inherit; }
.kroki-zam .krok-d:hover { background: #FAFAFC; text-decoration: none; }
.kroki-zam .krok-d.teraz:hover { background: #FFF7F2; }
.postep { height: 6px; background: var(--linia2); }
.postep > div { height: 6px; background: var(--zielony); }
.etykieta a { color: inherit; }

/* struktura złożenia / receptury (Damian 21.10: „kafelki się zlewają”): każda pozycja osobnym blokiem, warianty wcięte, domyślny wyróżniony */
.struktura tbody.poz-blok { border-top: 2px solid #D5D9E2; }
.struktura tbody.poz-blok:nth-of-type(odd) td { background: #FBFBFD; }
.struktura tbody.z-wyborem td { background: #F6F9FE; }
.struktura tr:hover td { background: inherit; }
.struktura tr.dom td { background: #E6F0FC !important; }
.struktura tr.dom td.kod a { font-weight: 700; }
.struktura tr.wariant td:nth-child(3) { padding-left: 30px; position: relative; }
.struktura tr.wariant td:nth-child(3)::before { content: "↳"; position: absolute; left: 12px; color: #A1A1A6; }
.struktura .nr-poz { display: inline-block; min-width: 32px; padding: 3px 8px; border-radius: 8px; background: #E9ECF2; font-weight: 700; text-align: center; color: #3A3A3C; }
.struktura td.akcje-poz { white-space: nowrap; text-align: right; }
.struktura tr.dodaj-wariant td { padding: 2px 12px 10px; border-bottom: 0; }
.struktura tr.dodaj-wariant form.wiersz-dodaj { margin-top: 4px; border: 1px solid #C9D6EC; border-radius: 10px; background: #fff; box-shadow: 0 4px 14px rgba(10,99,201,.08); }
.struktura .naglowek-dw { flex-basis: 100%; display: flex; justify-content: space-between; align-items: center; }
.struktura .licz-podp { display: inline-block; min-width: 16px; padding: 0 5px; border-radius: 8px; background: var(--niebieski); color: #fff; font-size: 10.5px; line-height: 16px; }
.wiersz-dodaj.szeroki { flex-wrap: wrap; row-gap: 10px; }
.wiersz-dodaj.nowa-poz { border-top: 2px solid #D5D9E2; background: #FAFAFC; }
.podp-chipy { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chip { font: 12px Menlo, Consolas, monospace; padding: 4px 10px; border: 1px solid #C9D6EC; background: #F2F6FC; color: var(--niebieski); border-radius: 14px; cursor: pointer; }
.chip:hover { background: var(--niebieski-t); border-color: var(--niebieski); }

/* pulpit — centrum dowodzenia (v1.9.0) */
.kpi { margin-bottom: 16px; }
.kafel .liczba small { font-size: 15px; color: var(--szary); font-weight: 600; }
.kafel.dobry .liczba { color: var(--zielony); } .kafel.uwaga .liczba { color: var(--zolty); }
.lejek-panel { padding: 14px 16px; }
.lejek { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; }
.lejek-krok { position: relative; padding: 4px 6px; color: var(--jasny); }
.lejek-krok + .lejek-krok::before { content: "→"; position: absolute; left: -9px; top: 10px; color: var(--linia); font-weight: 700; }
.lejek-krok.jest { color: var(--tekst); }
.lejek-l { font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lejek-n { font-size: 12.5px; color: var(--szary); margin-bottom: 6px; }
.lejek-pasek, .postep { height: 7px; background: var(--szary-t); border-radius: 99px; overflow: hidden; }
.lejek-pasek span { display: block; height: 100%; background: var(--niebieski); border-radius: 99px; }
.postep span { display: block; height: 100%; background: var(--niebieski); border-radius: 99px; }
.postep.pelny span { background: var(--zielony); } .postep.niski span { background: var(--zolty); }
.kroki-etapu { display: flex; gap: 3px; margin-bottom: 3px; }
.kroki-etapu i { width: 14px; height: 6px; border-radius: 3px; background: var(--szary-t); }
.kroki-etapu i.zr { background: var(--zielony); } .kroki-etapu i.teraz { background: var(--niebieski); }
.t.przyczepy tr.po-terminie td:first-child { box-shadow: inset 3px 0 0 var(--czerwony); }
.t.przyczepy tr.zagrozone td:first-child { box-shadow: inset 3px 0 0 var(--zolty); }
.info.brakuje { color: var(--czerwony); margin-top: 3px; } .info.zolty-t { color: var(--zolty); font-weight: 600; }
.przewijaj { overflow-x: auto; }
.tytul-w { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.tytul-w h2 { margin: 0; }
.legenda { display: flex; gap: 12px; font-size: 12px; color: var(--szary); flex-wrap: wrap; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.wykres { width: 100%; height: auto; display: block; margin: 4px 0 6px; }
.wykres .siatka-l { stroke: var(--linia2); stroke-width: 1; }
.wykres .os { font-size: 10.5px; fill: var(--jasny); }
.wykres .wart { font-size: 10.5px; fill: var(--szary); font-weight: 600; }
.pusto-duze { padding: 26px 0; text-align: center; }
@media (max-width: 1000px) { .lejek { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.siatka.do-gory { align-items: start; }
.brak-l b { font-variant-numeric: tabular-nums; } .brak-l b.czerwony { color: var(--czerwony); } .brak-l b.zolty { color: var(--zolty); } .brak-l b.niebieski { color: var(--niebieski); }

.postep { height: 8px; background: #E9ECF3; border-radius: 4px; overflow: hidden; min-width: 90px; } .postep > div { height: 100%; background: var(--zielony, #1E7F45); }
.rozwin-zam { border: 0; background: none; cursor: pointer; font-size: 14px; padding: 0 4px; color: var(--szary, #5B6475); }
.drzewo-zam { background: #F3F5FA; padding: 10px 16px 14px 34px !important; }
.dz-poz { background: #fff; border: 1px solid #D6DBE7; border-left: 5px solid var(--glowny, #E8622C); border-radius: 8px; margin: 8px 0; padding: 8px 12px; box-shadow: 0 1px 2px rgba(20,30,60,.06); }
.dz-glowa { display: grid; grid-template-columns: minmax(240px, 1fr) 80px 200px; gap: 12px; align-items: center; font-size: 14px; }
.dz-ilosc { font-weight: 700; } .dz-pasek { display: inline-flex; gap: 8px; align-items: center; min-width: 170px; } .dz-pasek .postep { flex: 1; height: 10px; }
.dz-sztuka { margin: 8px 0 0 18px; border-left: 3px solid #B8C2DA; padding-left: 10px; }
.dz-sztuka > summary { display: grid; grid-template-columns: 14px 100px 150px minmax(80px, 1fr) 190px 110px; gap: 10px; align-items: center; cursor: pointer; padding: 5px 0; font-weight: 600; list-style: none; }
.dz-sztuka > summary::-webkit-details-marker { display: none; } .dz-sztuka > summary::before { content: "▸"; color: #5B6475; } .dz-sztuka[open] > summary::before { content: "▾"; }
.dz-typ { background: #E3E9F8; color: #1F2A44; border-radius: 10px; padding: 1px 9px; font-size: 12px; font-weight: 600; }
.dz-dziecko { display: grid; grid-template-columns: 100px 120px 1fr 190px; gap: 14px; align-items: center; margin: 4px 0 4px 22px; padding: 5px 10px; background: #F7F9FD; border-left: 3px solid #0A63C9; border-radius: 0 6px 6px 0; font-size: 13px; }
.dz-nr { min-width: 100px; font-weight: 700; } .dz-etap { background: #FFF1E6; color: #9A4A12; border-radius: 10px; padding: 1px 9px; font-size: 12px; font-weight: 600; min-width: 96px; text-align: center; }
.dz-etap.e-CIECIE { background: #E8F1FF; color: #0A4FA0; } .dz-etap.e-SPAWANIE { background: #FFF1E6; color: #9A4A12; } .dz-etap.e-KOOPERACJA { background: #EAF6EC; color: #1E7F45; } .dz-etap.e-MONTAZ_ZL { background: #F1ECFA; color: #5B3FA0; }

/* jeden wiersz na indeks — rozwijane „skąd to jest” (zlecenie, przyczepa, ile sztuk) */
.t tr.sum-wiersz { cursor: pointer; }
.t tr.sum-wiersz:hover td { background: #FAFAFC; }
.t tr.sum-wiersz.otwarta td { background: #F4F6FA; border-bottom-color: transparent; }
.sum-wiersz .strzalka { float: left; width: 14px; margin: 1px 4px 0 0; color: var(--jasny); font-size: 15px; line-height: 1.2; transition: transform .15s; }
.sum-wiersz.otwarta .strzalka { transform: rotate(90deg); color: var(--pom); }
.sum-wiersz .sum-licznik { color: var(--szary); font-size: 12.5px; white-space: nowrap; }
.t tr.sum-szczegoly td { background: #F7F8FB; padding: 4px 18px 12px 44px; border-top: 0; }
.sum-lista { display: grid; max-width: 760px; max-height: 340px; overflow-y: auto; background: var(--karta); border: 1px solid var(--linia); border-radius: var(--r2); padding: 2px 12px; }
.sum-poz { display: grid; grid-template-columns: 150px 150px minmax(120px, 1fr) 90px; gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--linia2); font-size: 13px; }
.sum-poz:last-child { border-bottom: 0; }
.sum-poz .il { text-align: right; font-variant-numeric: tabular-nums; }
.sum-poz.edycja { grid-template-columns: 150px 150px minmax(120px, 1fr) 100px 170px 40px; }
.sum-poz input[type=text] { width: 80px; text-align: right; }
.sum-poz.zb { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.sum-poz.zb .zb-zr { min-width: 190px; }
.sum-poz.zb input[type=text] { width: 76px; text-align: right; }
.sum-poz.zb .zb-zr { flex: 0 0 330px; }
.sum-poz.zb > span:nth-child(2) { flex: 0 0 120px; }

tr.odfiltrowany { display: none !important; }

/* cennik kooperanta — składniki */
.cen-sk { border-top: 1px solid var(--linia); padding: 12px 18px; }
.cen-sk.nowy { background: #FBFBFD; }
.cen-sk-nag { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.cen-wiersz { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-top: 6px; }
.cen-et { width: 48px; padding-bottom: 8px; }
.cen-prog { display: flex; gap: 6px; align-items: center; padding: 4px 8px; background: var(--karta); border: 1px solid var(--linia); border-radius: var(--r2); }

/* konto podglądu (zarząd): bez formularzy zapisujących dane — serwer i tak ich nie przyjmie (wyjątek: wylogowanie, własne hasło i 2FA) */
body.tylko-podglad form[method=post]:not(.dla-podgladu), body.tylko-podglad form[method=POST]:not(.dla-podgladu), body.tylko-podglad .tylko-zapis { display: none !important; }

/* Pomoc — instrukcja obsługi (treść z generatora) */
.pomoc-szukaj { display: flex; gap: 12px; align-items: center; padding: 12px 18px; } .pomoc-szukaj input { width: 420px; max-width: 100%; }
.pomoc { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 24px; align-items: start; }
.pomoc-spis { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; background: var(--karta); border-radius: var(--r); box-shadow: var(--cien); padding: 10px; font-size: 13px; }
.pomoc-spis a { display: block; padding: 4px 8px; border-radius: 6px; color: var(--tekst); } .pomoc-spis a:hover { background: var(--tlo); text-decoration: none; }
.pomoc-spis a.poz2 { font-weight: 600; margin-top: 4px; } .pomoc-spis a.poz3 { padding-left: 20px; color: var(--szary); font-size: 12.5px; }
.pomoc-tresc { background: var(--karta); border-radius: var(--r); box-shadow: var(--cien); padding: 8px 32px 32px; max-width: 980px; font-size: 14.5px; line-height: 1.6; }
.pomoc-tresc h2 { font-size: 21px; margin: 32px 0 10px; padding-top: 16px; border-top: 1px solid var(--linia); scroll-margin-top: 16px; } .pomoc-tresc h2:first-child { border-top: 0; margin-top: 12px; }
.pomoc-tresc h3 { font-size: 16px; margin: 22px 0 6px; scroll-margin-top: 16px; }
.pomoc-tresc li { margin: 4px 0; }
.pomoc-uwaga { border-left: 4px solid var(--pom); background: #FFF4EC; border-radius: 0 var(--r2) var(--r2) 0; padding: 4px 16px; margin: 12px 0; } .pomoc-uwaga p { margin: 8px 0; }
.pomoc-tab { border-collapse: collapse; width: 100%; margin: 12px 0; font-size: 13.5px; } .pomoc-tab th { text-align: left; background: var(--tlo); padding: 8px 10px; font-size: 12px; color: var(--szary); text-transform: uppercase; letter-spacing: .3px; }
.pomoc-tab td { padding: 8px 10px; border-bottom: 1px solid var(--linia2); vertical-align: top; }
.pomoc-obraz { margin: 16px 0; } .pomoc-obraz img { max-width: 100%; height: auto; border: 1px solid var(--linia); border-radius: var(--r2); } .pomoc-obraz figcaption { font-size: 12.5px; color: var(--szary); margin-top: 4px; }
@media (max-width: 1000px) { .pomoc { grid-template-columns: 1fr; } .pomoc-spis { position: static; max-height: none; } .pomoc-tresc { padding: 8px 16px 24px; } }

/* księgowość: na ekranach podglądu widoczne tylko formularze księgowe (FV, ceny, ceny usługi WK, transport, nr dostawy) */
body.tylko-podglad.ksiegowosc form.dla-ksiegowosci[method=post] { display: revert !important; }
body.tylko-podglad.ksiegowosc form.dla-ksiegowosci .tylko-zapis { display: revert !important; }
