/* Szpurt Panel — zestaw elementów wyglądu (komponenty). Jedyne źródło wyglądu ekranów modułów.
   Kolory wyłącznie z tokenów --sz-* (szpurt-panel.css: Auto/Jasny/Ciemny). Bez stylów inline w modułach.
   Zasada (Konrad 22.10): widok zrobiony porządnie pod telefon; logika modułów 1:1 z GlamLamą. */

/* ---------- typografia pomocnicza ---------- */
.sz-etykieta{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sz-muted)}
.sz-pomocniczy{font-size:13px;color:var(--sz-muted)}
.sz-kod{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--sz-muted);font-weight:500}
.sz-kwota{font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}
.sz-ok-txt{color:var(--sz-ok)} .sz-zle-txt{color:var(--sz-bad)} .sz-ostrz-txt{color:var(--sz-warn)} .sz-info-txt{color:var(--sz-info)}
.sz-gl-txt{color:var(--sz-gl)} .sz-violet-txt{color:var(--sz-violet)} .sz-wyc{color:var(--sz-muted)}

/* ---------- karta ---------- */
.sz-k{background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:14px;overflow:hidden;color:var(--sz-ink)}
.sz-k--urodziny{border-color:color-mix(in srgb,var(--sz-gl) 55%,var(--sz-line));box-shadow:inset 3px 0 0 var(--sz-gl)}
.sz-k--grupa{box-shadow:inset 4px 0 0 var(--sz-violet)}
.sz-k--wyciszona{opacity:.7}
.sz-k__glowa{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:start;padding:12px 13px 8px}
.sz-k__tytul{font-weight:800;font-size:16px;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.sz-k__tresc{padding:0 13px 13px;display:grid;gap:10px}
.sz-k__stopka{padding:10px 13px 13px;border-top:1px solid var(--sz-line);display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sz-k__stopka > .sz-pelny{grid-column:1/-1}

/* ---------- plakietka (status) i chip ---------- */
.sz-pl{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;border-radius:7px;padding:4px 8px;white-space:nowrap;background:var(--sz-surface-2);color:var(--sz-ink-2)}
.sz-pl--ok{background:var(--sz-ok-soft);color:var(--sz-ok)}
.sz-pl--info{background:var(--sz-info-soft);color:var(--sz-info)}
.sz-pl--ostrz{background:var(--sz-warn-soft);color:var(--sz-warn)}
.sz-pl--zle{background:var(--sz-bad-soft);color:var(--sz-bad)}
.sz-pl--gl{background:color-mix(in srgb,var(--sz-gl) 14%,transparent);color:var(--sz-gl)}
.sz-pl--violet{background:var(--sz-violet-soft);color:var(--sz-violet)}
.sz-chip{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;border-radius:8px;padding:4px 9px;background:var(--sz-surface-2);border:1px solid var(--sz-line);color:var(--sz-ink);white-space:nowrap}
.sz-chip--akcent{background:var(--sz-accent-soft);border-color:transparent;color:var(--sz-accent)}
.sz-chip--gl{background:color-mix(in srgb,var(--sz-gl) 13%,transparent);border-color:transparent;color:var(--sz-gl)}
.sz-chip--violet{background:var(--sz-violet-soft);border-color:transparent;color:var(--sz-violet)}
.sz-chipy{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ---------- fakty (ikona + wartość) ---------- */
.sz-fakty{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--sz-muted)}
.sz-fakty b,.sz-fakty strong{color:var(--sz-ink);font-weight:600}
.sz-fakty a{color:var(--sz-ink);text-decoration:none}

/* ---------- box w karcie ---------- */
.sz-box{background:var(--sz-surface-2);border:1px solid var(--sz-line);border-radius:12px;padding:11px;display:grid;gap:9px}
.sz-box--ok{background:var(--sz-ok-soft);border-color:color-mix(in srgb,var(--sz-ok) 30%,transparent)}
.sz-box--ostrz{background:var(--sz-warn-soft);border-color:color-mix(in srgb,var(--sz-warn) 30%,transparent)}
.sz-box--zle{background:var(--sz-bad-soft);border-color:color-mix(in srgb,var(--sz-bad) 30%,transparent)}
.sz-box--akcent{border-color:color-mix(in srgb,var(--sz-accent) 45%,var(--sz-line))}
.sz-box__tytul{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--sz-muted);display:flex;align-items:center;gap:6px;justify-content:space-between}
.sz-wiersz{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.sz-wiersz > :last-child{text-align:right}
.sz-razem{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:1px dashed var(--sz-line-2);padding-top:9px}
.sz-razem .sz-etykieta{font-size:11.5px}
.sz-razem .sz-kwota{font-size:22px}
.sz-dwa{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sz-mini{background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:10px;padding:8px 10px;min-width:0}
.sz-mini small{display:block;font-size:11.5px;color:var(--sz-muted);font-weight:600}
.sz-mini b,.sz-mini strong{font-size:19px;font-variant-numeric:tabular-nums}

/* ---------- przyciski ---------- */
.sz-b{font:inherit;font-size:14px;font-weight:700;line-height:1.2;min-height:42px;padding:9px 12px;border-radius:10px;border:1px solid var(--sz-line-2);background:var(--sz-surface);color:var(--sz-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;text-decoration:none;-webkit-tap-highlight-color:transparent}
.sz-b:disabled{opacity:.45;cursor:default}
.sz-b--glowny{background:var(--sz-accent);border-color:var(--sz-accent);color:var(--sz-na-kolorze)}
.sz-b--ok{background:var(--sz-ok);border-color:var(--sz-ok);color:var(--sz-na-kolorze)}
.sz-b--zle{background:var(--sz-bad);border-color:var(--sz-bad);color:var(--sz-na-kolorze)}
.sz-b--ostrz{background:var(--sz-warn);border-color:var(--sz-warn);color:var(--sz-na-kolorze)}
.sz-b--info{background:var(--sz-info);border-color:var(--sz-info);color:var(--sz-na-kolorze)}
.sz-b--violet{background:var(--sz-violet);border-color:var(--sz-violet);color:var(--sz-na-kolorze)}
.sz-b--zle-obrys{color:var(--sz-bad);border-color:color-mix(in srgb,var(--sz-bad) 50%,var(--sz-line))}
.sz-b--ok-obrys{color:var(--sz-ok);border-color:color-mix(in srgb,var(--sz-ok) 50%,var(--sz-line))}
.sz-b--maly{min-height:34px;padding:6px 10px;font-size:13px}
.sz-b--duzy{min-height:50px;font-size:16px}
.sz-pelny{width:100%}
.sz-przyciski{display:flex;flex-wrap:wrap;gap:6px}
.sz-przyciski > .sz-b{flex:1 1 auto}
.sz-siatka-przyc{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sz-link{font:inherit;background:none;border:0;padding:0;color:var(--sz-accent);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}

/* ---------- licznik − N + ---------- */
.sz-licznik{display:inline-grid;grid-template-columns:44px minmax(44px,auto) 44px;align-items:center;border:1px solid var(--sz-line-2);border-radius:11px;overflow:hidden;background:var(--sz-surface)}
.sz-licznik button{font:inherit;font-size:20px;font-weight:700;border:0;background:var(--sz-surface-2);color:var(--sz-ink);height:44px;cursor:pointer}
.sz-licznik span,.sz-licznik input{text-align:center;font-weight:800;font-size:17px;font-variant-numeric:tabular-nums;border:0!important;background:transparent!important;width:100%;min-width:0;padding:0!important}

/* ---------- pola formularzy ---------- */
.sz-form{display:grid;gap:12px}
.sz-pole{display:grid;gap:5px;min-width:0}
.sz-pole > label,.sz-pole > .sz-etykieta{font-size:13px;font-weight:700;color:var(--sz-ink-2);text-transform:none;letter-spacing:0}
.sz-pole small,.sz-pole .sz-pomocniczy{font-weight:500}
.sz-in{font:inherit;font-size:16px;width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--sz-line-2);background:var(--sz-surface);color:var(--sz-ink)}
.sz-in:focus{outline:2px solid var(--sz-accent);outline-offset:0;border-color:var(--sz-accent)}
textarea.sz-in{min-height:44px;resize:vertical}
.sz-form-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:600px){.sz-form-2{grid-template-columns:1fr}}
.sz-wybor{display:flex;flex-wrap:wrap;gap:6px}
.sz-wybor button{font:inherit;font-size:14px;font-weight:600;min-height:38px;padding:7px 12px;border-radius:999px;border:1px solid var(--sz-line-2);background:var(--sz-surface);color:var(--sz-ink);cursor:pointer}
.sz-wybor button.on,.sz-wybor button[aria-pressed="true"]{background:var(--sz-ink);border-color:var(--sz-ink);color:var(--sz-surface)}

/* ---------- sekcja ekranu, nagłówek ---------- */
.sz-sekcja{display:grid;gap:12px;margin-bottom:16px}
.sz-sekcja__tytul{margin:0;font-size:17px;font-weight:800;color:var(--sz-ink)}
.sz-lista{display:grid;gap:10px}
.sz-pusto{text-align:center;padding:28px 12px;color:var(--sz-muted);font-size:14px}

/* ---------- KPI ---------- */
.sz-kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:6px}
.sz-kpi__k{background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:11px;padding:8px 10px;min-width:0}
.sz-kpi__k b,.sz-kpi__k strong{display:block;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2;overflow-wrap:anywhere}
.sz-kpi__k small{display:block;font-size:11.5px;color:var(--sz-muted);font-weight:600;line-height:1.25}
.sz-kpi__k--szeroki{grid-column:span 2}
.sz-kpi__k--ostrz :is(b,strong){color:var(--sz-warn)} .sz-kpi__k--gl :is(b,strong){color:var(--sz-gl)} .sz-kpi__k--violet :is(b,strong){color:var(--sz-violet)}

/* ---------- komunikat w treści ---------- */
.sz-uwaga{border-radius:11px;padding:10px 12px;font-size:14px;font-weight:600;background:var(--sz-surface-2);border:1px solid var(--sz-line);color:var(--sz-ink)}
.sz-uwaga--ok{background:var(--sz-ok-soft);border-color:transparent;color:var(--sz-ok)}
.sz-uwaga--zle{background:var(--sz-bad-soft);border-color:transparent;color:var(--sz-bad)}
.sz-uwaga--ostrz{background:var(--sz-warn-soft);border-color:transparent;color:var(--sz-warn)}
.sz-uwaga--info{background:var(--sz-info-soft);border-color:transparent;color:var(--sz-info)}

/* ---------- tabela (na telefonie karty — td[data-sz] = etykieta kolumny) ---------- */
.sz-tab{width:100%;border-collapse:collapse;font-size:14px}
.sz-tab th{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--sz-muted);text-align:left;padding:8px;border-bottom:1px solid var(--sz-line-2)}
.sz-tab td{padding:9px 8px;border-bottom:1px solid var(--sz-line);vertical-align:middle}
.sz-tab .sz-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:640px){
  .sz-tab--karty,.sz-tab--karty tbody,.sz-tab--karty tfoot,.sz-tab--karty tr,.sz-tab--karty td{display:block;width:100%}
  .sz-tab--karty thead{display:none}
  .sz-tab--karty tr{background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:12px;margin-bottom:8px;padding:2px 4px}
  .sz-tab--karty td{display:flex;justify-content:space-between;gap:12px;text-align:right;border-bottom:1px solid var(--sz-line)}
  .sz-tab--karty td:last-child{border-bottom:0}
  .sz-tab--karty td::before{content:attr(data-sz);font-size:12px;font-weight:700;color:var(--sz-muted);text-align:left}
  .sz-tab--karty td[data-sz=""]::before{display:none}
}

