/* ========== Deal Tracker (makieta 2026-11-03): lista promocji + wykres historii cen. Tylko nowe klasy .pf-deal*, .pf-pricechart* ========== */
.pf-deals { border-top: 1px solid var(--pf-line); --pf-deal-cols: minmax(0, 1.25fr) minmax(0, 1.05fr) minmax(200px, 1.15fr) minmax(0, .9fr) 176px; }
.pf-deals__labels { display: grid; grid-template-columns: var(--pf-deal-cols); gap: var(--pf-space-4); padding: var(--pf-space-3) var(--pf-space-4); background: var(--pf-surface); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); }
.pf-deal { display: grid; grid-template-columns: var(--pf-deal-cols); gap: var(--pf-space-4); align-items: center; padding: var(--pf-space-4); border-bottom: 1px solid var(--pf-line); }
.pf-deal[hidden] { display: none; }
.pf-deal__offer { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; min-width: 0; }
.pf-deal__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--pf-space-2); font-variant-numeric: tabular-nums; }
.pf-deal__price del { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-deal__price strong { color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-heading); letter-spacing: -.01em; }
.pf-deal__plan { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-deal__code { min-width: 0; }
.pf-deal__nocode { color: var(--pf-text-2); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); }
.pf-deal__term { display: grid; gap: 2px; margin: 0; color: var(--pf-text-2); font-size: var(--pf-fs-meta); }
.pf-deal__term dt { display: none; }
.pf-deal__term dd { margin: 0; }
.pf-deal__term strong { color: var(--pf-text); font-weight: var(--pf-fw-semibold); }
.pf-deal__soon { color: var(--pf-negative); font-weight: var(--pf-fw-semibold); }
.pf-deal__actions { display: grid; gap: var(--pf-space-2); }
.pf-deal__actions .pf-btn { padding: 0 12px; }
.pf-deal__example { color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-deals__foot { padding: var(--pf-space-4); }
.pf-deal-notify { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--pf-space-6); align-items: center; }
.pf-deal-notify form { display: flex; flex-wrap: wrap; gap: var(--pf-space-2); }
.pf-deal-notify .pf-input { flex: 1 1 220px; }
@media (max-width: 1100px) {
  .pf-deals { --pf-deal-cols: 1fr; }
  .pf-deals__labels { display: none; }
  .pf-deal { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "firm offer" "code code" "term term" "act act"; gap: var(--pf-space-3) var(--pf-space-4); padding: var(--pf-space-4) 0; }
  .pf-deal > .pf-firm__identity { grid-area: firm; }
  .pf-deal__offer { grid-area: offer; align-items: flex-end; text-align: right; }
  .pf-deal__price { justify-content: flex-end; }
  .pf-deal__code { grid-area: code; }
  .pf-deal__code .pf-code { display: flex; }
  .pf-deal__code .pf-code__value { flex: 1; }
  .pf-deal__term { grid-area: term; grid-template-columns: 1fr 1fr; gap: 2px var(--pf-space-4); }
  .pf-deal__actions { grid-area: act; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) { .pf-deal-notify { grid-template-columns: 1fr; gap: var(--pf-space-4); } }

.pf-pricechart { margin: 0; padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-bg); }
.pf-pricechart__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--pf-space-2) var(--pf-space-4); margin-bottom: var(--pf-space-4); }
.pf-pricechart__title { color: var(--pf-text); font-weight: var(--pf-fw-semibold); }
.pf-pricechart__legend { display: flex; flex-wrap: wrap; gap: var(--pf-space-4); color: var(--pf-text-2); font-size: var(--pf-fs-meta); }
.pf-pricechart__legend i { display: inline-block; width: 18px; height: 0; margin-right: 6px; vertical-align: middle; border-top: 2px solid var(--pf-text-3); }
.pf-pricechart__legend i.is-after { border-top-color: var(--pf-action); }
.pf-pricechart__scroll { overflow-x: auto; margin-inline: calc(var(--pf-space-5) * -1); padding-inline: var(--pf-space-5); }
.pf-pricechart svg { display: block; width: 100%; min-width: 520px; height: auto; overflow: visible; }
.pf-pricechart__grid { stroke: var(--pf-line); stroke-width: 1; }
.pf-pricechart__label { fill: var(--pf-text-3); font-size: 12px; font-family: var(--pf-font-num, inherit); }
.pf-pricechart__list { fill: none; stroke: var(--pf-text-3); stroke-width: 2; stroke-dasharray: 5 4; }
.pf-pricechart__after { fill: none; stroke: var(--pf-action); stroke-width: 2.5; stroke-linejoin: round; }
.pf-pricechart__dot { fill: var(--pf-bg); stroke: var(--pf-action); stroke-width: 2.5; }
.pf-pricechart__dot.is-now { fill: var(--pf-action); }
.pf-pricechart__val { fill: var(--pf-text); font-size: 12px; font-weight: 600; }
.pf-pricechart figcaption { margin-top: var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-deal-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: var(--pf-space-6); align-items: start; }
.pf-deal-hero__main { display: grid; gap: var(--pf-space-4); }
.pf-status { display: inline-flex; align-items: center; gap: 6px; font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pf-text-3); }
.pf-status--active { color: var(--pf-positive); }
.pf-status--active::before { background: var(--pf-positive); }
@media (max-width: 900px) { .pf-deal-hero { grid-template-columns: 1fr; } }

