/* „Zdrowie klienta” (28.10.2026) – lista klientów (pasek „Dziś”, pigułka wyniku) i zakładka przy kliencie. Kolory z tokens.css (statusy), jasny motyw domyślnie. */
/* karta „Zdrowie klientów” nad listą (28.10.2026, po uwadze właściciela): trzy kafelki, stuknięcie = filtr listy */
.zd-pasek { display: grid; gap: 10px; margin: 0 0 14px; padding: 14px 16px; border-radius: 16px; background: var(--card); border: 1px solid var(--line) }
.zd-pasek-g { display: flex; align-items: center; gap: 8px; font: 700 16px var(--sans) }
.zd-kafle { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px }
.zd-kafel { display: grid; justify-items: start; align-content: start; gap: 2px; padding: 12px 16px; border-radius: 12px; border: 2px solid transparent; font: inherit; color: inherit; cursor: pointer; text-align: left; min-width: 0; min-height: 48px }
.zd-kafel b { font: 800 26px/1.1 var(--sans) } .zd-kafel span { font: 700 14px/1.2 var(--sans) } .zd-kafel small { font: 500 12px/1.3 var(--sans); color: var(--muted) }
.zd-k-pilne { background: var(--st-pilne, #FDECEA) } .zd-k-pilne b, .zd-k-pilne span { color: var(--st-pilne-t, #B42318) }
.zd-k-sprawdz { background: var(--st-uwaga, #FEF3E2) } .zd-k-sprawdz b, .zd-k-sprawdz span { color: var(--st-uwaga-t, #94470A) }
.zd-k-okazje { background: var(--st-ok, #E7F6EC) } .zd-k-okazje b, .zd-k-okazje span { color: var(--st-ok-t, #0B6B3A) }
.zd-kafel.zero { background: var(--sel, #EEF2F7) } .zd-kafel.zero b, .zd-kafel.zero span { color: var(--muted) }
.zd-kafel[aria-pressed="true"] { border-color: var(--fg, #13263B) } .zd-wyb { font: 700 12px var(--sans); font-style: normal; color: var(--fg, #13263B) } .zd-wyb[hidden] { display: none }
.zd-kafel:focus-visible { outline: 3px solid var(--firma, #02377A); outline-offset: 2px }
.zd-pasek-o { margin: 0; font: 500 13px/1.4 var(--sans); color: var(--muted) }
.zd-lnk { border: 0; background: none; padding: 0; font: 700 13px var(--sans); color: var(--firma, #02377A); text-decoration: underline; cursor: pointer }
/* wiersz zdrowia na karcie klienta */
.zd-wiersz { display: grid; gap: 6px; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line); color: inherit; text-decoration: none }
.zd-w-gora { display: flex; align-items: center; justify-content: space-between; gap: 8px }
.zd-w-etyk { font: 700 12px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--muted) }
.zd-w-pr { display: inline-flex; align-items: center; gap: 6px }
.zd-co em { font-style: normal; font-weight: 700; color: var(--fg, inherit) }
.zd-w-dalej { justify-self: end; font: 700 13px var(--sans); color: var(--firma, #02377A) }
.zd-wiersz:hover .zd-w-dalej { text-decoration: underline }
.zd-wiersz:focus-visible { outline: 3px solid var(--firma, #02377A); outline-offset: 2px }
.zd-trend { font: 600 13px var(--sans); color: var(--muted) } .zd-trend.zle { color: var(--st-pilne-t, #B42318) } .zd-trend.ok { color: var(--st-ok-t, #0B6B3A) }
.zd-powod { min-width: 0; display: grid; gap: 4px } .zd-powod b { font: 700 15px/1.35 var(--sans) } .zd-powod small { color: var(--muted); font: 500 13.5px/1.4 var(--sans) }
.zd-orient { opacity: .75 }
.zd-ob { container-type: inline-size; min-width: 0 }
.zd { display: grid; gap: 14px }
.zd h2 { display: flex; align-items: center; gap: 8px; font-size: 21px; margin: 0 }
.zd h3 { margin: 0 0 6px; font: 700 15px var(--sans) } .zd .zd-h { margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--line) }
.zd .ik { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round }
/* nagłówek (28.10.2026, po uwagach właściciela): tytuł i opis na pełną szerokość, pod nim liczba + dwie równe linie „Pewność:” / „Zmiana:” i jedno „i” */
.zd-gl { display: grid; gap: 14px } .zd-gl p { margin: 4px 0 0 }
.zd-wynik { display: grid; gap: 10px; justify-items: start }
.zd-w-n { display: inline-flex; align-items: center; gap: 8px; min-width: 0 }
.zd-wynik-g { display: flex; align-items: center; gap: 12px 18px; flex-wrap: wrap }
.zd-wynik-o { display: grid; gap: 4px; margin: 0 }
.zd-wynik-o > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px; align-items: baseline; font: 500 14.5px/1.4 var(--sans) }
.zd-wynik-o dt { font-weight: 700; color: var(--fg, inherit) } .zd-wynik-o dd { margin: 0; color: var(--muted) } .zd-wynik-o dd b { color: var(--fg, inherit) }
.zd-wynik-g > .info-i { align-self: center; margin-left: -6px }
.zd-dost { margin: 0; font: 500 13.5px/1.5 var(--sans); color: var(--muted) }
.zd-liczba { display: inline-flex; align-items: baseline; gap: 2px; font: 800 44px/1 var(--sans); padding: 6px 16px 8px; border-radius: 12px; background: var(--st-szary); color: var(--st-szary-t) } .zd-liczba small { font: 700 16px var(--sans) }
.zd-liczba.st-ok { background: var(--st-ok); color: var(--st-ok-t) } .zd-liczba.st-uwaga { background: var(--st-uwaga); color: var(--st-uwaga-t) } .zd-liczba.st-pilne { background: var(--st-pilne); color: var(--st-pilne-t) }
.zd-pewn { font: 600 13px var(--sans); color: var(--muted) } .zd-zm { font: 500 14px var(--sans) }
.zd-dlaczego { padding: 14px 16px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); border-left: 6px solid var(--st-nowe-t, #02377A) } .zd-dlaczego.pilne { border-left-color: var(--st-pilne-t, #B42318) }
.zd-dlaczego p { margin: 0 0 6px; font: 500 15px/1.5 var(--sans) }
.zd-akcje-f { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 8px }
.zd .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; text-decoration: none }
.zd .btn.on { border-color: var(--firma, #02377A); background: var(--st-nowe, var(--sel)); color: var(--st-nowe-t, inherit) }
.zd-info { font: 600 13.5px var(--sans); color: var(--st-ok-t, #0B6B3A) } .zd-info.zle { color: var(--st-pilne-t, #B42318) }
.zd-form, .zd-profil { display: grid; gap: 10px; margin-top: 10px } .zd label { display: grid; gap: 4px; font: 600 14px var(--sans) } .zd label small { font-weight: 500; color: var(--muted) }
.zd textarea, .zd input:not([type=checkbox]), .zd select { font: 500 16px var(--sans); padding: 10px 12px; border: 2px solid var(--line); border-radius: 12px; background: var(--card); color: inherit; min-height: 44px; width: 100%; box-sizing: border-box }
.zd .zd-ch { display: flex; align-items: center; gap: 10px; font-weight: 500 } .zd .zd-ch input { width: 22px; height: 22px; min-height: 0; flex: none }
.zd .zd-sel { display: flex; align-items: center; gap: 8px } .zd .zd-sel select { width: auto }
.zd-wym { display: grid; gap: 0 } .zd-w { padding: 16px 0; border-top: 1px solid var(--line); display: grid; gap: 8px } .zd-w:first-child { border-top: 0; padding-top: 4px } .zd-w.brak .zd-w-pkt { font-weight: 500 }
.zd-w-g { display: flex; justify-content: space-between; gap: 10px; font: 700 15px var(--sans) } .zd-w-pkt { font-variant-numeric: tabular-nums; color: var(--muted) } .zd-w small { color: var(--muted); font: 500 13.5px/1.4 var(--sans) }
.zd-pas { height: 8px; border-radius: 999px; background: var(--sel) } .zd-pas i { display: block; height: 100%; border-radius: 999px; background: var(--firma, #02377A) }
.zd-kont { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px } .zd-kont > div { padding: 10px 12px; border-radius: 12px; background: var(--card); border: 1px solid var(--line) } .zd-kont b { display: block; font: 800 22px var(--sans) } .zd-kont small { display: block; color: var(--muted); font: 500 13px/1.4 var(--sans) } .zd-kont .zd-kont-d { margin-top: 4px; font-size: 12.5px }
.zd-mal { font-size: 13px; margin: 0 }
.zd-fun { display: grid; gap: 10px } .zd-f { padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); display: grid; gap: 6px } .zd-f-g { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px } .zd-f small { color: var(--muted); font: 500 13.5px var(--sans) }
.zd-f-akcje { display: flex; flex-wrap: wrap; gap: 8px } .zd-f-akcje .btn { min-height: 40px; font-size: 14px; padding: 8px 12px }
.zd-szkic { display: grid; gap: 8px; padding: 14px; border: 2px solid var(--firma, #02377A); border-radius: 14px; background: var(--card) }
.zd-zad, .zd-os, .zd-nota { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px }
.zd-zad li { display: grid; gap: 6px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--card) } .zd-z-t { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font: 700 15px/1.35 var(--sans) } .zd-z-o { margin: 0; color: var(--muted); font: 500 14px/1.45 var(--sans) } .zd-z-o b { color: var(--fg, inherit) } .zd-z-akcje { margin-top: 4px } .zd-z-st { margin: 0; font: 500 13.5px var(--sans); color: var(--muted) } .zd-z-st b { color: var(--fg, inherit) } .zd-zad li.gotowe { opacity: .6 } .zd-zad small { display: block; color: var(--muted); font: 500 13.5px/1.4 var(--sans) }
.zd-z-akcje { display: flex; flex-wrap: wrap; gap: 8px } .zd-z-akcje .btn { min-height: 40px; font-size: 13.5px; padding: 8px 12px }
/* 28.10.2026 (właściciel): przyciski zadań, „Dlaczego warto sprawdzić?” i funkcji zawsze w jednej linii – równe części, tekst najwyżej w 2 wierszach */
.zd-akcje-f, .zd-z-akcje, .zd-f-akcje { flex-wrap: nowrap; gap: 6px }
.zd-akcje-f .btn, .zd-z-akcje .btn, .zd-f-akcje .btn { flex: 1 1 0; min-width: 0; min-height: 42px; padding: 6px 8px; font-size: 13.5px; line-height: 1.15; white-space: normal; text-align: center }
@media (max-width: 480px) { .zd-akcje-f .btn svg, .zd-f-akcje .btn svg { display: none } .zd-akcje-f .btn, .zd-z-akcje .btn, .zd-f-akcje .btn { font-size: 13px; padding: 6px } }
.zd-os li, .zd-nota li { display: flex; gap: 12px; font: 500 14px/1.45 var(--sans) } .zd-os-k { flex: none; width: 92px; color: var(--muted); font-variant-numeric: tabular-nums }
.zd-razem { font-style: normal; font-weight: 700; font-size: 11.5px; padding: 2px 7px; border-radius: 999px; background: var(--st-nowe, var(--sel)); color: var(--st-nowe-t, inherit) }
@container (min-width: 700px) { .zd-kont { grid-template-columns: repeat(3, minmax(0, 1fr)) } .zd-fun { grid-template-columns: 1fr 1fr } }
@media (prefers-reduced-motion: no-preference) { .zd-wiersz { transition: filter 200ms ease-out } }

.zd { padding-bottom: 96px } /* miejsce pod stały dolny pasek na telefonie */
.zd-sek { border: 1px solid var(--line); border-radius: 14px; background: var(--card); padding: 0 } .zd-sek > summary { list-style: none; cursor: pointer; padding: 14px 16px; min-height: 48px; display: flex; align-items: center; justify-content: space-between; font: 700 15px var(--sans) }
.zd-sek > summary::-webkit-details-marker { display: none } .zd-sek > summary::after { content: "▾"; color: var(--muted); transition: transform 200ms ease-out } .zd-sek[open] > summary::after { transform: rotate(180deg) }
.zd-sek-tresc { padding: 0 16px 16px; display: grid; gap: 12px }
.zd-jak { padding-top: 0 } .zd-jak-gl { max-width: 760px } .zd-jak-gl[open] { padding: 0 0 4px } .zd-jak > summary { cursor: pointer; font: 600 14px var(--sans); color: var(--st-nowe-t, inherit); min-height: 40px; display: flex; align-items: center }
.zd-prog { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 6px; font: 500 13.5px/1.5 var(--sans) }
@media (min-width: 700px) { .zd { padding-bottom: 24px } }
@media (max-width: 699px) { .zd-pasek + .b-kafle-kl, .zd-pasek + .klienci { padding-bottom: 96px } }
.zd-pasek + * > [hidden] { display: none !important }
/* przegląd „Zdrowie klientów” z menu panelu www (#zdrowie, 28.10.2026) */
.zd-przeglad { display: grid; gap: 0; max-width: 1100px }
.zd-tab { display: grid; gap: 10px }
.zd-r { display: grid; grid-template-columns: 220px 130px minmax(0, 1fr) 96px; align-items: start; gap: 12px 16px; padding: 16px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); color: inherit; text-decoration: none }
.zd-r:hover { border-color: var(--firma, #02377A) } .zd-r:focus-visible { outline: 3px solid var(--firma, #02377A); outline-offset: 2px }
.zd-r-kto { display: grid; gap: 6px; justify-items: start; min-width: 0 } .zd-r-kto b { font: 700 16px var(--sans) }
.zd-r-wyn { display: grid; justify-items: start; gap: 4px }
.zd-r .zd-w-dalej { justify-self: end }
@media (max-width: 760px) { .zd-r { grid-template-columns: 1fr auto; padding: 12px 14px } .zd-r .zd-powod { grid-column: 1 / -1 } .zd-r .zd-w-dalej { grid-column: 1 / -1 } }
.zd-r, .zd-r .zd-powod b, .zd-r-kto b { color: var(--fg, var(--tekst, #13263B)) }
/* pola formularzy w zdrowiu klienta (28.10.2026, właściciel: „obramówka wychodzi poza”): zamiast grubej obwódki z odstępem –
   obramowanie pola w kolorze firmy i delikatna poświata w środku, nic nie wystaje poza kartę */
.zd textarea:focus, .zd input:not([type=checkbox]):focus, .zd select:focus, .zd textarea:focus-visible, .zd input:not([type=checkbox]):focus-visible, .zd select:focus-visible { outline: none; border-color: var(--firma, #02377A); box-shadow: inset 0 0 0 1px var(--firma, #02377A) }
.zd textarea { resize: vertical; min-height: 84px; line-height: 1.45 }
.zd-nota-r { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 12px }
.zd-nota-r .zd-sel { display: grid; gap: 4px; font: 600 14px var(--sans) } .zd-nota-r .zd-sel select { min-width: 170px }
.zd-nota-r .btn { min-width: 130px; min-height: 44px; flex: none }
.zd-form { padding: 14px; border-radius: 14px; background: var(--sel, #F2F6FB) }
.zd .info-i { width: 18px; height: 18px; min-height: 0; padding: 0; flex: none }
@media (max-width: 340px) { .zd-kafle { grid-template-columns: minmax(0, 1fr) } }
.zd .zd-jak-gl { border-top: 0 }
.zd-jak-gl > summary { min-height: 44px; display: inline-flex; align-items: center; cursor: pointer; font: 600 14px var(--sans); color: var(--firma, #02377A); text-decoration: underline; text-underline-offset: 3px }
@container (max-width: 480px) { .zd-wynik-o > div { display: block } .zd-wynik-o dt, .zd-wynik-o dd { display: inline } .zd-wynik-o dt { margin-right: 4px } }
.zd-wiersz .zd-powod b { color: var(--fg, var(--tekst, #13263B)) }
/* pierścień wyniku (28.10.2026, dodatek właściciela): kolor wg wyniku, tło var(--sel); animację uruchamia zdrowie.js tylko przy pierwszym pokazaniu */
.zd-ring { position: relative; display: inline-grid; place-items: center; width: var(--zd-ring); height: var(--zd-ring); flex: none }
.zd-ring svg { position: absolute; inset: 0; display: block }
.zd-ring-t { fill: none; stroke: var(--sel, #E9EEF5) }
.zd-ring-p { fill: none; stroke: var(--st-szary-t, #5C6B80); stroke-linecap: round }
.zd-ring.st-ok .zd-ring-p { stroke: var(--st-ok-t, #0B6B3A) } .zd-ring.st-uwaga .zd-ring-p { stroke: var(--st-uwaga-t, #94470A) } .zd-ring.st-pilne .zd-ring-p { stroke: var(--st-pilne-t, #B42318) }
.zd-ring.st-ok, .zd-ring.st-uwaga, .zd-ring.st-pilne, .zd-ring.st-szary { background: none; padding: 0 }
.zd-ring-n { position: relative; display: inline-flex; align-items: baseline; gap: 1px; font-variant-numeric: tabular-nums }
.zd-ring-n b { font: 800 30px/1 var(--sans) } .zd-ring-n small { font: 700 13px var(--sans); color: var(--muted) }
.zd-ring.st-ok .zd-ring-n b { color: var(--st-ok-t, #0B6B3A) } .zd-ring.st-uwaga .zd-ring-n b { color: var(--st-uwaga-t, #94470A) } .zd-ring.st-pilne .zd-ring-n b { color: var(--st-pilne-t, #B42318) }
.zd-l-gr { display: inline-flex; align-items: center; gap: 12px }
.zd-r-wg { display: inline-flex; align-items: center; gap: 8px }
.zd-w-zm { display: block; text-align: right; margin-top: -2px }
@media (prefers-reduced-motion: reduce) { .zd-ring-p, .zd-pas i { transition: none !important } }
.zd-r-nz { display: inline-flex; align-items: center; gap: 10px; min-width: 0 }
/* tryb wdrożenia nowego klienta (pierwsze 30 dni, 28.10.2026, recenzja GPT + Gemini): pigułka dnia, „Zbieramy dane…”, „Pierwsze kroki klienta” */
.zd-wd { display: grid; gap: 8px; justify-items: start }
.zd-wd-h { margin: 8px 0 0; font: 700 18px/1.3 var(--sans) }
.zd-wd-p { margin: 0; font: 500 15px/1.5 var(--sans) }
.zd-kroki { display: grid; gap: 10px; padding: 16px 0 4px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line) } /* bez karty w karcie – linie 1 px */
.zd-sek .zd-kroki { padding: 0; border: 0; background: none }
.zd-kroki-g b { font: 700 16px/1.3 var(--sans) }
.zd-kr-l { list-style: none; margin: 0; padding: 0 }
.zd-kr-l > li + li { border-top: 1px solid var(--line) }
.zd-kr > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 10px 4px 10px 0; cursor: pointer; border-radius: 8px }
.zd-kr > summary::-webkit-details-marker { display: none }
.zd-kr > summary::after { content: "▾"; flex: none; color: var(--muted); transition: transform 200ms ease-out } .zd-kr[open] > summary::after { transform: rotate(180deg) }
.zd-kr > summary:focus-visible { outline: 2px solid var(--firma, #02377A); outline-offset: -2px }
.zd-kr-t { display: grid; gap: 2px; min-width: 0 }
.zd-kr-n { font: 700 15px/1.35 var(--sans); color: var(--fg, inherit) }
.zd-kr-s { display: inline-flex; align-items: flex-start; gap: 6px; font: 600 14px/1.4 var(--sans) } .zd-kr-s .ik { width: 16px; height: 16px; margin-top: 2px }
.zd-kr-ok { color: var(--st-ok-t, #0B6B3A) } .zd-kr-uwaga { color: var(--st-uwaga-t, #94470A) } .zd-kr-czeka { color: var(--st-nowe-t, #02377A) } .zd-kr-szary { color: var(--muted) }
.zd-kr-d { display: grid; gap: 8px; padding: 0 0 12px }
.zd-kr-d dl { display: grid; gap: 6px; margin: 0 }
.zd-kr-d dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; font: 500 14px/1.4 var(--sans) }
.zd-kr-d dt { color: var(--muted) } .zd-kr-d dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; color: var(--fg, inherit) }
.zd-lnk2 { display: inline-flex; align-items: center; min-height: 44px; font: 700 14px var(--sans); color: var(--firma, #02377A); text-decoration: none; justify-self: start }
.zd-lnk2:hover { text-decoration: underline } .zd-lnk2:focus-visible { outline: 2px solid var(--firma, #02377A); outline-offset: 2px; border-radius: 4px }
.zd-akcje-wd .btn { min-height: 48px }
/* po 30 dniach bez wyniku: „Wynik zdrowia: jeszcze niedostępny” + braki */
.zd-bw { display: grid; gap: 4px; max-width: 720px } .zd-bw > b { font: 700 17px/1.3 var(--sans) } .zd-bw .zd-mal { color: var(--muted) } .zd-bw-t { margin: 6px 0 0; font: 700 14px var(--sans) }
/* 31.10.2026 (recenzja GPT): „Odłóż o tydzień” łamało się w trzecim przycisku – dwa równe przyciski w rzędzie, trzeci pod nimi na całą szerokość */
.zd-z-akcje { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px }
.zd-z-akcje .btn { white-space: nowrap } .zd-z-akcje .btn:nth-child(3) { grid-column: 1 / -1 }
