/* Fitako — baner zgód. Kolory z palety motywu (zmienne --fx-*), mały promień jak w wyglądzie E. */
.fz { position: fixed; z-index: 400; left: clamp(.75rem, 2vw, 1.5rem); bottom: clamp(.75rem, 2vw, 1.5rem); width: min(460px, calc(100% - 1.5rem)); font-family: var(--fx-bez, system-ui, sans-serif); }
.fz[hidden], .fz-ikona[hidden], .fz [hidden] { display: none !important; }
.fz__okno { max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow: auto; padding: 1.4rem 1.5rem 1.3rem; border-radius: 8px; background: #fff; color: var(--fx-granat, #101B3F);
	box-shadow: 0 30px 60px -24px rgba(16, 27, 63, .45), 0 0 0 1px var(--fx-kreska, #E3E8F4); border-top: 4px solid var(--fx-chaber, #2747D0); font-size: .9375rem; line-height: 1.55; }
.fz__tytul { margin: 0 0 .4rem; font-family: var(--fx-szeryf, Georgia, serif); font-size: 1.3rem; line-height: 1.25; font-weight: 500; color: var(--fx-granat, #101B3F); }
.fz__tresc { margin: 0 0 1.1rem; color: var(--fx-szary, #525B75); }
.fz__tresc a { color: var(--fx-chaber, #2747D0); font-weight: 600; text-decoration: underline; text-underline-offset: .18em; }
.fz__kategorie { display: grid; gap: .55rem; margin: 0 0 1.1rem; }
.fz__kat { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: start; padding: .75rem .85rem; border: 1px solid var(--fx-kreska, #E3E8F4); border-radius: 6px; cursor: pointer; }
.fz__kat input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fz__kat strong { display: block; font-size: .95rem; }
.fz__kat small { display: block; font-size: .8125rem; line-height: 1.45; color: var(--fx-szary, #525B75); }
.fz__suwak { position: relative; width: 40px; height: 24px; margin-top: 1px; border-radius: 6px; background: #C9CFDF; transition: background-color .2s ease; }
.fz__suwak::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: transform .2s ease; }
.fz__kat input:checked + .fz__suwak { background: var(--fx-chaber, #2747D0); }
.fz__kat input:checked + .fz__suwak::after { transform: translateX(16px); }
.fz__kat input:disabled + .fz__suwak { opacity: .55; }
.fz__kat:has(input:disabled) { cursor: default; background: var(--fx-piasek, #F5F7FD); }
.fz__kat input:focus-visible + .fz__suwak { outline: 3px solid var(--fx-chaber, #2747D0); outline-offset: 2px; }
.fz__przyciski { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.fz__btn, .fz__link { cursor: pointer; min-height: 46px; padding: .55rem 1rem; border-radius: 6px; font: inherit; font-weight: 700; font-size: .9375rem; line-height: 1.2; }
.fz__btn { border: 1.5px solid var(--fx-chaber, #2747D0); background: var(--fx-chaber, #2747D0); color: #fff; transition: background-color .2s ease, border-color .2s ease; }
.fz__btn:hover { background: var(--fx-chaber-ciemny, #1A339E); border-color: var(--fx-chaber-ciemny, #1A339E); }
.fz__btn--zapisz { grid-column: 1 / -1; background: #fff; color: var(--fx-chaber, #2747D0); }
.fz__btn--zapisz:hover { color: #fff; }
.fz__link { grid-column: 1 / -1; min-height: 40px; border: 0; background: none; color: var(--fx-granat, #101B3F); text-decoration: underline; text-underline-offset: .2em; font-weight: 600; }
.fz__link:hover { color: var(--fx-chaber, #2747D0); }
.fz :focus-visible { outline: 3px solid var(--fx-chaber, #2747D0); outline-offset: 2px; }
.fz-ikona { position: fixed; z-index: 390; left: clamp(.6rem, 2vw, 1.25rem); bottom: clamp(.6rem, 2vw, 1.25rem); width: 46px; height: 46px; display: grid; place-items: center; padding: 0; cursor: pointer;
	border-radius: 6px; border: 1px solid var(--fx-kreska, #E3E8F4); background: #fff; color: var(--fx-chaber, #2747D0); box-shadow: 0 10px 24px -12px rgba(16, 27, 63, .45); transition: transform .2s ease, background-color .2s ease; }
.fz-ikona:hover { background: var(--fx-chaber-jasny, #EDF1FD); }
.fz-ikona:focus-visible { outline: 3px solid var(--fx-chaber, #2747D0); outline-offset: 2px; }
@media (max-width: 599px) {
	.fz { left: 0; right: 0; bottom: 0; width: 100%; }
	.fz__okno { border-radius: 8px 8px 0 0; padding: 1.2rem 1rem calc(1rem + env(safe-area-inset-bottom)); max-height: 88vh; max-height: 88dvh; }
	.fz__tytul { font-size: 1.2rem; }
	.fz-ikona { width: 40px; height: 40px; }
	body:has(.fx-wyglady) .fz-ikona { bottom: 4.4rem; }
}
@media print { .fz, .fz-ikona { display: none !important; } }