/* K40 (mu-plugin pf-kody): sekcja kodów partnerskich bez kolumny „Zniżka”, szersza kolumna kodu */
#kody-partnerskie .pf-deals { --pf-deal-cols: minmax(0, 1fr) minmax(240px, 1fr) minmax(0, 1.3fr) 150px; }
#kody .pf-deals { --pf-deal-cols: minmax(0, 1fr) minmax(0, .6fr) minmax(250px, 1.2fr) minmax(0, 1fr) 150px; }
@media (max-width: 760px) { #kody-partnerskie .pf-deal { grid-template-areas: "firm firm" "code code" "term term" "act act"; } }

/* X3: box promocji na stronie „Kod rabatowy <firma>” stoi w treści strony (.pf-content) — marginesy jak w recenzji */
.pf-content .pf-promo h3 { margin: 0 0 4px; }
.pf-content .pf-promo > div > :last-child { margin-bottom: 0; }
.pf-content .pf-promo p { margin-bottom: 0; }
.pf-content .pf-promo p.pf-after { margin-top: 16px; }

/* Hub kodów v2 (11.11): kolumna firmy bez łamania słów, rynek i PropIndeks w osobnych liniach, pas „Największe zniżki dziś”, sortowanie */
#kody .pf-deals { --pf-deal-cols: minmax(170px, 1.1fr) 72px minmax(200px, 1.4fr) 124px; }
@media (min-width: 1101px) {   /* źródło i termin pod kodem: 4 kolumny mieszczą się w kolumnie treści obok panelu bocznego */
  #kody .pf-deal { grid-template-areas: "firm offer code act" "firm offer term act"; row-gap: var(--pf-space-2); }
  #kody .pf-deal > .pf-firm__identity { grid-area: firm; } #kody .pf-deal__offer { grid-area: offer; } #kody .pf-deal__code { grid-area: code; align-self: end; }
  #kody .pf-deal__term { grid-area: term; align-self: start; } #kody .pf-deal__actions { grid-area: act; }
  #kody .pf-deal__code .pf-code { display: flex; } #kody .pf-deal__code .pf-code__value { flex: 1; min-width: 0; overflow-wrap: anywhere; }
}
#kody .pf-firm__identity { min-width: 0; }
#kody .pf-firm__name { overflow-wrap: normal; word-break: normal; hyphens: manual; }
#kody .pf-firm__sub { display: block; white-space: nowrap; }
.pf-deal__more { font-size: var(--pf-fs-meta); text-align: center; }
.pf-kody-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--pf-space-3); margin-bottom: var(--pf-space-4); }
.pf-kody-bar .pf-tabs { margin: 0; }
.pf-kody-sort { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-2); }
.pf-kody-sort__label { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-kody-note { color: var(--pf-text-2); font-size: var(--pf-fs-meta); margin: 0 0 var(--pf-space-3); }
.pf-kody-top { margin: 0 0 var(--pf-space-6); }
.pf-kody-top__h { font-size: var(--pf-fs-h4); margin: 0 0 var(--pf-space-3); }
.pf-content .pf-kody-top__list, .pf-kody-top__list { padding-left: 0; margin-left: 0; }
.pf-kody-top__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pf-space-3); list-style: none; margin: 0; padding: 0; }
.pf-kody-top__item a { display: grid; gap: 4px; height: 100%; padding: var(--pf-space-4); border: 1px solid var(--pf-line); border-radius: var(--pf-radius, 8px); background: var(--pf-surface); color: var(--pf-text); text-decoration: none; }
.pf-kody-top__item a:hover { border-color: var(--pf-accent, currentColor); }
.pf-kody-top__firm { font-weight: var(--pf-fw-semibold); }
.pf-kody-top__code { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-family: var(--pf-font-mono, monospace); }
@media (max-width: 700px) { .pf-kody-top__list { grid-template-columns: 1fr; } }
