/* Księgi LEX TAX — system wyglądu (docs/wyglad_plan.md, propozycja 2026-10-20). Jeden plik CSS dla całego programu
   po przebudowie; na razie używa go tylko /wzornik. Kolory wyłącznie przez zmienne z :root (nazwy według funkcji);
   kontrast par tekst/tło sprawdza test (tests/test_wzornik.py, WCAG AA). Czcionki IBM Plex z naszego serwera (OFL,
   fonty/LICENSE-OFL.txt) — bez CDN. Złoto tylko jako akcent (linia, logo), nigdy tekst na jasnym tle. */
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-display: swap; src: url("fonty/ibm-plex-sans-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-display: swap; src: url("fonty/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-display: swap; src: url("fonty/ibm-plex-sans-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-display: swap; src: url("fonty/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap; src: url("fonty/ibm-plex-sans-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap; src: url("fonty/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 700; font-display: swap; src: url("fonty/ibm-plex-sans-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 700; font-display: swap; src: url("fonty/ibm-plex-sans-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-display: swap; src: url("fonty/ibm-plex-mono-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-display: swap; src: url("fonty/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-weight: 500; font-display: swap; src: url("fonty/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-weight: 500; font-display: swap; src: url("fonty/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  /* kolory — nazwy według funkcji */
  --kolor-tlo: #F7F3EA;
  --kolor-powierzchnia: #FFFFFF;
  --kolor-powierzchnia-2: #FBF9F4;
  --kolor-tekst: #16202F;
  --kolor-tekst-2: #535B6A;
  --kolor-obramowanie: #E3DDD1;
  --kolor-obramowanie-pola: #8C8577;
  --kolor-akcent: #1D3F73;
  --kolor-na-akcencie: #FFFFFF;
  --kolor-granat: #13213A;
  --kolor-na-granacie: #FFFFFF;
  --kolor-na-granacie-2: #C9D1E0;
  --kolor-zloto: #B8924A;
  --kolor-zloto-jasne: #D4B57A;
  --kolor-sukces: #1B5E34;
  --kolor-sukces-tlo: #E5F0E7;
  --kolor-ostrzezenie: #8A4A0C;
  --kolor-ostrzezenie-tlo: #FBEEDC;
  --kolor-blad: #A32020;
  --kolor-blad-tlo: #FBE8E8;
  --kolor-informacja: #1D4E8C;
  --kolor-informacja-tlo: #E4ECF7;
  /* typografia: gęsto, na duże monitory; rozmiar tekstu i wiersza tabeli zmienia się tylko tutaj (decyzja 2026-10-20) */
  --czcionka: "IBM Plex Sans", system-ui, sans-serif;
  --czcionka-mono: "IBM Plex Mono", ui-monospace, monospace;
  --rozmiar-xs: 12px;
  --rozmiar-s: 13px;
  --rozmiar-m: 14px;
  --rozmiar-l: 15.5px;
  --rozmiar-xl: 18px;
  --interlinia: 1.45;
  /* odstępy (siatka 4 px) */
  --o-1: 4px;
  --o-2: 8px;
  --o-3: 12px;
  --o-4: 16px;
  --o-5: 24px;
  --o-6: 32px;
  --promien: 4px;
  --wiersz-tabeli: 30px;
  --wysokosc-kontrolki: 28px;
  --wysokosc-paska: 48px;
  --wysokosc-logo: 38px;
  --fokus: 2px solid var(--kolor-akcent);
}

* { box-sizing: border-box; }
html { font-size: var(--rozmiar-m); }
body.lt { margin: 0; font: var(--rozmiar-m)/var(--interlinia) var(--czcionka); color: var(--kolor-tekst);
  background: var(--kolor-tlo); }
a { color: var(--kolor-akcent); }
:focus-visible { outline: var(--fokus); outline-offset: 1px; }
h1, h2, h3 { margin: 0; color: var(--kolor-tekst); font-weight: 600; }
h1 { font-size: var(--rozmiar-xl); }
h2 { font-size: var(--rozmiar-l); }
h3 { font-size: var(--rozmiar-m); }
.lt-mono { font-family: var(--czcionka-mono); font-size: .95em; }
.lt-kw { font-variant-numeric: tabular-nums lining-nums; text-align: right; white-space: nowrap; }
.lt-drugorzedny { color: var(--kolor-tekst-2); }
.lt-maly { font-size: var(--rozmiar-s); }

/* pasek górny */
.lt-gora { display: flex; align-items: center; gap: var(--o-5); height: var(--wysokosc-paska); padding: 0 var(--o-5);
  color: var(--kolor-na-granacie); background: var(--kolor-granat); border-bottom: 2px solid var(--kolor-zloto); }
.lt-marka { display: flex; align-items: center; gap: var(--o-2); color: var(--kolor-na-granacie); font-weight: 600;
  text-decoration: none; white-space: nowrap; }
.lt-marka img { width: var(--wysokosc-logo); height: var(--wysokosc-logo); }
.lt-menu { display: flex; gap: var(--o-1); flex: 1; }
.lt-menu a { padding: var(--o-1) var(--o-3); color: var(--kolor-na-granacie-2); text-decoration: none; border-radius: var(--promien); }
.lt-menu a:hover, .lt-menu a.aktywne { color: var(--kolor-na-granacie); background: rgba(255, 255, 255, .08); }
.lt-menu a.aktywne { box-shadow: inset 0 -2px 0 var(--kolor-zloto-jasne); }
.lt-konto { position: relative; margin: 0; font-size: var(--rozmiar-s); color: var(--kolor-na-granacie-2); }
.lt-konto > summary { padding: var(--o-1) var(--o-3); list-style: none; cursor: pointer; border-radius: var(--promien); }
.lt-konto > summary::-webkit-details-marker { display: none; }
.lt-konto > summary::after { content: " ▾"; }
.lt-konto > summary:hover, .lt-konto > summary.aktywne, .lt-konto[open] > summary { color: var(--kolor-na-granacie);
  background: rgba(255, 255, 255, .08); }
.lt-konto-menu { position: absolute; right: 0; z-index: 20; display: grid; min-width: 200px; margin-top: var(--o-1);
  padding: var(--o-1) 0; background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie);
  border-radius: var(--promien); box-shadow: 0 4px 16px rgba(0, 0, 0, .12); }
.lt-konto-menu a, .lt-konto-menu button { display: block; width: 100%; padding: var(--o-2) var(--o-4); font: inherit; text-align: left;
  color: var(--kolor-tekst); text-decoration: none; background: none; border: 0; cursor: pointer; }
.lt-konto-menu a:hover, .lt-konto-menu button:hover { background: var(--kolor-powierzchnia-2); }
.lt-konto-menu form { margin: 0; border-top: 1px solid var(--kolor-obramowanie); }
.lt-baner { padding: var(--o-1) var(--o-5); font-size: var(--rozmiar-xs); font-weight: 600; letter-spacing: .06em;
  color: var(--kolor-ostrzezenie); background: var(--kolor-ostrzezenie-tlo); border-bottom: 1px solid var(--kolor-obramowanie); }

/* treść: pełna szerokość dużego monitora */
.lt-tresc { max-width: 1880px; margin: 0 auto; padding: var(--o-4) var(--o-5) var(--o-6); }
.lt-sekcja { margin-bottom: var(--o-6); }
.lt-sekcja > h2 { margin-bottom: var(--o-3); padding-bottom: var(--o-1); border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-siatka { display: grid; gap: var(--o-3); }
.lt-siatka-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lt-siatka-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lt-siatka-23 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }

/* karta */
.lt-karta { padding: var(--o-3) var(--o-4); background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie);
  border-radius: var(--promien); }
.lt-karta > h2, .lt-karta > header { margin-bottom: var(--o-2); }
.lt-karta > header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--o-3); }
.lt-karta-glowna { border-top: 3px solid var(--kolor-akcent); }
/* „Do przeglądu” wyraźnie w kolorze ostrzeżenia (decyzja 2026-10-20): tło, ramka, nagłówek */
.lt-karta-przeglad { background: var(--kolor-ostrzezenie-tlo); border-color: var(--kolor-ostrzezenie);
  border-left: 5px solid var(--kolor-ostrzezenie); }
.lt-karta-przeglad > h2, .lt-karta-przeglad > header h2 { color: var(--kolor-ostrzezenie); }
.lt-karta-przeglad p + p { padding-top: var(--o-2); border-top: 1px solid var(--kolor-obramowanie); }
.lt-licznik { display: inline-block; min-width: 1.6em; margin-left: var(--o-1); padding: 0 6px; font-size: var(--rozmiar-s);
  line-height: 20px; text-align: center; color: var(--kolor-na-akcencie); background: var(--kolor-ostrzezenie); border-radius: 10px; }
.lt-karta-info { border-left: 3px solid var(--kolor-informacja); }

/* lista definicji: etykieta | wartość */
.lt-def { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 2px var(--o-4); margin: 0; }
.lt-def dt { color: var(--kolor-tekst-2); }
.lt-def dd { margin: 0; overflow-wrap: anywhere; }

/* tabele */
.lt-tabela { width: 100%; border-collapse: collapse; font-size: var(--rozmiar-m); background: var(--kolor-powierzchnia); }
.lt-tabela th { height: var(--wiersz-tabeli); padding: 0 var(--o-2); font-size: var(--rozmiar-s); font-weight: 600;
  text-align: left; color: var(--kolor-tekst-2); background: var(--kolor-powierzchnia-2);
  border-bottom: 1px solid var(--kolor-obramowanie); white-space: nowrap; }
.lt-tabela td { height: var(--wiersz-tabeli); padding: 3px var(--o-2); vertical-align: top;
  border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-tabela th.lt-kw, .lt-tabela td.lt-kw { text-align: right; }
.lt-tabela tbody tr:hover td { background: var(--kolor-powierzchnia-2); }
.lt-tabela tfoot td { font-weight: 600; border-bottom: 0; }
.lt-tabela tr.lt-wyroznione td { background: var(--kolor-ostrzezenie-tlo); }
.lt-tabela tr.lt-wyroznione td:first-child { box-shadow: inset 3px 0 0 var(--kolor-ostrzezenie); }
.lt-tabela tr.lt-otwarta td { background: var(--kolor-ostrzezenie-tlo); }
.lt-tabela .lt-uzasadnienie { color: var(--kolor-tekst-2); font-size: var(--rozmiar-s); }

/* przyciski i pola */
.lt-btn { display: inline-flex; align-items: center; gap: var(--o-2); height: var(--wysokosc-kontrolki); padding: 0 var(--o-3);
  font: 500 var(--rozmiar-m) var(--czcionka); color: var(--kolor-akcent); text-decoration: none; background: var(--kolor-powierzchnia);
  border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien); cursor: pointer; }
.lt-btn-glowny { color: var(--kolor-na-akcencie); background: var(--kolor-akcent); border-color: var(--kolor-akcent); }
.lt-btn:disabled, .lt-btn[aria-disabled="true"] { color: var(--kolor-tekst-2); background: var(--kolor-powierzchnia-2);
  border-color: var(--kolor-obramowanie); cursor: not-allowed; }
.lt-akcja { display: inline-flex; flex-direction: column; gap: 2px; }
.lt-akcja small { font-size: var(--rozmiar-xs); color: var(--kolor-tekst-2); }
.lt-akcje { display: flex; flex-wrap: wrap; gap: var(--o-3); }
.lt-pole { display: grid; gap: 2px; font-size: var(--rozmiar-s); color: var(--kolor-tekst-2); }
.lt-pole input, .lt-pole select { height: var(--wysokosc-kontrolki); padding: 0 var(--o-2); font: var(--rozmiar-m) var(--czcionka);
  color: var(--kolor-tekst); background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie-pola);
  border-radius: var(--promien); }
