:root { --tlo:#f4f6f8; --karta:#fff; --tekst:#1c2733; --szary:#5c6b7a; --linia:#d9e0e7; --akcent:#1f5fa8; --akcent2:#174a85; --blad:#b3261e; --ok:#1a7f37; --warn:#9a6700; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin:0; font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:var(--tekst); background:var(--tlo); }
.top { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.8rem 1.2rem; background:var(--akcent); color:#fff; }
.top h1 { margin:0; font-size:1.15rem; }
.user { display:flex; gap:.8rem; align-items:center; font-size:.95rem; }
main { max-width:960px; margin:1.2rem auto; padding:0 1rem 3rem; }
.card { background:var(--karta); border:1px solid var(--linia); border-radius:10px; padding:1.1rem 1.2rem; margin-bottom:1rem; }
.card h2 { margin:.1rem 0 .8rem; font-size:1.1rem; }
.narrow { max-width:460px; margin-left:auto; margin-right:auto; }
label { display:block; margin:.7rem 0 .25rem; font-weight:600; font-size:.92rem; }
label.check { font-weight:400; display:flex; gap:.5rem; align-items:flex-start; margin:.7rem 0; }
input[type=text], input[type=email], input[type=password], input[type=file], select, textarea { width:100%; padding:.5rem .6rem; border:1px solid var(--linia); border-radius:6px; font:inherit; background:#fff; }
textarea { resize:vertical; }
button { font:inherit; cursor:pointer; border:0; border-radius:6px; padding:.55rem 1.1rem; background:var(--akcent); color:#fff; margin-top:.9rem; }
button:hover { background:var(--akcent2); }
button:disabled { opacity:.55; cursor:default; }
button.link { background:none; color:#fff; text-decoration:underline; padding:0; margin:0; }
button.maly { margin:0; padding:.25rem .6rem; font-size:.85rem; background:#fff; color:var(--blad); border:1px solid var(--blad); }
button.maly:hover { background:#fdecea; }
.tabs { display:flex; gap:.4rem; margin-bottom:.8rem; }
.tab { margin:0; background:#e6ebf0; color:var(--tekst); }
.tab.aktywna { background:var(--akcent); color:#fff; }
.hint { color:var(--szary); font-size:.9rem; }
.msg { margin:.7rem 0 0; padding:.5rem .7rem; border-radius:6px; background:#eef3f8; }
.msg.blad { background:#fdecea; color:var(--blad); }
.msg.ok { background:#e8f5ec; color:var(--ok); }
.rozmowa { display:flex; flex-direction:column; gap:.7rem; margin:.5rem 0 .8rem; }
.bubble { padding:.6rem .8rem; border-radius:10px; max-width:92%; word-wrap:break-word; }
.bubble.pytanie { align-self:flex-end; background:#dbe8f7; }
.bubble.odpowiedz { align-self:flex-start; background:#f1f3f5; border:1px solid var(--linia); }
.bubble.odpowiedz.blad { background:#fdecea; color:var(--blad); }
.tabela-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.92rem; }
th, td { text-align:left; padding:.45rem .5rem; border-bottom:1px solid var(--linia); vertical-align:top; }
th { color:var(--szary); font-weight:600; }
.badge { display:inline-block; padding:.05rem .5rem; border-radius:99px; font-size:.82rem; border:1px solid currentColor; }
.badge.przetwarzanie { color:var(--warn); } .badge.gotowy { color:var(--ok); } .badge.blad { color:var(--blad); } .badge.przerwane { color:var(--muted, #6b7280); }
.krok { display:block; margin-top:.25rem; } .krok-opis { display:block; color:var(--muted, #6b7280); font-size:.82rem; }
details.kroki-pomoc { margin-top:.75rem; } details.kroki-pomoc dt { font-weight:600; margin-top:.5rem; } details.kroki-pomoc dd { margin:0 0 0 1rem; color:var(--muted, #6b7280); }
progress { width:100%; margin-top:.8rem; }
@media (max-width:560px) { .top { flex-direction:column; align-items:flex-start; } }

.znaczek { display:inline-block; padding:.05rem .6rem; border-radius:99px; background:rgba(255,255,255,.18); font-size:.82rem; }
.dostep { border-left:4px solid var(--akcent); }
.dostep.brak { border-left-color:var(--blad); }
.dostep.ok { border-left-color:var(--ok); }
.dostep p { margin:.2rem 0 .5rem; }
.przycisk-link { display:inline-block; padding:.5rem 1.1rem; border-radius:6px; background:var(--akcent); color:#fff; text-decoration:none; }
.przycisk-link:hover { background:var(--akcent2); }
.budzet { margin-top:.6rem; }
.budzet-pasek { height:.5rem; border-radius:99px; background:rgba(127,127,127,.25); overflow:hidden; }
.budzet-pasek-wew { height:100%; background:var(--ok, #16a34a); transition:width .3s; }
.budzet.ostrzezenie .budzet-pasek-wew { background:var(--warn, #d97706); }
.budzet.wyczerpany .budzet-pasek-wew { background:var(--blad, #dc2626); }
.budzet p { margin:.35rem 0 0; font-size:.85rem; color:var(--muted, #6b7280); }
.budzet.wyczerpany p { color:var(--blad, #dc2626); }
.drugorzedny { background:transparent; border:1px solid currentColor; color:inherit; padding:.5rem 1rem; border-radius:6px; cursor:pointer; font:inherit; }
.drugorzedny:disabled { opacity:.5; cursor:not-allowed; }
.sprawdz-wynik { margin-top:.75rem; }
.sprawdz-wynik pre {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12pt;
  line-height: 1.4;
  white-space: pre-wrap;
  word-wrap: break-word;
  max-width: 21cm;         /* szerokość strony A4 */
  max-height: 29.7cm;      /* wysokość strony A4: dłuższy wynik i tak przewija się wewnątrz */
  overflow-y: auto;
  padding: 1.5cm 2cm;      /* typowe marginesy A4 */
  border: 1px solid rgba(127,127,127,.35);
  border-radius: 6px;
  background: rgba(127,127,127,.06);
  margin: 0;
}
.przyciski-rzad { display:flex; gap:.5rem; flex-wrap:wrap; }
