/* Karma na Wagę – style funkcjonalne (motyw może je nadpisać przez zmienne --knw-*) */
:root {
	--knw-ink: #141414;
	--knw-paper: #fff;
	--knw-muted: #5e5e5a;
	--knw-line: #d9d9d4;
	--knw-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
.knw-ppk { font-family: var(--knw-mono); font-weight: 500; white-space: nowrap; }
.knw-ppk .woocommerce-Price-amount { font-weight: inherit; }
.knw-ppk__unit { font-weight: 400; }
.knw-loop-ppk { font-size: .82rem; color: var(--knw-muted); margin: .15rem 0 .1rem; }
.knw-loop-weights { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); margin-bottom: .6rem; }
.knw-ppk-line { margin: -.4rem 0 1.2rem; font-size: .95rem; }
.knw-ppk-line__note { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); margin-left: .35rem; }

/* Skład */
.knw-comp { list-style: none; margin: 0; padding: 0; counter-reset: knw; border-top: 1px solid var(--knw-ink); }
.knw-comp__row { display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; padding: .55rem 0 .6rem; border-bottom: 1px solid var(--knw-line); align-items: baseline; }
.knw-comp__name { font-size: .95rem; line-height: 1.35; }
.knw-comp__name small { color: var(--knw-muted); }
.knw-comp__pct { font-family: var(--knw-mono); font-size: .9rem; font-weight: 500; text-align: right; }
.knw-comp__bar { grid-column: 1 / -1; height: 3px; background: var(--knw-line); }
.knw-comp__bar span { display: block; height: 100%; background: var(--knw-ink); }
.knw-comp--compact .knw-comp__row { padding: .4rem 0 .45rem; }
.knw-comp__more { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); margin: .5rem 0 0; }
.knw-summary-comp { margin: 0 0 1.6rem; }
.knw-summary-comp__h { font-size: .78rem !important; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .5rem !important; }
.knw-summary-comp__link { display: inline-block; margin-top: .6rem; font-size: .85rem; color: var(--knw-ink); text-decoration: underline; text-underline-offset: 3px; }

.knw-analysis { width: 100%; border-collapse: collapse; border-top: 1px solid var(--knw-ink); margin: 0 0 1.2rem; }
.knw-analysis th, .knw-analysis td { padding: .5rem 0; border: 0; border-bottom: 1px solid var(--knw-line); font-size: .95rem; background: none !important; }
.knw-analysis th { text-align: left; font-weight: 400; }
.knw-analysis td { text-align: right; font-family: var(--knw-mono); font-weight: 500; }
.knw-tab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media (max-width: 768px) { .knw-tab-grid { grid-template-columns: 1fr; gap: 2rem; } }

/* Kafelki gramatur */
.knw-has-tiles select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.knw-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 6px; margin: .2rem 0 .4rem; }
.knw-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: .65rem .7rem; border: 1px solid var(--knw-ink); background: var(--knw-paper); color: var(--knw-ink); border-radius: 0; cursor: pointer; text-align: left; font: inherit; line-height: 1.15; transition: background .12s, color .12s; }
.knw-tile:hover, .knw-tile:focus-visible { background: #ececE7; color: var(--knw-ink); outline: none; }
.knw-tile.is-active { background: var(--knw-ink); color: var(--knw-paper); }
.knw-tile.is-out { opacity: .4; text-decoration: line-through; }
.knw-tile__w { font-weight: 700; font-size: 1rem; }
.knw-tile__p { font-family: var(--knw-mono); font-size: .82rem; }
.knw-tile__k { font-family: var(--knw-mono); font-size: .68rem; opacity: .75; }

.knw-batch { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.knw-batch [hidden] { display: none; }
.knw-barf-badge { border: 1px solid var(--knw-ink); padding: .5rem .7rem; font-size: .85rem; margin: 0 0 1rem; }
.knw-net-total th, .knw-net-total td { font-family: var(--knw-mono); }
.knw-mini-net { font-family: var(--knw-mono); font-size: .8rem; margin: .5rem 0; }

/* Konfigurator zestawu */
.knw-sampler__lead { max-width: 60ch; }
.knw-sampler__grid { list-style: none; margin: 1.5rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 0; border-top: 1px solid var(--knw-ink); border-left: 1px solid var(--knw-ink); }
.knw-sampler__item { border-right: 1px solid var(--knw-ink); border-bottom: 1px solid var(--knw-ink); margin: 0; }
.knw-sampler__item label { display: block; height: 100%; cursor: pointer; margin: 0; }
.knw-sampler__item input { position: absolute; opacity: 0; }
.knw-sampler__card { display: flex; flex-direction: column; gap: .45rem; height: 100%; padding: 1.1rem 1.1rem 1.2rem; background: var(--knw-paper); transition: background .12s, color .12s; position: relative; }
.knw-sampler__card::after { content: ""; position: absolute; top: 1rem; right: 1rem; width: 18px; height: 18px; border: 1px solid currentColor; }
.knw-sampler__item input:checked + .knw-sampler__card { background: var(--knw-ink); color: var(--knw-paper); }
.knw-sampler__item input:checked + .knw-sampler__card::after { background: var(--knw-paper); box-shadow: inset 0 0 0 4px var(--knw-ink); }
.knw-sampler__item input:focus-visible + .knw-sampler__card { outline: 2px solid var(--knw-ink); outline-offset: -5px; }
.knw-sampler__item.is-locked .knw-sampler__card { opacity: .45; cursor: not-allowed; }
.knw-sampler__cat { font-family: var(--knw-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; padding-right: 2rem; }
.knw-sampler__name { font-weight: 700; font-size: 1.05rem; line-height: 1.2; padding-right: 1.5rem; }
.knw-sampler__comp { font-size: .82rem; line-height: 1.4; opacity: .8; }
.knw-sampler__price { margin-top: auto; font-family: var(--knw-mono); font-weight: 500; }
.knw-sampler__price small { opacity: .7; font-weight: 400; }
.knw-sampler__bar { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; align-items: center; justify-content: space-between; padding: 1rem 1.2rem; background: var(--knw-paper); border: 1px solid var(--knw-ink); z-index: 5; }
.knw-sampler__total { font-family: var(--knw-mono); font-weight: 500; }
.knw-sampler__total s { opacity: .5; margin-right: .3rem; }
.knw-sampler__total em { font-style: normal; font-size: .8rem; color: var(--knw-muted); margin-left: .4rem; }
.knw-sampler__btn[disabled] { opacity: .35; cursor: not-allowed; }