.lt-pole input[aria-invalid="true"] { border-color: var(--kolor-blad); }
.lt-pole .lt-blad-pola { color: var(--kolor-blad); }

/* znaczniki statusu */
.lt-znak { display: inline-block; padding: 0 var(--o-2); font-size: var(--rozmiar-s); font-weight: 500; line-height: 20px;
  border-radius: 10px; white-space: nowrap; }
.lt-znak-przeglad { color: var(--kolor-ostrzezenie); background: var(--kolor-ostrzezenie-tlo); }
.lt-znak-info { color: var(--kolor-informacja); background: var(--kolor-informacja-tlo); }
.lt-znak-gotowa { color: var(--kolor-sukces); background: var(--kolor-sukces-tlo); }
.lt-znak-blad { color: var(--kolor-blad); background: var(--kolor-blad-tlo); }
.lt-znak-neutralny { color: var(--kolor-tekst-2); background: var(--kolor-powierzchnia-2); border: 1px solid var(--kolor-obramowanie); }

/* klawisze i ściąga */
kbd, .lt-klawisz { display: inline-block; min-width: 1.6em; padding: 0 4px; font: 500 var(--rozmiar-xs)/18px var(--czcionka-mono);
  text-align: center; color: var(--kolor-tekst); background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie-pola);
  border-bottom-width: 2px; border-radius: 3px; }
