:root { --tlo:#f4f5f7; --karta:#fff; --tekst:#1f2328; --szary:#6b7280; --linia:#e5e7eb; --akcent:#1f5fbf; --akcent-ciemny:#174a94; --ok:#15803d; --blad:#b91c1c; --ostrz:#b45309; }
* { box-sizing: border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; font-size:15px; color:var(--tekst); background:var(--tlo); }
.ukryty { display:none !important; }
.ekran { min-height:100vh; }
#ekran-ladowania { display:flex; align-items:center; justify-content:center; color:var(--szary); }
.karta { background:var(--karta); border:1px solid var(--linia); border-radius:10px; padding:20px; }
.logowanie { width:360px; max-width:92vw; margin:12vh auto 0; display:flex; flex-direction:column; gap:12px; }
.logowanie h1 { margin:0 0 8px; font-size:22px; }
label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--szary); }
input, select, textarea { font:inherit; padding:8px 10px; border:1px solid #cbd5e1; border-radius:6px; color:var(--tekst); background:#fff; }
input:focus, select:focus, textarea:focus { outline:2px solid #bfd3f5; border-color:var(--akcent); }
input[readonly] { background:#f1f5f9; }
button, .przycisk { font:inherit; font-size:15px; padding:8px 14px; border-radius:6px; border:1px solid var(--akcent); background:var(--akcent); color:#fff; cursor:pointer; }
button:hover, .przycisk:hover { background:var(--akcent-ciemny); }
button:disabled { opacity:.6; cursor:default; }
button.drugorzedny { background:#fff; color:var(--tekst); border-color:#cbd5e1; }
button.drugorzedny:hover { background:#f1f5f9; }
button.maly { padding:4px 10px; font-size:13px; }
label.przycisk { display:inline-flex; flex-direction:row; color:#fff; }
.blad { color:var(--blad); min-height:1.2em; margin:0; font-size:14px; }
.naglowek { display:flex; align-items:center; gap:24px; padding:10px 24px; background:#fff; border-bottom:1px solid var(--linia); flex-wrap:wrap; }
.logo { font-weight:600; }
#nawigacja { display:flex; gap:4px; flex:1; }
#nawigacja a { padding:6px 12px; border-radius:6px; color:var(--tekst); text-decoration:none; }
#nawigacja a:hover { background:#f1f5f9; }
#nawigacja a.aktywny { background:#e8f0fc; color:var(--akcent); font-weight:600; }
.uzytkownik { display:flex; align-items:center; gap:10px; color:var(--szary); font-size:14px; }
main { padding:24px; max-width:1500px; }
h2 { margin:0 0 16px; font-size:20px; }
.stopka { padding:16px 24px; color:var(--szary); font-size:12px; }
.pasek { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.info { color:var(--szary); font-size:14px; }
.kafelki { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:20px; }
.kafelek .liczba { font-size:28px; font-weight:600; }
.kafelek .opis { color:var(--szary); font-size:13px; }
table { border-collapse:collapse; width:100%; background:#fff; border:1px solid var(--linia); }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--linia); font-size:14px; vertical-align:top; }
th { background:#f8fafc; color:var(--szary); font-weight:600; font-size:13px; }
tr:last-child td { border-bottom:none; }
tr.nieaktywna td { color:var(--szary); }
td.liczba, th.liczba { text-align:right; }
small { color:var(--szary); }
.pusto { color:var(--szary); padding:20px; }
.brak { color:var(--blad); }
.znacznik { display:inline-block; padding:1px 7px; border-radius:10px; background:#eef2f7; color:var(--szary); font-size:12px; white-space:nowrap; }
#komunikaty { position:fixed; right:16px; bottom:16px; display:flex; flex-direction:column; gap:8px; z-index:100; }
.komunikat { padding:10px 14px; border-radius:8px; background:#1f2328; color:#fff; box-shadow:0 4px 12px rgba(0,0,0,.15); max-width:420px; }
.komunikat.blad { background:var(--blad); }
.komunikat.ok { background:var(--ok); }
.modal { position:fixed; inset:0; background:rgba(0,0,0,.35); display:flex; align-items:flex-start; justify-content:center; padding:40px 16px; overflow:auto; z-index:50; }
.modal-okno { width:760px; max-width:100%; }
.modal-okno h3 { margin:0 0 14px; }
.formularz { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; }
.formularz label.wiersz { flex-direction:row; align-items:center; gap:8px; color:var(--tekst); }
.formularz label:has(textarea) { grid-column:1 / -1; }
.formularz .przyciski { grid-column:1 / -1; display:flex; gap:10px; margin-top:8px; }
.testy { padding:24px; max-width:900px; }
.testy ul { padding:0; }
.testy li { padding:4px 0; list-style:none; }
.testy li.ok::before { content:"✔ "; color:var(--ok); }
.testy li.fail::before { content:"✘ "; color:var(--blad); }
.testy .szczegol { color:var(--blad); font-size:13px; margin-left:22px; }
label.przycisk.drugorzedny { background:#fff; color:var(--tekst); border-color:#cbd5e1; }
label.przycisk.drugorzedny:hover { background:#f1f5f9; }
td.nadpisane { background:#fff7d6; }
.ostrz { color:var(--ostrz); font-weight:600; }
.tabela-okres th, .tabela-okres td { font-size:13px; padding:6px 8px; }
.tabela-okres tfoot th { background:#f8fafc; }
.uwagi { margin-bottom:14px; }
.uwagi ul { margin:0; padding-left:20px; }
.uwagi li { margin:4px 0; }
a.przycisk { text-decoration:none; display:inline-block; }
.blokady ul { margin:6px 0 0; padding-left:20px; }
.blokady li { color:var(--blad); margin:4px 0; }
.faktura-pozycje { margin:0; padding-left:16px; font-size:13px; }
h3 { margin:0 0 10px; font-size:16px; }
.podglad { background:#f8fafc; border:1px solid var(--linia); border-radius:6px; padding:10px; font-size:12px; white-space:pre-wrap; word-break:break-all; }
