/* Rules targeting JS-injected elements or JS-driven state that cannot be expressed as inline Tailwind */

/* On plan-mieszkania, #katalog is nested inside #inne-mieszkania > .container.px-4 which
   already provides the page-level 17px padding. The inner .containter.px-4 duplicates it,
   pushing content 34px from the left but only 17px from the right. Zero the inner .containter
   padding so tiles sit symmetrically — matching the main page (34px each side from the
   outer container + katalog__list px-4). */
#inne-mieszkania #katalog .containter {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Fix: grid columns must use minmax(0,1fr) so they can shrink below the intrinsic content width
   of tiles (driven by the floor plan image). This corrects the off-center appearance on mobile
   where tiles overflowed the .katalog__list container to the right. */
[data-typ='mieszkanie'][data-uklad='kafelki'] .katalog {
  grid-template-columns: minmax(0, 1fr) !important;
}

@media (width >= 768px) {
  [data-typ='mieszkanie'][data-uklad='kafelki'] .katalog {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (width >= 1200px) {
  [data-typ='mieszkanie'][data-uklad='kafelki'] .katalog {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Constrain grid items to their track width. The flat's intrinsic min-content size (driven by
   the floor plan image) would otherwise force the item wider than its grid track. */
[data-typ='mieszkanie'][data-uklad='kafelki'] .katalog .flat {
  min-width: 0;
  width: 100% !important;
  box-sizing: border-box;
}

[data-typ='mieszkanie'][data-uklad='kafelki'] .katalog .flat .plan {
  min-width: 0;
  overflow: hidden;
}

[data-typ='mieszkanie'][data-uklad='kafelki'] .katalog .flat .plan img {
  width: 100%;
  height: 230px;
  object-fit: contain;
}

#katalog[data-uklad='lista'] .cont-mieszkanie .katalog {
  display: none !important;
}

#katalog[data-uklad='lista'] .katalog-list-table tbody tr {
  /* cursor: auto; */
}

#katalog[data-uklad='lista'] .katalog-list-table tbody tr:hover td {
  /* background: #f7f9fc; */
}

#katalog[data-uklad='lista'] .katalog-list-table td {
  padding: 20px 16px;
  border-bottom: 1px solid #838ab5;
  color: #283583;
  font-family: Lato, sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 21px;
  text-align: left;
  vertical-align: middle;
}

#katalog[data-uklad='lista'] .katalog-list-table td.cena {
  white-space: nowrap;
}

#katalog[data-uklad='lista'] .katalog-list-table td.cena .st {
  display: inline-block;
  vertical-align: middle;
  margin-right: 4px;
}

#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp {
  display: inline-block;
  vertical-align: middle;
}

#katalog[data-uklad='lista']
  .katalog-list-table
  tr[data-promocja]:not([data-promocja='0'])
  td.cena
  .st,
#katalog[data-uklad='lista']
  .katalog-list-table
  tr[data-promocja]:not([data-promocja='0'])
  td.cena
  .st
  .format-cena,
#katalog[data-uklad='lista']
  .katalog-list-table
  tr[data-promocja]:not([data-promocja='0'])
  td.cena
  .st
  .ust-cena-lc,
#katalog[data-uklad='lista']
  .katalog-list-table
  tr[data-promocja]:not([data-promocja='0'])
  td.cena
  .st
  .jedn {
  color: #76b82a !important;
  font-family: Lato, sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 21px;
}

#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp,
#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp .format-cena,
#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp .ust-cena-lc,
#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp .jedn {
  color: #838ab5 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: line-through;
  line-height: 18px;
}

#katalog[data-uklad='lista'] .katalog-list-table td.cena .pp .format-cena {
  display: inline;
  vertical-align: middle;
}

#katalog[data-uklad='lista'] .katalog-list-table td.status-wolny {
  color: #76b82a;
  font-weight: 700;
}

#katalog[data-uklad='lista'] .katalog-list-table td.status-other {
  color: #838ab5;
  font-weight: 700;
}

/* table-scroll-wrap: touch/scrollbar properties not expressible as Tailwind */
@media (max-width: 991px) {
  #katalog[data-uklad='lista'] .table-scroll-wrap {
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: none;
  }

  #katalog[data-uklad='lista'] .table-scroll-wrap:active {
    cursor: grabbing;
  }

  #katalog[data-uklad='lista'] .table-scroll-wrap::-webkit-scrollbar {
    display: none;
  }

  #katalog[data-uklad='lista'] .table-scroll-arrow[hidden] {
    display: none !important;
  }
}

/* JS-driven open state: .open class toggled by JS */
#katalog .katalog-filtry__cena .modal-to-toggle.open #filterContentCena,
#katalog .katalog-filtry__powierzchnia .modal-to-toggle.open #filterContentPow {
  display: block !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  width: 100% !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Kafelki promo rules — complex attribute-state selectors */
[data-typ='mieszkanie'][data-uklad='kafelki'] [data-promocja]:not([data-promocja='0']) .cena .cenac,
[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam {
  align-items: flex-start !important;
}

[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenac
  .st
  .format-cena,
[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  .st
  .format-cena {
  color: #76b82a !important;
}

[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenac
  .pp,
[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenac
  .pp
  .format-cena {
  color: #838ab5 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-align: left;
  justify-content: flex-start;
  width: 100%;
}

[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  p {
  text-align: left;
  width: 100%;
}

[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  .cenam__values {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  .cenam__values
  .pp,
[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  .pp,
[data-typ='mieszkanie'][data-uklad='kafelki']
  [data-promocja]:not([data-promocja='0'])
  .cena
  .cenam
  .pp
  .format-cena {
  display: flex !important;
  color: #838ab5 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: line-through;
}

/* ZASTOSUJ button: reversed colors (filled normal, outline on hover) */
.filtry-btn--set {
  background: #76b82a !important;
  color: #fff !important;
  border: 1px solid #76b82a !important;
}
.filtry-btn--set:hover,
.filtry-btn--set:focus {
  background: #fff !important;
  color: #76b82a !important;
  border: 1px solid #76b82a !important;
}

.spravia__button.pokaz-katalog-wiecej-lista {
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   #historia-cen — styled to match #dodatkowe table look
   ========================================================= */

/* White table background, remove old odd-row grey */
#historia-cen .tabprod .table {
  background: #fff;
}

/* Remove alternating background from base rules */
#historia-cen .tabprod .table .tr .td,
#historia-cen .tabprod .table .tr:nth-child(odd) .td {
  background: transparent !important;
}

/* Header cells (th divs) */
#historia-cen .tabprod .table .th {
  padding: 0 16px 14px !important;
  color: #283583 !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 21px !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid #838ab5 !important;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

/* Body cells (td divs) */
#historia-cen .tabprod .table .td {
  padding: 20px 16px !important;
  color: #283583 !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 21px !important;
  border-bottom: 1px solid #838ab5 !important;
  vertical-align: middle;
}

/* Preserve first-child left padding override from base */
#historia-cen .tabprod .table .td:first-child {
  padding-left: 16px !important;
}

/* Expanded history rows: softer separator to match context */
#historia-cen .table .tr.open .dn-h {
  border-top: 1px solid #838ab5 !important;
  margin-top: 8px !important;
  padding-top: 8px !important;
}