.lt-sciaga { position: fixed; right: var(--o-5); bottom: var(--o-5); z-index: 20; width: 320px; padding: var(--o-3) var(--o-4);
  background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien);
  box-shadow: 0 6px 24px rgba(19, 33, 58, .18); }
.lt-sciaga[hidden] { display: none; }
.lt-sciaga table td { padding: 2px var(--o-2) 2px 0; }

/* ekran faktury */
.lt-pasek-faktury { position: sticky; top: 0; z-index: 10; display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-2) var(--o-4);
  margin: 0 calc(-1 * var(--o-5)) var(--o-3); padding: var(--o-2) var(--o-5); background: var(--kolor-powierzchnia);
  border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-pasek-faktury .lt-tytul { font-size: var(--rozmiar-l); font-weight: 600; }
.lt-pasek-faktury .lt-nawigacja { display: flex; align-items: center; gap: var(--o-2); margin-left: auto; }
.lt-kolejnosc { display: grid; gap: var(--o-3); }
.lt-okruszki { margin: 0 0 var(--o-2); color: var(--kolor-tekst-2); }
.lt-przelacznik { display: inline-flex; align-items: center; gap: 0; margin: 0 0 0 var(--o-2); }
.lt-przelacznik .lt-btn { border-radius: 0; }
.lt-przelacznik .lt-btn + .lt-btn { margin-left: -1px; border-radius: 0 var(--promien) var(--promien) 0; }
.lt-przelacznik span + .lt-btn { margin-left: var(--o-2); border-radius: var(--promien) 0 0 var(--promien); }
.lt-przelacznik .lt-btn[aria-pressed="true"] { color: var(--kolor-na-akcencie); background: var(--kolor-akcent); border-color: var(--kolor-akcent); }

