/* Centrala: wygląd w stylu paneli Apple i RevenueCat. Jasny motyw domyślnie, ciemny według ustawień systemu. */
:root {
  color-scheme: light dark;
  --tlo:#f5f5f7; --tlo2:#ebebef; --karta:#ffffff; --karta2:#f7f7f9; --linia:#e5e5ea; --linia2:#d1d1d6;
  --tekst:#1d1d1f; --tekst2:#6e6e73; --tekst3:#8e8e93;
  --akcent:#007aff; --akcent-t:#ffffff; --mgla:rgba(0,122,255,.10);
  --ok:#28a745; --zle:#ff3b30; --ostrz:#ff9500;
  --cien:0 1px 2px rgba(0,0,0,.05), 0 6px 20px rgba(0,0,0,.04);
  --bok:250px; --r:16px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --tlo:#000000; --tlo2:#121214; --karta:#1c1c1e; --karta2:#242427; --linia:#2c2c2e; --linia2:#3a3a3c;
    --tekst:#f5f5f7; --tekst2:#a1a1a6; --tekst3:#7c7c80;
    --akcent:#0a84ff; --akcent-t:#ffffff; --mgla:rgba(10,132,255,.18);
    --ok:#30d158; --zle:#ff453a; --ostrz:#ff9f0a;
    --cien:0 0 0 1px rgba(255,255,255,.03);
  }
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--tlo); color:var(--tekst); font:15px/1.5 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Arial,sans-serif; -webkit-font-smoothing:antialiased; padding-left:var(--bok); font-variant-numeric:tabular-nums; }
body.bez-menu { padding-left:0; }
a { color:inherit; }
main p a:not([class]), main dd a:not([class]), main .pusto a, main .drobne a, main label a { color:var(--akcent); text-decoration:none; }
main p a:not([class]):hover, main dd a:not([class]):hover { text-decoration:underline; }
h1 { font-size:28px; font-weight:700; letter-spacing:-.025em; 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:17px; font-weight:650; letter-spacing:-.01em; margin:26px 0 12px; }
main { width:min(1240px,100% - 48px); margin:28px auto 90px; }
code { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:13px; background:var(--karta2); border:1px solid var(--linia); border-radius:6px; padding:2px 6px; overflow-wrap:anywhere; }

