/* Centrala */
:root { --tlo:#0f1115; --tlo2:#161920; --karta:#1b1f27; --linia:#2a2f3a; --tekst:#f3f1ec; --tekst2:#a9adb8; --akcent:#6c8cff; --akcent-t:#0b0d14; --mgla:rgba(108,140,255,.14); --ok:#5ec98b; --zle:#ff6b6b; --bok:232px; }
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--tlo); color:var(--tekst); font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; -webkit-font-smoothing:antialiased; padding-left:var(--bok); }
body.bez-menu { padding-left:0; }
a { color:inherit; }
h1 { font-size:30px; letter-spacing:-.02em; margin:0 0 18px; line-height:1.15; }
h1 small { font-size:15px; font-weight:500; color:var(--tekst2); letter-spacing:0; margin-left:8px; }
h2 { font-size:18px; margin:28px 0 12px; }
main { width:min(1180px,100% - 40px); margin:28px auto 90px; }
code { font-family:ui-monospace,Menlo,monospace; font-size:13.5px; background:var(--tlo); border:1px solid var(--linia); border-radius:6px; padding:2px 6px; overflow-wrap:anywhere; }
.bok { position:fixed; inset:0 auto 0 0; width:var(--bok); background:var(--tlo2); border-right:1px solid var(--linia); display:flex; flex-direction:column; padding:18px 12px calc(14px + env(safe-area-inset-bottom)); z-index:10; }
.logo { display:flex; align-items:center; gap:10px; font-weight:800; font-size:19px; letter-spacing:-.02em; text-decoration:none; padding:4px 10px 18px; }
.bok nav { display:grid; gap:2px; }
.bok a, .bok .dzwonek { display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:10px; text-decoration:none; color:var(--tekst2); font-weight:600; font-size:15px; }
.bok nav a svg, .bok .dzwonek svg { width:20px; height:20px; flex:none; }
.bok a.akt, .bok a:hover { background:var(--karta); color:var(--tekst); }
.bok a.akt svg { color:var(--akcent); }
.bok i { font-style:normal; margin-left:auto; background:var(--akcent); color:var(--akcent-t); border-radius:999px; padding:0 8px; font-size:12.5px; font-weight:700; }
.bok-dol { margin-top:auto; display:grid; gap:8px; }
.bok-dol form { display:flex; justify-content:space-between; gap:8px; align-items:center; font-size:13px; color:var(--tekst2); padding:0 10px; }
.bok-dol .kto { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.link { background:none; border:0; color:var(--tekst2); font:inherit; cursor:pointer; text-decoration:underline; padding:0; }
.przycisk { display:inline-flex; align-items:center; justify-content:center; background:var(--akcent); color:var(--akcent-t); font:inherit; font-weight:700; border:0; border-radius:11px; padding:10px 17px; cursor:pointer; text-decoration:none; white-space:nowrap; }
.przycisk:hover { filter:brightness(1.08); }
.przycisk.cichy { background:transparent; color:var(--tekst); box-shadow:inset 0 0 0 1.5px var(--linia); }
.przycisk:disabled { opacity:.5; cursor:default; }
.naglowek { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.naglowek h1 { margin:0; }
.kafle { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-bottom:8px; }
.kafel { background:var(--karta); border:1px solid var(--linia); border-left:4px solid var(--k,var(--akcent)); border-radius:14px; padding:16px 18px; text-decoration:none; display:grid; gap:0; }
.kafel span { font-size:13.5px; font-weight:700; color:var(--tekst2); letter-spacing:.03em; text-transform:uppercase; }
.kafel strong { font-size:36px; letter-spacing:-.03em; line-height:1.15; }
.kafel em { font-style:normal; color:var(--tekst2); font-size:13.5px; }
.dwie { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.zrodlo { display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; border-radius:6px; padding:1px 7px; color:var(--k); border:1px solid var(--k); white-space:nowrap; }
.os { list-style:none; margin:0; padding:0; }
.os .dzien { font-size:12.5px; font-weight:700; color:var(--tekst2); text-transform:uppercase; letter-spacing:.06em; padding:14px 0 6px; }
.os .dzien:first-child { padding-top:0; }
.os .zd > a, .os .zd > div { display:grid; grid-template-columns:44px auto 1fr; gap:4px 10px; align-items:baseline; padding:10px 12px; border:1px solid var(--linia); border-radius:11px; background:var(--karta); text-decoration:none; margin-bottom:6px; }
.os .zd > a:hover { border-color:var(--tekst2); }
.os .godz { color:var(--tekst2); font-size:13px; font-variant-numeric:tabular-nums; }
.os .zrodlo { justify-self:start; }
.os strong { font-size:15.5px; }
.os .kto, .os .szczegol { grid-column:3; color:var(--tekst2); font-size:14px; overflow-wrap:anywhere; }
.os .kto { color:var(--tekst); }
.lista { display:grid; border:1px solid var(--linia); border-radius:14px; overflow:hidden; }
.wiersz { display:grid; grid-template-columns:minmax(120px,auto) minmax(140px,1fr) 2fr auto; gap:12px; align-items:center; padding:12px 16px; text-decoration:none; border-top:1px solid var(--linia); background:var(--karta); }
.wiersz:first-child { border-top:0; }
a.wiersz:hover { background:var(--tlo2); }
.wiersz.nowe strong::before { content:""; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--akcent); margin-right:8px; }
.wiersz > * { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.szary { color:var(--tekst2); font-size:14px; }
.prawo { text-align:right; justify-self:end; }
.zakladki { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 16px; }
.zakladki a { text-decoration:none; font-size:14px; font-weight:600; border:1px solid var(--linia); border-radius:999px; padding:6px 13px; color:var(--tekst2); }
.zakladki a.akt { background:var(--tekst); color:var(--tlo); border-color:var(--tekst); }
input, textarea, select { font:inherit; color:var(--tekst); background:var(--tlo); border:1.5px solid var(--linia); border-radius:10px; padding:10px 13px; width:100%; }
input[type=checkbox], input[type=color] { width:auto; padding:0; }
input[type=color] { height:42px; width:70px; }
input:focus, textarea:focus, select:focus { outline:0; border-color:var(--akcent); box-shadow:0 0 0 4px var(--mgla); }
label { display:grid; gap:6px; font-size:14px; font-weight:600; }
label small { font-weight:400; color:var(--tekst2); }
.pole-wyb { display:flex; align-items:center; gap:8px; font-weight:400; }
.formularz { display:grid; gap:14px; max-width:720px; }
.dwa { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.szybkie { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.szybkie input[name=tytul], .szybkie input[name=scal_z] { flex:1; min-width:200px; }
.szybkie input[type=date], .szybkie select { width:auto; }
.szukaj { margin-bottom:16px; }
.karta { background:var(--karta); border:1px solid var(--linia); border-radius:14px; padding:20px; }
.karta.wazne { border-color:var(--akcent); background:var(--mgla); margin-bottom:20px; }
.klucz { display:block; padding:10px; font-size:14px; user-select:all; }
.kontakty { list-style:none; padding:0; margin:0 0 16px; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:17px; font-weight:600; }
.kontakty a { text-decoration-color:var(--akcent); text-underline-offset:3px; }
.zadania { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.zadania li { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; padding:10px 12px; border:1px solid var(--linia); border-radius:11px; background:var(--karta); }
.zadania li p { margin:2px 0; color:var(--tekst2); font-size:14.5px; }
.zadania li span { color:var(--tekst2); font-size:13.5px; }
.zadania li.po-terminie { border-color:var(--zle); }
.zadania li.po-terminie span { color:var(--zle); }
.zadania li.zrobione strong { text-decoration:line-through; color:var(--tekst2); }
.ptaszek { width:24px; height:24px; border-radius:7px; border:2px solid var(--tekst2); background:transparent; cursor:pointer; margin-top:1px; padding:0; }
.ptaszek:hover { border-color:var(--akcent); }
.zrobione .ptaszek { background:var(--ok); border-color:var(--ok); }
.rozmowa { display:grid; gap:8px; }
.rozmowa form { display:grid; gap:8px; justify-items:start; }
.glos { border:1px solid var(--linia); border-radius:11px; padding:10px 12px; background:var(--karta); }
.glos span { color:var(--tekst2); font-size:13px; }
.glos p { margin:3px 0 0; overflow-wrap:anywhere; }
.meta { color:var(--tekst2); margin:-8px 0 18px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.okruchy, .drobne, .pusto { color:var(--tekst2); font-size:13.5px; }
.okruchy { margin:0 0 10px; }
details { margin:14px 0; }
details summary { cursor:pointer; font-weight:600; color:var(--tekst2); margin-bottom:12px; }
fieldset { border:1px solid var(--linia); border-radius:12px; padding:14px; display:grid; gap:8px; margin:0; }
legend { font-size:14px; font-weight:600; padding:0 6px; }
.komunikat { background:rgba(94,201,139,.12); border:1px solid var(--ok); color:var(--ok); border-radius:10px; padding:9px 14px; font-size:14.5px; }
.blad { background:rgba(255,107,107,.1); border:1px solid var(--zle); color:var(--zle); border-radius:10px; padding:9px 14px; font-size:14.5px; }
.logowanie { max-width:400px; margin:12vh auto 0; background:var(--karta); border:1px solid var(--linia); border-radius:18px; padding:30px; text-align:center; }
.logowanie form { display:grid; gap:14px; text-align:left; }
.logowanie input[name=kod] { font-size:26px; letter-spacing:.3em; text-align:center; font-variant-numeric:tabular-nums; }
.wiadomosc { border:1px solid var(--linia); border-radius:12px; background:var(--karta); padding:14px 16px; margin-bottom:10px; }
.wiadomosc.wychodzaca { border-color:var(--akcent); background:var(--mgla); }
.wiadomosc header { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; color:var(--tekst2); font-size:13.5px; margin-bottom:8px; }
.wiadomosc header strong { color:var(--tekst); font-size:15px; }
.wiadomosc .tresc { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; }
.kal { display:grid; gap:6px; }
.kal .dzien-kal { font-size:12.5px; font-weight:700; color:var(--tekst2); text-transform:uppercase; letter-spacing:.06em; padding:12px 0 2px; }
.kal .wyd { display:grid; grid-template-columns:104px 1fr; gap:10px; padding:10px 12px; border:1px solid var(--linia); border-left:4px solid var(--k,var(--akcent)); border-radius:11px; background:var(--karta); text-decoration:none; }
.kal .wyd span { color:var(--tekst2); font-size:14px; }
.slupki { display:flex; align-items:flex-end; gap:6px; height:150px; padding:8px 0 0; }
.slupki div { flex:1; display:grid; align-content:end; justify-items:center; gap:4px; height:100%; }
.slupki b { display:block; width:100%; background:var(--k,var(--akcent)); border-radius:5px 5px 0 0; min-height:2px; }
.slupki span { font-size:11.5px; color:var(--tekst2); }
.slupki em { font-style:normal; font-size:12px; }
@media (max-width:860px) {
  body { padding-left:0; padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  .bok { inset:auto 0 0 0; width:auto; flex-direction:row; padding:6px 6px calc(6px + env(safe-area-inset-bottom)); border-right:0; border-top:1px solid var(--linia); overflow-x:auto; }
  .logo, .bok-dol form { display:none; }
  .bok nav { display:flex; gap:2px; }
  .bok-dol { margin:0; }
  .bok a, .bok .dzwonek { flex-direction:column; gap:2px; font-size:10.5px; padding:6px 10px; min-width:62px; position:relative; }
  .bok i { position:absolute; top:2px; right:8px; font-size:10.5px; padding:0 5px; }
  main { margin-top:calc(18px + env(safe-area-inset-top)); width:calc(100% - 28px); }
  .dwie, .dwa { grid-template-columns:1fr; }
  .wiersz { grid-template-columns:1fr auto; gap:2px 10px; }
  .wiersz > :nth-child(3) { grid-column:1 / -1; }
  .wiersz > * { white-space:normal; }
  h1 { font-size:26px; }
}

/* Usługi stałe i faktury */
.czerwony { color:var(--zle); }
h2.miesiac { text-transform:capitalize; border-top:1px solid var(--linia); padding-top:20px; margin-top:26px; font-size:20px; }
h2.miesiac small { font-size:14px; font-weight:500; color:var(--tekst2); margin-left:8px; }
.uslugi { display:grid; gap:8px; }
.usluga { display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--linia); border-radius:13px; background:var(--karta); }
.usluga.zalegla { border-color:var(--zle); }
.usluga.zrobiona { opacity:.55; }
.usluga .dzien { display:grid; justify-items:center; background:var(--tlo); border-radius:10px; padding:8px 4px; }
.usluga .dzien strong { font-size:24px; line-height:1; letter-spacing:-.02em; }
.usluga .dzien span { font-size:12px; color:var(--tekst2); text-transform:uppercase; letter-spacing:.04em; }
.usluga .opis p { margin:2px 0; color:var(--tekst2); font-size:14.5px; }
.usluga .opis details { margin:6px 0 0; font-size:14px; }
.usluga .opis details summary { margin:0; font-size:13px; }
.usluga .kwota { display:grid; gap:6px; justify-items:end; text-align:right; }
.usluga .kwota strong { font-size:18px; white-space:nowrap; }
.usluga .kwota a.link { font-size:12.5px; }
.zrodlo.sposob-faktura { --k:#6c8cff; } .zrodlo.sposob-przypomnienie { --k:#e0b341; } .zrodlo.sposob-gotowka { --k:#5ec98b; }
.wiersz-rozw { margin:0; border-top:1px solid var(--linia); background:var(--karta); }
.wiersz-rozw:first-child { border-top:0; }
.wiersz-rozw summary { margin:0; color:var(--tekst); font-weight:400; border-top:0; cursor:pointer; list-style:none; }
.wiersz-rozw summary::-webkit-details-marker { display:none; }
.szybkie.w-srodku { padding:0 16px 14px; margin:0; align-items:center; }
.szybkie.w-srodku input:not([type=checkbox]) { flex:1; min-width:160px; }
@media (max-width:860px) { .usluga { grid-template-columns:54px 1fr; } .usluga .kwota { grid-column:1 / -1; grid-auto-flow:column; justify-content:space-between; align-items:center; justify-items:start; } }