/* ekran faktury: dane po lewej, zwarta faktura z XML po prawej (ok. 48%), przyklejona do góry, na wysokość okna,
   z własnym przewijaniem w pionie (nigdy w poziomie); poniżej 1400 px albo przy „pod spodem” — jedno pod drugim */
.lt-faktura { display: grid; gap: var(--o-4); align-items: start; }
.lt-faktura-dane { display: grid; gap: var(--o-3); min-width: 0; }
.lt-faktura-wizualizacja { min-width: 0; padding: var(--o-2) var(--o-3) var(--o-3); background: var(--kolor-powierzchnia);
  border: 1px solid var(--kolor-obramowanie); border-radius: var(--promien); overflow-x: hidden; }
.lt-wizualizacja-pasek { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--o-2);
  margin-bottom: var(--o-2); padding-bottom: var(--o-2); border-bottom: 1px solid var(--kolor-obramowanie); }
@media (min-width: 1400px) {
  .lt-faktura-obok { grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); }
  .lt-faktura-obok .lt-faktura-wizualizacja { position: sticky; top: 0; max-height: 100vh; overflow-y: auto; }
}
.lt-ramka-druku { position: absolute; width: 0; height: 0; border: 0; visibility: hidden; }
.lt-klasyfikacja { margin: 0; }