/* ---------- pasek „Na zmianie” ---------- */
.sz-zmiana{background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:12px;padding:9px 11px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px}
.sz-zmiana__lbl{font-weight:700;color:var(--sz-muted);margin-right:2px}
.sz-zmiana--pusto{color:var(--sz-muted)}

/* ---------- lista wyboru dnia / kalendarzyk ---------- */
.sz-kal-pop{background:var(--sz-surface);border:1px solid var(--sz-line-2);border-radius:14px;padding:10px;box-shadow:0 18px 40px -16px rgba(0,0,0,.45);color:var(--sz-ink)}

/* ---------- dodatki do kart rezerwacji ---------- */
.sz-k--wyrozniony{box-shadow:inset 4px 0 0 var(--sz-accent)}
.sz-kropka{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.sz-trzy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sz-radio{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--sz-ink-2);cursor:pointer}
.sz-radio input{width:20px;height:20px;accent-color:var(--sz-accent);flex:none}
.sz-platnosc{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sz-platnosc__kwota{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-weight:700;color:var(--sz-muted)}
.sz-dwa .sz-platnosc__kwota{grid-column:auto}
.sz-platnosc__kwota .sz-in{font-weight:800;font-size:18px}

/* ---------- listy i nagłówki wyników ---------- */
.sz-naglowek-wyniku{display:flex;align-items:center;gap:10px;margin:14px 0 4px}
.sz-naglowek-wyniku__ik{font-size:22px}
.sz-naglowek-wyniku__data{font-size:16px;font-weight:800}
.sz-lista-wiersz{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 12px;background:var(--sz-surface);border:1px solid var(--sz-line);border-radius:12px;margin-bottom:8px;cursor:pointer}
.sz-lista-wiersz--pilne{border-color:color-mix(in srgb,var(--sz-bad) 55%,var(--sz-line));box-shadow:inset 3px 0 0 var(--sz-bad)}
.sz-voucher-kod{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px;font-weight:800;letter-spacing:.04em;color:var(--sz-gl)}
.sz-kpi__k--ok :is(b,strong){color:var(--sz-ok)} .sz-kpi__k--info :is(b,strong){color:var(--sz-info)} .sz-kpi__k--zle :is(b,strong){color:var(--sz-bad)}
.sz-dwa-kol{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}

/* ---------- wykres słupkowy i ranking (analityka) ---------- */
.sz-slupki{display:flex;align-items:flex-end;gap:4px;height:190px;overflow-x:auto;padding-top:6px}
.sz-slupki__k{flex:1 0 30px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.sz-slupki__w{font-size:10px;color:var(--sz-muted);font-weight:600;margin-bottom:3px;white-space:nowrap}
.sz-slupki__w--max{color:var(--sz-ink);font-weight:800}
.sz-slupki__s{width:100%;max-width:40px;border-radius:4px 4px 0 0}
.sz-slupki__e{font-size:10px;color:var(--sz-muted);margin-top:4px;white-space:nowrap}
.sz-ranking{display:grid;gap:4px;margin-bottom:8px;font-size:14px}
.sz-ranking__pasek{height:6px;background:var(--sz-surface-2);border-radius:4px;overflow:hidden}
.sz-ranking__pasek > div{height:100%}