/* Boczne menu */
.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:16px 12px calc(14px + env(safe-area-inset-bottom)); z-index:10; overflow-y:auto; }
.logo { display:flex; align-items:center; gap:10px; font-weight:700; font-size:17px; letter-spacing:-.02em; text-decoration:none; padding:6px 10px 14px; }
.logo img { border-radius:8px; }
.bok nav { display:grid; gap:1px; }
.bok .grupa { font-size:11.5px; font-weight:600; color:var(--tekst3); letter-spacing:.04em; text-transform:uppercase; padding:14px 10px 5px; }
.bok a, .bok .dzwonek { display:flex; align-items:center; gap:11px; padding:7px 10px; border-radius:9px; text-decoration:none; color:var(--tekst); font-weight:500; font-size:14.5px; }
.bok nav a svg, .bok .dzwonek svg, .bok-dol a svg { width:19px; height:19px; flex:none; color:var(--tekst2); }
.bok a:hover { background:rgba(127,127,135,.12); }
.bok a.akt { background:var(--karta); box-shadow:var(--cien); font-weight:600; }
.bok a.akt svg { color:var(--akcent); }
.bok i { font-style:normal; margin-left:auto; background:var(--akcent); color:#fff; border-radius:999px; padding:0 7px; font-size:12px; font-weight:600; line-height:19px; min-width:19px; text-align:center; }
.bok .dzwonek i { background:var(--zle); }
.bok-dol { margin-top:auto; display:grid; gap:1px; padding-top:12px; }
.bok-dol form { display:flex; justify-content:space-between; gap:8px; align-items:center; font-size:13px; color:var(--tekst2); padding:10px 10px 0; margin-top:6px; border-top:1px solid var(--linia); }
.bok-dol .kto { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:flex; align-items:center; gap:8px; padding:0; font-size:13.5px; font-weight:600; color:var(--tekst); }
.bok-dol .kto::before { content:attr(data-inicjal); display:grid; place-items:center; width:26px; height:26px; flex:none; border-radius:50%; background:var(--akcent); color:#fff; font-size:12.5px; font-weight:700; }
.bok-dol a.kto:hover { background:none; text-decoration:underline; }

/* Elementy wspólne */
.link { background:none; border:0; color:var(--akcent); font:inherit; cursor:pointer; padding:0; }
.link:hover { text-decoration:underline; }
.bok-dol .link { color:var(--tekst2); font-size:13px; }
.przycisk { display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--akcent); color:var(--akcent-t); font:inherit; font-size:14.5px; font-weight:600; border:0; border-radius:10px; padding:8px 15px; cursor:pointer; text-decoration:none; white-space:nowrap; transition:filter .12s; }
.przycisk:hover { filter:brightness(1.07); }
.przycisk.cichy { background:var(--tlo2); color:var(--tekst); box-shadow:none; }
.przycisk.cichy:hover { filter:none; background:var(--linia); }
.przycisk:disabled { opacity:.5; cursor:default; }
.przycisk.maly { padding:5px 10px; font-size:13px; border-radius:8px; }
.naglowek { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.naglowek h1 { margin:0; }
.karta { background:var(--karta); border-radius:var(--r); padding:18px 20px; box-shadow:var(--cien); }
.karta > h2:first-child { margin-top:0; }
.karta.wazne { box-shadow:inset 0 0 0 1.5px var(--akcent); background:var(--mgla); margin-bottom:20px; }
.dwie { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.dwa { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.zrodlo { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; border-radius:6px; padding:1px 7px; color:var(--k); background:color-mix(in srgb, var(--k) 14%, transparent); white-space:nowrap; letter-spacing:.01em; }
.szary { color:var(--tekst2); font-size:14px; }
.prawo { text-align:right; justify-self:end; }
.czerwony { color:var(--zle); }
.zielony { color:var(--ok); }
.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; }
.okruchy a { color:var(--akcent); text-decoration:none; }
.pusto { padding:6px 0; }

/* Kafelki z liczbami (jak w RevenueCat) */
.kpi { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 22px; }
.kpi a { position:relative; display:grid; color:var(--tekst); gap:2px; align-content:start; background:var(--karta); border-radius:var(--r); padding:15px 16px 14px; text-decoration:none; box-shadow:var(--cien); min-height:112px; transition:transform .12s, box-shadow .12s; overflow:hidden; }
.kpi a:hover { transform:translateY(-1px); }
.kpi .etykieta { font-size:13px; font-weight:600; color:var(--tekst2); display:flex; align-items:center; gap:6px; }
.kpi .etykieta svg { width:16px; height:16px; color:var(--tekst3); }
.kpi .wartosc { font-size:clamp(22px,2.1vw,30px); font-weight:700; letter-spacing:-.03em; line-height:1.15; margin-top:4px; white-space:nowrap; }
.kpi .wartosc small { font-size:15px; font-weight:600; color:var(--tekst2); letter-spacing:0; margin-left:3px; }
.kpi .pod { font-size:12.5px; color:var(--tekst2); }
.kpi .pod.zle { color:var(--zle); font-weight:600; }
.kpi .pod.ok { color:var(--ok); }
.kpi .iskra { position:absolute; right:12px; bottom:12px; width:86px; height:30px; color:var(--k,var(--akcent)); opacity:.9; }
.kpi a.alarm { box-shadow:inset 0 0 0 1.5px var(--zle), var(--cien); }
.marki { display:flex; gap:8px 16px; flex-wrap:wrap; margin:-10px 0 22px; font-size:13px; color:var(--tekst2); }
.marki a { text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.marki a::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--k); }
.marki b { color:var(--tekst); font-weight:600; }

/* Pulpit „Dziś” */
.pulpit-g { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.pulpit-g h1 { margin:0; }
.pulpit-g .data { color:var(--tekst2); font-size:15px; margin:2px 0 0; }
.pulpit-g .akcje { display:flex; gap:8px; }
.pulpit { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:16px; align-items:start; }
.pulpit .kol { display:grid; gap:16px; align-content:start; }
.pulpit .zadania li p { display:none; }
.pulpit .szybkie input[name=tytul] { min-width:160px; }
.skrot a, .marki a { color:var(--tekst); }
.karta-g { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:0 0 12px; }
.karta-g h2 { margin:0; font-size:16px; }
.karta-g a { font-size:13.5px; color:var(--akcent); text-decoration:none; white-space:nowrap; }
.karta-g a:hover { text-decoration:underline; }
.skrot { list-style:none; margin:0; padding:0; }
.skrot li { border-top:1px solid var(--linia); }
.skrot li:first-child { border-top:0; }
.skrot a, .skrot div.poz { display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:9px 2px; text-decoration:none; }
.skrot strong { font-size:14.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.skrot .p { grid-column:1; font-size:13px; color:var(--tekst2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.skrot .k { grid-row:1 / span 2; grid-column:2; align-self:center; text-align:right; font-size:13px; color:var(--tekst2); white-space:nowrap; }
.skrot .k b { display:block; color:var(--tekst); font-size:14.5px; }
.skrot .nowa strong::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--akcent); margin:0 7px 2px 0; }

/* Listy i wiersze */
.lista { display:grid; background:var(--karta); border-radius:14px; overflow:hidden; box-shadow:var(--cien); }
.wiersz { display:grid; grid-template-columns:minmax(120px,auto) minmax(140px,1fr) 2fr auto; gap:12px; align-items:center; padding:11px 16px; text-decoration:none; border-top:1px solid var(--linia); background:var(--karta); }
.wiersz:first-child { border-top:0; }
a.wiersz:hover { background:var(--karta2); }
.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; }
.wiersz.w-koszu > * { white-space:normal; }
.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; }
.wiersz-rozw .rozwin { display:inline-block; margin-left:6px; transition:transform .15s; }
.wiersz-rozw[open] .rozwin { transform:rotate(180deg); }

/* Zakładki jako przełącznik segmentowy */
.zakladki { display:inline-flex; gap:2px; flex-wrap:wrap; margin:0 0 16px; padding:3px; background:var(--tlo2); border-radius:10px; }
.zakladki a { text-decoration:none; font-size:13.5px; font-weight:500; border-radius:8px; padding:5px 12px; color:var(--tekst); }
.zakladki a:hover { background:rgba(127,127,135,.12); }
.zakladki a.akt { background:var(--karta); box-shadow:0 1px 3px rgba(0,0,0,.12); font-weight:600; }

/* Formularze */
input, textarea, select { font:inherit; font-size:15px; color:var(--tekst); background:var(--karta); border:1px solid var(--linia2); border-radius:10px; padding:9px 12px; width:100%; }
input[type=checkbox], input[type=color] { width:auto; padding:0; accent-color:var(--akcent); }
input[type=color] { height:40px; 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:13.5px; font-weight:600; color:var(--tekst2); }
label small { font-weight:400; color:var(--tekst3); }
.pole-wyb { display:flex; align-items:center; gap:8px; font-weight:400; color:var(--tekst); }
.formularz { display:grid; gap:14px; max-width:720px; }
.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 input[type=time], .szybkie select { width:auto; }
.szybkie.w-srodku { padding:0 16px 14px; margin:0; align-items:center; }
.szybkie.w-srodku input:not([type=checkbox]) { flex:1; min-width:160px; }
.szukaj { margin-bottom:16px; }
details { margin:14px 0; }
details summary { cursor:pointer; font-weight:600; color:var(--akcent); margin-bottom:12px; font-size:14px; }
fieldset { border:1px solid var(--linia); border-radius:12px; padding:14px; display:grid; gap:8px; margin:0; }
legend { font-size:13.5px; font-weight:600; padding:0 6px; }
.klucz { display:block; padding:10px; font-size:13.5px; user-select:all; }

/* Przełącznik jak w Ustawieniach iPhone'a */
.przel { position:relative; display:inline-block; width:51px; height:31px; flex:none; }
.przel input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1; }
.przel span { position:absolute; inset:0; border-radius:999px; background:var(--linia2); transition:background .2s; }
.przel span::after { content:""; position:absolute; top:2px; left:2px; width:27px; height:27px; border-radius:50%; background:#fff; box-shadow:0 2px 4px rgba(0,0,0,.2), 0 0 1px rgba(0,0,0,.25); transition:transform .2s; }
.przel input:checked + span { background:#34c759; }
.przel input:checked + span::after { transform:translateX(20px); }
.przel input:focus-visible + span { box-shadow:0 0 0 4px var(--mgla); }

/* Komunikaty */
.komunikat { background:color-mix(in srgb, var(--ok) 12%, var(--karta)); color:var(--tekst); border-radius:12px; padding:10px 14px; font-size:14.5px; margin:0 0 16px; box-shadow:inset 3px 0 0 var(--ok); }
.komunikat.ostrz { background:var(--mgla); box-shadow:inset 3px 0 0 var(--akcent); }
.komunikat.z-cofnij { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.komunikat.z-cofnij a { color:var(--akcent); }
.komunikat.z-cofnij .link { font-weight:600; }
.blad { background:color-mix(in srgb, var(--zle) 10%, var(--karta)); color:var(--zle); border-radius:12px; padding:10px 14px; font-size:14.5px; box-shadow:inset 3px 0 0 var(--zle); }
.podpowiedz { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px; box-shadow:inset 0 0 0 1.5px var(--akcent), var(--cien); }

/* Oś czasu */
.os { list-style:none; margin:0; padding:0; }
.os .dzien { font-size:12px; font-weight:600; color:var(--tekst3); text-transform:uppercase; letter-spacing:.04em; 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:3px 10px; align-items:baseline; padding:9px 12px; border-radius:12px; background:var(--karta); text-decoration:none; margin-bottom:6px; box-shadow:var(--cien); }
.karta .os .zd > a, .karta .os .zd > div { box-shadow:none; background:var(--karta2); }
.os .zd > a:hover { background:var(--karta2); }
.os .godz { color:var(--tekst2); font-size:13px; }
.os .zrodlo { justify-self:start; }
.os strong { font-size:14.5px; font-weight:600; }
.os .kto, .os .szczegol { grid-column:3; color:var(--tekst2); font-size:13.5px; overflow-wrap:anywhere; }
.os .kto { color:var(--tekst); }

/* Zadania (jak Przypomnienia) */
.zadania { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.zadania li { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:start; padding:10px 4px; border-top:1px solid var(--linia); }
.zadania li:first-child { border-top:0; }
.zadania li p { margin:2px 0; color:var(--tekst2); font-size:14px; }
.zadania li span { color:var(--tekst2); font-size:13px; }
.zadania li > div > span { display:block; margin-top:1px; }
.zadania li strong { font-weight:500; }
.zadania li.po-terminie span { color:var(--zle); }
.zadania li.zrobione strong { text-decoration:line-through; color:var(--tekst2); }
.zadania li.dzien-zad { display:block; border:0; padding:14px 2px 2px; font-size:12px; font-weight:600; color:var(--tekst3); text-transform:uppercase; letter-spacing:.04em; }
.zadania li.usuniete { opacity:.6; }
.zadania li.usuniete strong { text-decoration:line-through; }
main > .zadania, section > .zadania { background:var(--karta); border-radius:14px; padding:2px 14px; box-shadow:var(--cien); }
.karta .zadania { background:none; box-shadow:none; padding:0; }
.ptaszek { width:22px; height:22px; border-radius:50%; border:2px solid var(--linia2); background:transparent; cursor:pointer; margin-top:1px; padding:0; position:relative; }
.ptaszek:hover { border-color:var(--akcent); }
.zrobione .ptaszek { background:var(--akcent); border-color:var(--akcent); }
.zrobione .ptaszek::after { content:""; position:absolute; left:6px; top:2.5px; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.usun-zad button { background:none; border:0; color:var(--tekst3); font-size:20px; line-height:1; cursor:pointer; padding:0 4px; border-radius:6px; }
.usun-zad button:hover { color:var(--zle); background:var(--tlo2); }
h2.maly-h { font-size:13px; color:var(--tekst3); text-transform:uppercase; letter-spacing:.04em; margin-top:18px; }

/* Rozmowa, poczta, kontakty */
.kontakty { list-style:none; padding:0; margin:0 0 16px; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:16px; font-weight:600; }
.kontakty a { color:var(--akcent); text-decoration:none; }
.rozmowa { display:grid; gap:8px; }
.rozmowa form { display:grid; gap:8px; justify-items:start; }
.glos { position:relative; border-radius:12px; padding:10px 12px; background:var(--karta); box-shadow:var(--cien); }
.glos span { color:var(--tekst2); font-size:12.5px; }
.glos p { margin:3px 0 0; overflow-wrap:anywhere; }
.usun-glos { position:absolute; top:8px; right:10px; }
.usun-glos .link { font-size:12.5px; color:var(--tekst3); }
.wiadomosc { border-radius:14px; background:var(--karta); padding:14px 16px; margin-bottom:10px; box-shadow:var(--cien); }
.wiadomosc.wychodzaca { background:var(--mgla); }
.wiadomosc header { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; color:var(--tekst2); font-size:13px; margin-bottom:8px; }
.wiadomosc header strong { color:var(--tekst); font-size:15px; }
.wiadomosc .tresc { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; }

/* Kalendarz: nawigacja, legenda, tydzień, miesiąc, rozpiska */
.nag-akcje { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.nag-akcje .zakladki { margin:0; }
.kal-nav { display:flex; align-items:center; gap:14px; margin:0 0 16px; flex-wrap:wrap; }
.kal-nav h2 { margin:0; font-size:21px; letter-spacing:-.02em; }
.strzalki { display:flex; gap:6px; }
.strzalki .przycisk { min-width:34px; }
.przycisk.wyl { opacity:.45; pointer-events:none; }
.legenda { display:flex; gap:6px 16px; flex-wrap:wrap; margin:-8px 0 16px; font-size:13px; color:var(--tekst2); }
.legenda span { display:inline-flex; align-items:center; gap:6px; }
.legenda span::before { content:""; width:9px; height:9px; border-radius:3px; background:var(--k); }
.g-linki { display:flex; gap:14px; }
.k-tydz { margin-bottom:16px; }
.k-tydz .pods { margin:-6px 0 12px; font-size:13.5px; color:var(--tekst2); }
.tydz { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.tydz-d { display:flex; flex-direction:column; gap:6px; min-width:0; min-height:132px; padding:8px 6px; border-radius:12px; background:var(--karta2); }
.tydz-d.weekend { background:color-mix(in srgb, var(--karta2) 55%, var(--tlo2)); }
main > .tydz .tydz-d { background:var(--karta); box-shadow:var(--cien); min-height:300px; }
main > .tydz .tydz-d.weekend { background:color-mix(in srgb, var(--karta) 70%, var(--tlo2)); }
.tydz-g { display:flex; align-items:center; gap:6px; padding:0 3px 2px; }
.tydz-g span { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--tekst3); }
.tydz-g b { margin-left:auto; font-size:17px; font-weight:650; letter-spacing:-.02em; min-width:28px; height:28px; display:grid; place-items:center; border-radius:999px; }
.tydz-d.dzis .tydz-g span { color:var(--akcent); }
.tydz-d.dzis .tydz-g b { background:var(--akcent); color:#fff; }
.tydz-p { display:grid; gap:4px; align-content:start; }
.kp { display:block; min-width:0; text-decoration:none; color:var(--tekst); font-size:12.5px; line-height:1.3; padding:5px 7px; border-radius:7px; border-left:3px solid var(--k); background:color-mix(in srgb, var(--k) 12%, var(--karta)); }
.kp b { display:block; font-size:11.5px; font-weight:650; color:color-mix(in srgb, var(--k) 65%, var(--tekst)); }
.kp span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.kp.caly { background:color-mix(in srgb, var(--k) 22%, var(--karta)); font-weight:600; }
.kp.r-zadanie span::before { content:""; display:inline-block; width:7px; height:7px; border:1.5px solid var(--k); border-radius:50%; margin-right:5px; }
a.kp:hover { filter:brightness(.96); }
.tydz .wolne { font-size:12px; color:var(--tekst3); padding:2px 4px; }
.tydz .wiecej { font-size:12px; color:var(--akcent); text-decoration:none; padding:0 4px; }
.mies { background:var(--karta); border-radius:var(--r); box-shadow:var(--cien); overflow:hidden; }
.mies-g, .mies-s { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.mies-g { border-bottom:1px solid var(--linia); }
.mies-g span { font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--tekst3); padding:8px 10px; text-align:right; }
.mies-d { display:flex; flex-direction:column; gap:3px; min-width:0; min-height:108px; padding:6px 6px 8px; border-right:1px solid var(--linia); border-bottom:1px solid var(--linia); text-decoration:none; color:var(--tekst); }
.mies-d:nth-child(7n) { border-right:0; }
.mies-s > :nth-last-child(-n+7) { border-bottom:0; }
.mies-d.weekend { background:color-mix(in srgb, var(--tlo) 40%, var(--karta)); }
.mies-d.inny { color:var(--tekst3); }
.mies-d.inny .mp { opacity:.5; }
.mies-d > b { align-self:flex-end; min-width:26px; height:26px; display:grid; place-items:center; border-radius:999px; font-size:13.5px; font-weight:600; }
.mies-d.minal > b { color:var(--tekst3); }
.mies-d.dzis > b { background:var(--akcent); color:#fff; }
a.mies-d:hover { background:var(--karta2); }
.mp { font-size:11.5px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:2px 5px; border-radius:5px; border-left:2.5px solid var(--k); background:color-mix(in srgb, var(--k) 13%, transparent); }
.mp.caly { background:color-mix(in srgb, var(--k) 24%, transparent); font-weight:600; }
.mp.wiecej { border:0; background:none; color:var(--tekst2); padding-left:3px; }
.kropki { display:none; }
h2.rozpiska { margin-top:28px; }
.agenda { display:grid; gap:16px; }
.agenda h3 { font-size:12.5px; font-weight:600; color:var(--tekst3); text-transform:uppercase; letter-spacing:.05em; margin:0 0 7px 2px; }
.agenda h3 span { text-transform:none; letter-spacing:0; font-weight:500; margin-left:3px; }
.agenda .dzis h3 { color:var(--akcent); }
.ag { display:grid; grid-template-columns:100px minmax(0,1fr) auto; gap:12px; align-items:start; margin-bottom:6px; padding:10px 14px; border-radius:12px; border-left:4px solid var(--k); background:var(--karta); box-shadow:var(--cien); text-decoration:none; color:var(--tekst); }
a.ag:hover { background:var(--karta2); }
.ag .g { font-size:13.5px; color:var(--tekst2); padding-top:1px; }
.ag strong { display:block; font-size:15px; font-weight:600; }
.ag .p { font-size:13px; color:var(--tekst2); overflow-wrap:anywhere; }
.ag .kw { font-size:14.5px; white-space:nowrap; }
.zrodla-kal { margin-top:22px; }

/* Powiadomienia: lista i ustawienia jak w iPhonie */
.powiad h3, .ust h3 { font-size:12.5px; font-weight:600; color:var(--tekst3); text-transform:uppercase; letter-spacing:.05em; margin:20px 0 7px 14px; }
.powiad h3:first-child, .ust h3:first-of-type { margin-top:2px; }
.pw { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; padding:11px 16px 11px 32px; border-top:1px solid var(--linia); text-decoration:none; color:var(--tekst); background:var(--karta); }
.pw:first-child { border-top:0; }
a.pw:hover { background:var(--karta2); }
.pw::before { content:""; position:absolute; left:14px; top:18px; width:8px; height:8px; border-radius:50%; background:var(--k); opacity:.3; }
.pw.nowe::before { opacity:1; }
.pw strong { display:block; font-weight:500; }
.pw.nowe strong { font-weight:650; }
.pw .p { display:block; font-size:13.5px; color:var(--tekst2); overflow-wrap:anywhere; }
.pw .g { font-size:12.5px; color:var(--tekst3); padding-top:2px; }
.powiad-uklad { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:20px; align-items:start; }
.powiad-uklad > div { display:grid; gap:16px; align-content:start; }
.ust-lista { background:var(--karta); border-radius:14px; box-shadow:var(--cien); overflow:hidden; }
.ust-w { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px 12px; align-items:center; padding:11px 14px; border-top:1px solid var(--linia); }
.ust-w:first-child { border-top:0; }
.ust-o strong { display:block; font-size:15px; font-weight:500; }
.ust-o span { display:block; font-size:12.5px; color:var(--tekst2); margin-top:1px; }
.ust-d { display:flex; align-items:center; gap:6px; color:var(--tekst3); }
.ust-d select { width:auto; padding:5px 10px; font-size:14px; border-radius:8px; }
.ust-zapis { display:flex; align-items:center; gap:12px; margin-top:16px; min-height:24px; }
.urzadzenia .przyciski { display:flex; gap:8px; flex-wrap:wrap; }

/* Liczby: wykresy słupkowe */
.wykresy { display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:16px; }
.wykres .seria { margin-top:6px; }
.wykres .seria + .seria { margin-top:18px; padding-top:14px; border-top:1px solid var(--linia); }
.slupki { display:flex; align-items:flex-end; gap:5px; height:140px; 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%; max-width:30px; background:var(--k,var(--akcent)); border-radius:5px 5px 2px 2px; min-height:3px; opacity:.9; }
.slupki div:hover b { opacity:1; }
.slupki span { font-size:11px; color:var(--tekst3); }
.slupki em { font-style:normal; font-size:11.5px; color:var(--tekst2); }

/* Usługi stałe i faktury */
h2.miesiac { text-transform:capitalize; border-top:1px solid var(--linia); padding-top:20px; margin-top:26px; font-size:19px; }
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-radius:14px; background:var(--karta); box-shadow:var(--cien); }
.usluga.zalegla { box-shadow:inset 0 0 0 1.5px var(--zle), var(--cien); }
.usluga.zrobiona { opacity:.55; }
.usluga .dzien { display:grid; justify-items:center; background:var(--tlo2); border-radius:10px; padding:8px 4px; }
.usluga .dzien strong { font-size:22px; line-height:1; letter-spacing:-.02em; }
.usluga .dzien span { font-size:11.5px; color:var(--tekst2); text-transform:uppercase; letter-spacing:.04em; }
.usluga .opis p { margin:2px 0; color:var(--tekst2); font-size:14px; }
.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:17px; white-space:nowrap; }
.usluga .kwota a.link { font-size:12.5px; }
.zrodlo.sposob-faktura { --k:#007aff; } .zrodlo.sposob-przypomnienie { --k:#ff9500; } .zrodlo.sposob-gotowka { --k:#28a745; }
.faktura-szczegoly { padding:4px 16px 8px; }
.faktura-szczegoly dl { display:grid; grid-template-columns:110px 1fr; gap:6px 14px; margin:0 0 10px; font-size:14px; }
.faktura-szczegoly dt { color:var(--tekst2); }
.faktura-szczegoly dd { margin:0; }

/* Kosz, cofanie, konto */
.usun-sekcja { display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; margin-top:28px; padding-top:14px; border-top:1px solid var(--linia); }
.link.grozny { color:var(--zle); }
.akcje-kosz { display:flex; gap:12px; align-items:center; justify-content:flex-end; }
.klucze { margin:12px 0; box-shadow:none; border:1px solid var(--linia); }

/* Logowanie */
.logowanie { max-width:390px; margin:12vh auto 0; background:var(--karta); border-radius:22px; padding:30px; text-align:center; box-shadow:var(--cien); }
.logowanie img { border-radius:14px; }
.logowanie h1 { margin:10px 0 18px; }
.logowanie form { display:grid; gap:14px; text-align:left; }
.logowanie input[name=kod] { font-size:26px; letter-spacing:.3em; text-align:center; }
.klucz-logowanie { display:grid; gap:10px; margin-bottom:6px; }
.klucz-logowanie .przycisk { width:100%; padding:11px 15px; }
.klucz-logowanie .drobne:empty { display:none; }
.lub { display:flex; align-items:center; gap:10px; color:var(--tekst3); font-size:12.5px; margin:4px 0 2px; }
.lub::before, .lub::after { content:""; flex:1; height:1px; background:var(--linia); }
.lub[hidden] { display:none; }

/* Telefon */
@media (max-width:1100px) {
  .pulpit { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
}
@media (max-width:860px) {
  body { padding-left:0; padding-bottom:calc(66px + env(safe-area-inset-bottom)); }
  .bok { inset:auto 0 0 0; width:auto; flex-direction:row; padding:5px 6px calc(5px + env(safe-area-inset-bottom)); border-right:0; border-top:1px solid var(--linia); overflow-x:auto; overflow-y:hidden; scrollbar-width:none; background:color-mix(in srgb, var(--tlo2) 82%, transparent); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); }
  .bok::-webkit-scrollbar { display:none; }
  .bok .logo, .bok-dol form, .bok .grupa { display:none; }
  .bok nav { display:flex; gap:0; }
  .bok-dol { margin:0; display:flex; padding:0; }
  .bok a, .bok .dzwonek { flex-direction:column; gap:2px; font-size:10.5px; font-weight:500; padding:5px 8px; min-width:62px; white-space:nowrap; position:relative; color:var(--tekst2); }
  .bok a.akt { background:none; box-shadow:none; color:var(--akcent); }
  .bok a:hover { background:none; }
  .bok nav a svg, .bok .dzwonek svg, .bok-dol a svg { width:22px; height:22px; }
  .bok i { position:absolute; top:1px; right:8px; font-size:10.5px; padding:0 5px; line-height:16px; min-width:16px; }
  main { margin-top:calc(16px + env(safe-area-inset-top)); width:calc(100% - 28px); }
  .dwie, .dwa, .pulpit { grid-template-columns:1fr; }
  .pulpit .kol { display:contents; }
  .pulpit .k-zad { order:1; } .pulpit .k-pien { order:2; } .pulpit .k-poczta { order:3; } .pulpit .k-os { order:4; }
  .kpi { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .kpi a { min-height:100px; padding:13px 14px; }
  .kpi .wartosc { font-size:26px; }
  .kpi .iskra { width:64px; height:24px; right:10px; bottom:10px; }
  .wiersz { grid-template-columns:1fr auto; gap:2px 10px; }
  .wiersz > :nth-child(3) { grid-column:1 / -1; }
  .wiersz > * { white-space:normal; }
  .usluga { grid-template-columns:54px 1fr; align-items:start; }
  .usluga .kwota { grid-column:1 / -1; grid-auto-flow:column; justify-content:space-between; align-items:center; justify-items:start; }
  .wykresy { grid-template-columns:1fr; }
  h1 { font-size:26px; }
  .tydz { grid-template-columns:1fr; gap:0; }
  main > .tydz { background:var(--karta); border-radius:14px; box-shadow:var(--cien); padding:2px 12px; }
  .tydz-d, main > .tydz .tydz-d, .tydz-d.weekend, main > .tydz .tydz-d.weekend { flex-direction:row; align-items:flex-start; gap:12px; min-height:0; padding:10px 0; border-radius:0; background:none; box-shadow:none; border-top:1px solid var(--linia); }
  .tydz-d:first-child { border-top:0; }
  .tydz-g { flex-direction:column; gap:1px; width:42px; flex:none; padding:0; }
  .tydz-g b { margin:0; font-size:18px; }
  .tydz-p { flex:1; min-width:0; }
  .tydz-d.pusty { padding:6px 0; align-items:center; }
  .tydz-d.pusty .tydz-g { flex-direction:row; width:auto; min-width:42px; gap:6px; }
  .tydz-d.pusty .tydz-g b { font-size:14px; min-width:0; height:auto; background:none; color:var(--tekst2); }
  .tydz-d.pusty.dzis .tydz-g b { color:var(--akcent); }
  .kp { font-size:14px; padding:7px 9px; }
  .kp b { display:inline; font-size:13px; margin-right:6px; }
  .kp span { display:inline; }
  .mies-g span { text-align:center; padding:8px 0; font-size:11px; }
  .mies-d { min-height:54px; padding:5px 2px 6px; align-items:center; gap:4px; }
  .mies-d.weekend { background:none; }
  .mies-d > b { align-self:center; font-size:15px; font-weight:500; min-width:30px; height:30px; }
  .mies-d .mp { display:none; }
  .kropki { display:flex; gap:3px; justify-content:center; }
  .kropki em { width:6px; height:6px; border-radius:50%; background:var(--k); }
  .ag { grid-template-columns:64px minmax(0,1fr); gap:4px 10px; }
  .ag .kw { grid-column:2; }
  .kal-nav h2 { font-size:18px; }
  .powiad-uklad { grid-template-columns:1fr; }
  .ust-w { grid-template-columns:minmax(0,1fr) auto; }
  .ust-o { grid-column:1; grid-row:1; }
  .ust-w .przel { grid-column:2; grid-row:1; }
  .ust-d { grid-column:1 / -1; grid-row:2; }
}
@media (max-width:640px) { .faktura-szczegoly dl { grid-template-columns:1fr; gap:2px; } .faktura-szczegoly dd { margin-bottom:8px; } }
/* Aplikacja z ekranu iPhone’a w jasnym trybie: ciemny pas pod paskiem stanu, żeby godzina i bateria były widoczne. */
@media (display-mode: standalone) and (prefers-color-scheme: light) {
  body::before { content:""; position:fixed; inset:0 0 auto 0; height:env(safe-area-inset-top); background:#1c1c1e; z-index:50; }
}