/* zwarta faktura: wszystko mieści się w szerokości kolumny — stały układ tabeli, zawijanie nazw */
.lt-fv { font-size: var(--rozmiar-s); overflow-wrap: anywhere; }
.lt-fv p { margin: 0 0 var(--o-2); }
.lt-fv-naglowek b { font-size: var(--rozmiar-m); }
.lt-fv-strony { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--o-3); }
.lt-fv-uwaga { padding: var(--o-1) var(--o-2); color: var(--kolor-ostrzezenie); background: var(--kolor-ostrzezenie-tlo);
  border-radius: var(--promien); }
.lt-fv table { width: 100%; margin-bottom: var(--o-2); border-collapse: collapse; table-layout: fixed; }
.lt-fv th { padding: 2px 4px; font-weight: 600; text-align: left; color: var(--kolor-tekst-2); background: var(--kolor-powierzchnia-2);
  border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-fv td { padding: 2px 4px; vertical-align: top; border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-fv th.lt-kw, .lt-fv td.lt-kw { text-align: right; white-space: normal; }
.lt-fv tr.lt-wyroznione td { background: var(--kolor-ostrzezenie-tlo); }
.lt-fv tfoot td { font-weight: 600; border-bottom: 0; }
.lt-fv-lp { width: 2.6em; }
.lt-fv-ilosc { width: 4.6em; }
.lt-fv-jm { width: 3.4em; }
.lt-fv-cena { width: 6.4em; }
.lt-fv-wartosc { width: 7.4em; }
.lt-fv-stawka { width: 3.6em; }

/* księgowość (piaskownica) */
.lt-naglowek-ksiegi { display: grid; gap: var(--o-2); margin-bottom: var(--o-3); }
.lt-zakladki { display: flex; flex-wrap: wrap; gap: var(--o-1); border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-zakladki a, .lt-zakladka-wylaczona { padding: var(--o-1) var(--o-3); color: var(--kolor-akcent); text-decoration: none;
  border: 1px solid transparent; border-bottom: 0; border-radius: var(--promien) var(--promien) 0 0; }
.lt-zakladki a.aktywna { color: var(--kolor-tekst); font-weight: 600; background: var(--kolor-powierzchnia); border-color: var(--kolor-obramowanie); }
.lt-zakladka-wylaczona { color: var(--kolor-tekst-2); cursor: not-allowed; }
.lt-btn-maly { height: 22px; padding: 0 var(--o-2); font-size: var(--rozmiar-xs); }
.lt-tabela-ksiegi th { white-space: normal; vertical-align: bottom; height: auto; padding-top: var(--o-1); padding-bottom: var(--o-1); }
.lt-tabela th.lt-srodek { text-align: center; }
.lt-tabela tr[data-href] { cursor: pointer; }
.lt-pole-miesiac, .lt-formularz-wiersz input, .lt-formularz-wiersz select { height: var(--wysokosc-kontrolki); padding: 0 var(--o-2);
  font: var(--rozmiar-s) var(--czcionka); color: var(--kolor-tekst); background: var(--kolor-powierzchnia);
  border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien); }
.lt-formularz-wiersz { display: flex; flex-wrap: wrap; gap: var(--o-1); margin: 0; }
.lt-pole textarea { padding: var(--o-1) var(--o-2); font: var(--rozmiar-m) var(--czcionka); color: var(--kolor-tekst);
  border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien); }
.lt-pole-grupa { margin: 0; padding: var(--o-2) var(--o-3); border: 1px solid var(--kolor-obramowanie); border-radius: var(--promien); }
.lt-karta form, form.lt-karta { display: grid; gap: var(--o-2); }
.lt-okno { width: min(560px, 92vw); padding: var(--o-4); color: var(--kolor-tekst); background: var(--kolor-powierzchnia);
  border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien); }
.lt-okno form { display: grid; gap: var(--o-2); }
.lt-okno::backdrop { background: rgba(19, 33, 58, .35); }
.lt-kontekst { max-height: 240px; overflow: auto; white-space: pre-wrap; }

.lt-pole-z-przyciskiem { display: flex; gap: var(--o-1); }
.lt-pole-z-przyciskiem input { flex: 1; min-width: 0; }

.lt-inline { display: inline; }
details.lt-karta > summary { cursor: pointer; }

/* Księga i rejestry VAT — praca dzienna (zadanie 2026-10-21) */
.lt-profil { margin: 0 0 var(--o-3); }
.lt-kafelki { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--o-2); margin-bottom: var(--o-3); }
.lt-kafel { display: grid; gap: 2px; padding: var(--o-2) var(--o-3); color: var(--kolor-tekst); text-decoration: none;
  background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie); border-radius: var(--promien); }
.lt-kafel span { font-size: var(--rozmiar-s); color: var(--kolor-tekst-2); }
.lt-kafel b { font-size: var(--rozmiar-l); font-variant-numeric: tabular-nums; }
.lt-kafel small { font-size: var(--rozmiar-xs); color: var(--kolor-tekst-2); }
a.lt-kafel:hover { border-color: var(--kolor-akcent); }
.lt-kafel-przeglad { background: var(--kolor-ostrzezenie-tlo); border-color: var(--kolor-ostrzezenie); }
.lt-pasek-narzedzi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-2) var(--o-4); margin-bottom: var(--o-2); }
.lt-zakladki-male { border-bottom: 0; }
.lt-menu-wiecej { position: relative; display: inline-block; }
.lt-menu-wiecej > summary { list-style: none; }
.lt-menu-wiecej > summary::-webkit-details-marker { display: none; }
.lt-menu-lista { position: absolute; right: 0; z-index: 25; display: grid; min-width: 260px; padding: var(--o-1) 0;
  background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie-pola); border-radius: var(--promien);
  box-shadow: 0 6px 24px rgba(19, 33, 58, .18); }
.lt-menu-lista a, .lt-menu-lista button { display: block; width: 100%; padding: var(--o-1) var(--o-3); font: var(--rozmiar-s) var(--czcionka);
  color: var(--kolor-akcent); text-align: left; text-decoration: none; background: none; border: 0; cursor: pointer; }
.lt-menu-lista a:hover, .lt-menu-lista button:hover { background: var(--kolor-powierzchnia-2); }
.lt-menu-lista form { margin: 0; }
.lt-tabela-przewijana { overflow-x: auto; }
.lt-tabela-dok td, .lt-tabela-dok th { white-space: nowrap; }
.lt-tabela-dok td { height: var(--wiersz-tabeli); padding-top: 0; padding-bottom: 0; vertical-align: middle; }
.lt-tabela-dok th .lt-zrodlo { font-size: var(--rozmiar-xs); }
.lt-tabela-dok td.lt-znaczniki { white-space: normal; min-width: 8em; }
.lt-tabela-dok tbody tr[data-panel], .lt-tabela-dok tbody tr[data-href] { cursor: pointer; }
.lt-tabela-dok tr.lt-aktywny td { background: var(--kolor-informacja-tlo); }
.lt-znacznik { display: inline-block; margin: 1px 2px 1px 0; padding: 0 6px; font: 500 var(--rozmiar-xs)/18px var(--czcionka);
  color: var(--kolor-informacja); background: var(--kolor-informacja-tlo); border: 0; border-radius: 9px; cursor: pointer; }
.lt-znacznik-przeglad { color: var(--kolor-ostrzezenie); background: var(--kolor-ostrzezenie-tlo); }
.lt-wyjasnienie { max-width: 40em; margin-top: 2px; font-size: var(--rozmiar-xs); color: var(--kolor-tekst-2); white-space: normal; }
.lt-wyjasnienie p { margin: 0 0 2px; }
.lt-ikona-kol { width: 1.6em; text-align: center; }
.lt-ikona-uwagi { padding: 0 2px; font-size: var(--rozmiar-s); color: var(--kolor-tekst-2); background: none; border: 0; cursor: pointer; }
.lt-ikona-uwagi:hover { color: var(--kolor-akcent); }
.lt-niewidoczne { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lt-panel-boczny { position: fixed; top: 0; right: 0; bottom: 0; z-index: 30; width: min(48vw, 920px); overflow-y: auto;
  padding: var(--o-2) var(--o-4) var(--o-4); background: var(--kolor-tlo); border-left: 1px solid var(--kolor-obramowanie-pola);
  box-shadow: -6px 0 24px rgba(19, 33, 58, .18); }
.lt-panel-pasek { position: sticky; top: calc(-1 * var(--o-2)); z-index: 1; display: flex; align-items: center; justify-content: space-between;
  gap: var(--o-2); margin: 0 calc(-1 * var(--o-4)) var(--o-2); padding: var(--o-2) var(--o-4); background: var(--kolor-tlo);
  border-bottom: 1px solid var(--kolor-obramowanie); }
.lt-panel-dokument { display: grid; gap: var(--o-3); }
.lt-panel-dokument h2 { font-size: var(--rozmiar-l); }

/* wydruk (KPiR / rejestry) — A4 poziomo */
.lt-druk { padding: var(--o-3); background: #fff; }
.lt-druk-pasek { display: flex; gap: var(--o-3); align-items: center; margin-bottom: var(--o-3); }
.lt-druk-naglowek h1 { font-size: 13pt; }
.lt-druk-naglowek p { margin: 2px 0 6px; font-size: 9pt; }
.lt-druk-tabela { width: 100%; border-collapse: collapse; font-size: 7.5pt; }
.lt-druk-tabela th, .lt-druk-tabela td { padding: 1pt 2pt; vertical-align: top; border: .5pt solid #444; }
.lt-druk-tabela th { font-weight: 600; text-align: center; background: #f2f2f2; }
.lt-druk-tabela tfoot td { font-weight: 600; }
.lt-druk-stopka { margin-top: 6px; }
@page { size: A4 landscape; margin: 8mm; }
@media print {
  .lt-bez-druku, .lt-gora, .lt-baner, .lt-sciaga, .lt-panel-boczny { display: none !important; }
  body.lt { background: #fff; }
  .lt-druk-tabela thead { display: table-header-group; }
  .lt-druk-tabela tr { page-break-inside: avoid; }
}

/* komunikaty po akcji */
.lt-komunikat { margin: 0 0 var(--o-3); padding: var(--o-2) var(--o-3); border-radius: var(--promien);
  color: var(--kolor-informacja); background: var(--kolor-informacja-tlo); }
.lt-komunikat-ok { color: var(--kolor-sukces); background: var(--kolor-sukces-tlo); }
.lt-komunikat-blad { color: var(--kolor-blad); background: var(--kolor-blad-tlo); }
.lt-filtr { display: inline-flex; align-items: center; gap: var(--o-2); margin: 0; }
.lt-filtr select { height: var(--wysokosc-kontrolki); padding: 0 var(--o-2); font: var(--rozmiar-s) var(--czcionka);
  color: var(--kolor-tekst); background: var(--kolor-powierzchnia); border: 1px solid var(--kolor-obramowanie-pola);
  border-radius: var(--promien); }
.lt-zrodlo { display: block; color: var(--kolor-tekst-2); font-size: var(--rozmiar-xs); }

/* wzornik */
.lt-probka { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: var(--o-1) var(--o-3); align-items: center; }
.lt-probka i { display: block; width: 44px; height: 32px; border: 1px solid var(--kolor-obramowanie); border-radius: var(--promien); }
/* próbki palety (CSP bez stylów w atrybutach — klasa na kolor) */
.lt-probka-kolor-tlo { background: var(--kolor-tlo); }
.lt-probka-kolor-powierzchnia { background: var(--kolor-powierzchnia); }
.lt-probka-kolor-powierzchnia-2 { background: var(--kolor-powierzchnia-2); }
.lt-probka-kolor-tekst { background: var(--kolor-tekst); }
.lt-probka-kolor-tekst-2 { background: var(--kolor-tekst-2); }
.lt-probka-kolor-obramowanie { background: var(--kolor-obramowanie); }
.lt-probka-kolor-obramowanie-pola { background: var(--kolor-obramowanie-pola); }
.lt-probka-kolor-akcent { background: var(--kolor-akcent); }
.lt-probka-kolor-na-akcencie { background: var(--kolor-na-akcencie); }
.lt-probka-kolor-granat { background: var(--kolor-granat); }
.lt-probka-kolor-na-granacie { background: var(--kolor-na-granacie); }
.lt-probka-kolor-na-granacie-2 { background: var(--kolor-na-granacie-2); }
.lt-probka-kolor-zloto { background: var(--kolor-zloto); }
.lt-probka-kolor-zloto-jasne { background: var(--kolor-zloto-jasne); }
.lt-probka-kolor-sukces { background: var(--kolor-sukces); }
.lt-probka-kolor-sukces-tlo { background: var(--kolor-sukces-tlo); }
.lt-probka-kolor-ostrzezenie { background: var(--kolor-ostrzezenie); }
.lt-probka-kolor-ostrzezenie-tlo { background: var(--kolor-ostrzezenie-tlo); }
.lt-probka-kolor-blad { background: var(--kolor-blad); }
.lt-probka-kolor-blad-tlo { background: var(--kolor-blad-tlo); }
.lt-probka-kolor-informacja { background: var(--kolor-informacja); }
.lt-probka-kolor-informacja-tlo { background: var(--kolor-informacja-tlo); }
.lt-kontrast-probka { display: inline-block; padding: 0 var(--o-2); border: 1px solid var(--kolor-obramowanie); border-radius: var(--promien); }
.lt-t-kolor-tlo { color: var(--kolor-tlo); }
.lt-t-kolor-powierzchnia { color: var(--kolor-powierzchnia); }
.lt-t-kolor-powierzchnia-2 { color: var(--kolor-powierzchnia-2); }
.lt-t-kolor-tekst { color: var(--kolor-tekst); }
.lt-t-kolor-tekst-2 { color: var(--kolor-tekst-2); }
.lt-t-kolor-obramowanie { color: var(--kolor-obramowanie); }
.lt-t-kolor-obramowanie-pola { color: var(--kolor-obramowanie-pola); }
.lt-t-kolor-akcent { color: var(--kolor-akcent); }
.lt-t-kolor-na-akcencie { color: var(--kolor-na-akcencie); }
.lt-t-kolor-granat { color: var(--kolor-granat); }
.lt-t-kolor-na-granacie { color: var(--kolor-na-granacie); }
.lt-t-kolor-na-granacie-2 { color: var(--kolor-na-granacie-2); }
.lt-t-kolor-zloto { color: var(--kolor-zloto); }
.lt-t-kolor-zloto-jasne { color: var(--kolor-zloto-jasne); }
.lt-t-kolor-sukces { color: var(--kolor-sukces); }
.lt-t-kolor-sukces-tlo { color: var(--kolor-sukces-tlo); }
.lt-t-kolor-ostrzezenie { color: var(--kolor-ostrzezenie); }
.lt-t-kolor-ostrzezenie-tlo { color: var(--kolor-ostrzezenie-tlo); }
.lt-t-kolor-blad { color: var(--kolor-blad); }
.lt-t-kolor-blad-tlo { color: var(--kolor-blad-tlo); }
.lt-t-kolor-informacja { color: var(--kolor-informacja); }
.lt-t-kolor-informacja-tlo { color: var(--kolor-informacja-tlo); }

/* Formularz nowego klienta: pola w siatce, źródło pola pod polem */
.lt-siatka-pol { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--o-2) var(--o-3); }
.lt-formularz-klienta .lt-pole input, .lt-formularz-klienta .lt-pole select { width: 100%; }

/* ewidencja produkcyjna trybu równoległego (droga B) — baner odróżnia od piaskownicy */
.lt-baner-ewidencja { color: var(--kolor-sukces); background: var(--kolor-sukces-tlo); }
.lt-baner-ewidencja a { color: inherit; margin-left: var(--o-3); }

/* start: kafelki z liczbami i linkami */
a.lt-kafel:hover b { text-decoration: underline; }
