/*
 * Studfolio · Theme B — katalogi i karty szczegółów (0.89.4).
 * Reguły są przypięte do klasy strony na <body> (page-<endpoint>), bo szablony
 * katalogów używają ogólnych nazw klas (.block, .badge, .set, .color …).
 * Zmienia wyłącznie wygląd: tła, obramowania i kolory tekstu w obu motywach.
 */

/* ---------- wspólne: szerokość i panele „klocki” ---------- */
:is(.page-parts_catalog_detail .detail, .page-minifig_catalog_detail .mfd-shell, .page-parts_catalog_sets .catalog-sets) {
  max-width: 1360px !important;
}

:is(
  .page-parts_catalog_detail :is(.detail-top, .block),
  .page-minifig_catalog_detail :is(.mfd-hero, .mfd-section),
  .page-parts_catalog_sets :is(.sets-head, .set-card),
  .page-parts_catalog_categories .category-tile
) {
  border: 2px solid var(--b-brick-edge) !important;
  border-radius: 16px !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: inset 0 -6px 0 var(--b-brick-edge) !important;
}

/* panele wewnętrzne (studzienki) */
:is(
  .page-parts_catalog_detail :is(.price-item, .set-panel, .relationship-panel, .owned-set-card, .related-card, .color, .catalog-loading-card),
  .page-minifig_catalog_detail :is(.mfd-id-row, .mfd-source, .mfd-description, .mfd-inventory-source, .mfd-role, .mfd-source-tag),
  .page-parts_catalog_categories :is(.category-layout-note, .category-local-badge, .category-empty),
  .page-parts_catalog_sets :is(.tabs a, .pagination a, .pagination span)
) {
  border-color: var(--ui-line) !important;
  background: var(--ui-card-soft) !important;
  color: var(--ui-ink) !important;
}

/* 0.90.0: karty zestawów i lista „w moich zestawach” na karcie klocka */
html[data-ui-theme] .page-parts_catalog_detail :is(.set, .owned-set-list) {
  border: 2px solid var(--b-brick-edge) !important;
  border-radius: 12px !important;
  background: var(--ui-card-soft) !important;
  color: var(--ui-ink) !important;
}
html[data-ui-theme] .page-parts_catalog_detail .quantity { border-radius: 7px !important; background: var(--ui-card) !important; color: var(--ui-ink) !important; }

/* obrazy produktów zostają na jasnym tle, ale w zaokrąglonej studzience */
:is(
  .page-parts_catalog_detail :is(.detail-img, .set-image, .owned-set-image, .related-image),
  .page-minifig_catalog_detail :is(.mfd-image, .mfd-part-image, .mfd-part-missing),
  .page-parts_catalog_sets .set-image
) {
  border-radius: 12px !important;
  background: #FFFFFF !important;
}
html:not([data-ui-theme="light"]) :is(.page-parts_catalog_detail .detail-img, .page-minifig_catalog_detail .mfd-image) { background: #F3F5F8 !important; }

/* typografia: nagłówki, tekst i podpisy czytelne w obu motywach */
:is(.page-parts_catalog_detail, .page-minifig_catalog_detail, .page-parts_catalog_sets, .page-parts_catalog_categories) .main-content :is(h1, h2, h3, h4) {
  color: var(--ui-ink) !important;
  font-family: var(--b-font-display);
}
:is(.page-parts_catalog_detail, .page-minifig_catalog_detail, .page-parts_catalog_sets, .page-parts_catalog_categories) .main-content :is(h1) { font-weight: 800; }
.page-parts_catalog_detail :is(.muted, .related-text, .set-panel p, .block > p, .price-item span, .quantity, .owned-set-list summary, .color-overview summary),
.page-minifig_catalog_detail :is(.mfd-help, .mfd-map-note, .mfd-empty-source, .mfd-source-label, .mfd-description, .mfd-id-row, .mfd-back),
.page-parts_catalog_sets :is(.set-card p, .quantity),
.page-parts_catalog_categories :is(.category-hero p, .category-tile-meta, .category-tile-foot, .category-layout-note) {
  color: var(--ui-muted) !important;
}
.page-parts_catalog_detail :is(.price-item b, .related-text b, .detail h1, .collection-state b),
.page-minifig_catalog_detail :is(.mfd-id-row b, .mfd-section h2, .mfd-inventory-source h3),
.page-parts_catalog_categories .category-tile-name {
  color: var(--ui-ink) !important;
}
.page-parts_catalog_detail .related-card,
.page-parts_catalog_detail .reference-links a,
.page-minifig_catalog_detail .mfd-back,
.page-parts_catalog_categories .category-back { color: var(--ui-ink) !important; }
.page-parts_catalog_detail .reference-links a { border: 2px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-card-soft) !important; }
.page-parts_catalog_detail .reference-links a:hover { border-color: color-mix(in srgb, var(--b-yellow) 70%, var(--ui-line)) !important; }
.page-parts_catalog_detail .badge { border-radius: 8px !important; background: var(--ui-card-soft) !important; color: var(--ui-ink) !important; border: 1px solid var(--ui-line) !important; }

/* kolory klocka: kafelki kolorów jak małe płytki */
.page-parts_catalog_detail .color { border: 2px solid var(--ui-line) !important; border-radius: 10px !important; }
.page-parts_catalog_detail .color.active { border-color: var(--b-yellow) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--b-yellow) 25%, transparent) !important; }

/* stany i komunikaty */
.page-parts_catalog_detail .collection-state { border-radius: 10px !important; background: color-mix(in srgb, var(--ui-positive) 14%, var(--ui-card)) !important; color: var(--ui-ink) !important; }
.page-parts_catalog_detail .collection-state.missing { background: color-mix(in srgb, var(--ui-warning) 14%, var(--ui-card)) !important; }
.page-parts_catalog_detail :is(.notice, .manual-image-notice) { border-radius: 10px !important; background: color-mix(in srgb, var(--b-blue) 12%, var(--ui-card)) !important; color: var(--ui-ink) !important; }
.page-parts_catalog_detail :is(.success) { border-radius: 10px !important; background: color-mix(in srgb, var(--ui-positive) 14%, var(--ui-card)) !important; color: var(--ui-ink) !important; }
.page-parts_catalog_detail :is(.error, .manual-image-notice.error) { border-radius: 10px !important; background: color-mix(in srgb, var(--ui-negative) 14%, var(--ui-card)) !important; color: var(--ui-ink) !important; }

/* tabele */
:is(.page-parts_catalog_detail .color-overview-table, .page-minifig_catalog_detail .mfd-table) { background: transparent !important; color: var(--ui-ink) !important; box-shadow: none !important; border: 0 !important; }
:is(.page-parts_catalog_detail .color-overview-table, .page-minifig_catalog_detail .mfd-table) th { background: var(--ui-card-soft) !important; color: var(--ui-muted) !important; }
:is(.page-parts_catalog_detail .color-overview-table, .page-minifig_catalog_detail .mfd-table) :is(td, th) { border-color: var(--ui-line) !important; color: var(--ui-ink); }
.page-parts_catalog_detail .color-overview-table tr.selected td { background: color-mix(in srgb, var(--b-yellow) 14%, transparent) !important; }

/* narzędzia administratora: dyskretne, przerywane, czerwone jak przycisk „Admin” */
.page-parts_catalog_detail .manual-image-form,
.page-minifig_catalog_detail .mfd-admin-open {
  border: 2px dashed var(--b-red) !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: var(--b-red-text) !important;
}
.page-minifig_catalog_detail .mfd-admin-open { padding: 8px 12px !important; font-weight: 700 !important; box-shadow: none !important; }
/* Powtórzona klasa = wyższa waga niż ogólny styl przycisków z theme-b.css (żółty/akcent). */
html[data-ui-theme] .page-minifig_catalog_detail .main-content .mfd-admin-open.mfd-admin-open.mfd-admin-open.mfd-admin-open {
  border: 2px dashed var(--b-red) !important;
  background: transparent !important;
  color: var(--b-red-text) !important;
  box-shadow: none !important;
}
/* nagłówki tabel inwentarza miały jasny gradient */
.page-minifig_catalog_detail .mfd-inventory-source > header { background: var(--ui-card-soft) !important; border-color: var(--ui-line) !important; color: var(--ui-ink) !important; }
.page-minifig_catalog_detail .mfd-inventory-source > header :is(h3, p, small) { color: inherit !important; }
.page-minifig_catalog_detail .mfd-source b { color: var(--b-blue) !important; }
.page-minifig_catalog_detail :is(.mfd-admin-dialog, .mfd-admin-inner) { border-radius: 18px !important; background: var(--ui-card) !important; color: var(--ui-ink) !important; border-color: var(--b-brick-edge) !important; }
.page-minifig_catalog_detail .mfd-admin-dialog::backdrop { background: rgba(6, 10, 16, .72); }
.page-minifig_catalog_detail .mfd-admin-head h2 { color: var(--ui-ink) !important; }

/* lista kategorii klocków */
.page-parts_catalog_categories .category-tile:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--b-yellow) 70%, var(--b-brick-edge)) !important; }
.page-parts_catalog_categories .category-scope a.active,
.page-parts_catalog_sets .tabs a.active,
.page-parts_catalog_sets .pagination .active { background: var(--b-yellow) !important; color: var(--b-yellow-ink) !important; border-color: var(--b-yellow) !important; }
.page-parts_catalog_categories .category-search :is(input, button) { border-radius: 10px !important; }

/* listy katalogów: karty z białą studzienką na obraz */
/* html[data-ui-theme] — musi wygrać z theme-v2 (tam .part-image ma szare tło karty) */
html[data-ui-theme] :is(.page-parts_catalog .part-image, .page-minifig_catalog .mf-image) { border-radius: 12px !important; background: #FFFFFF !important; border-color: transparent !important; }
html[data-ui-theme]:not([data-ui-theme="light"]) .page-minifig_catalog .mf-image { background: #F3F5F8 !important; }
.page-parts_catalog .catalog-empty,
.page-minifig_catalog .mf-empty { border-radius: 14px !important; background: var(--ui-card-soft) !important; color: var(--ui-muted) !important; border: 2px dashed var(--ui-line) !important; }
.page-sets_catalog .main-content :is(h1, h2) { font-family: var(--b-font-display); }

/* ---------- 0.89.6: baza zestawów — karta jak pudełko zestawu ---------- */
.page-sets_catalog .sets-db-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; max-width: 420px; }
.page-sets_catalog .sets-db-stats-compact { margin: 0 !important; justify-content: flex-end; gap: 6px !important; }
.page-sets_catalog .sets-db-stats-compact .sets-db-stat { min-width: 0 !important; padding: 5px 9px !important; border-radius: 9px !important; background: var(--ui-card-soft) !important; }
.page-sets_catalog .sets-db-stats-compact .sets-db-stat b { display: inline !important; font-size: 13px !important; }
.page-sets_catalog .sets-db-stats-compact .sets-db-stat span { margin-left: 4px; font-size: 10px !important; }
.page-sets_catalog .sets-db-grid { gap: 26px 22px !important; }
html[data-ui-theme] .page-sets_catalog .set-db-card.set-db-box {
  --box-dark: color-mix(in srgb, var(--box-color) 62%, black);
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin: 0 8px 8px 0;
  border: 2px solid var(--box-dark) !important;
  border-radius: 10px !important;
  background: var(--ui-card) !important;
  /* boczna ścianka pudełka: przesunięty, ciemniejszy kolor wieczka */
  box-shadow: 6px 6px 0 var(--box-dark), 6px 6px 0 2px color-mix(in srgb, var(--box-dark) 70%, black) !important;
  transition: transform .15s ease, box-shadow .15s ease;
}
html[data-ui-theme] .page-sets_catalog .set-db-card.set-db-box:hover { transform: translate(-2px, -2px); box-shadow: 9px 9px 0 var(--box-dark), 9px 9px 0 2px color-mix(in srgb, var(--box-dark) 70%, black) !important; }
.page-sets_catalog .set-db-lid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 46px;
  padding: 0 12px;
  color: #FFFFFF;
  background:
    linear-gradient(112deg, transparent 0 58%, rgba(255, 255, 255, .16) 58% 63%, transparent 63%),
    linear-gradient(180deg, color-mix(in srgb, var(--box-color) 82%, white) 0%, var(--box-color) 55%, var(--box-dark) 100%);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.page-sets_catalog .set-db-lid-theme { min-width: 0; max-width: 64%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 800 12.5px var(--b-font-display); letter-spacing: .03em; text-transform: uppercase; }
.page-sets_catalog .set-db-lid-theme img { display: block; max-height: 22px; max-width: 120px; padding: 3px 6px; border-radius: 6px; background: #FFFFFF; object-fit: contain; }
.page-sets_catalog .set-db-lid-num { flex: 0 0 auto; padding: 2px 8px; border-radius: 7px; background: rgba(0, 0, 0, .22); font: 800 17px var(--b-font-display); letter-spacing: .01em; }
.page-sets_catalog .set-db-box .set-db-picture { background: #FFFFFF !important; border-bottom: 2px solid color-mix(in srgb, var(--box-color) 30%, var(--ui-line)); }
.page-sets_catalog .set-db-box .set-db-name { color: var(--ui-ink) !important; font-family: var(--b-font-display); }
.page-sets_catalog .set-db-box .set-db-pill { border-radius: 7px !important; }

/* ---------- 0.89.6: karty klocków i minifigurek jak klocki (wypustki + pas u góry) ---------- */
html[data-ui-theme] :is(.page-parts_catalog .part-card, .page-minifig_catalog .mf-card, .page-parts_catalog_sets .set-card, .page-parts_catalog_categories .category-tile) {
  --sf-tab: color-mix(in srgb, var(--ui-muted) 38%, var(--ui-card));
  position: relative;
  overflow: visible !important;
  margin-top: 10px;
  border-top: 8px solid var(--sf-tab) !important;
}
html[data-ui-theme] :is(.page-parts_catalog .part-card, .page-minifig_catalog .mf-card, .page-parts_catalog_sets .set-card, .page-parts_catalog_categories .category-tile)::before {
  content: "";
  position: absolute;
  top: -17px;
  left: 16px;
  width: 26px;
  height: 10px;
  border-radius: 7px 7px 0 0;
  background: var(--sf-tab);
  box-shadow: 40px 0 0 var(--sf-tab), 80px 0 0 var(--sf-tab);
  pointer-events: none;
}
html[data-ui-theme] :is(.page-parts_catalog .part-card, .page-minifig_catalog .mf-card, .page-parts_catalog_sets .set-card, .page-parts_catalog_categories .category-tile):hover { --sf-tab: var(--b-yellow); }
:is(.page-parts_catalog .part-image, .page-minifig_catalog .mf-image) { overflow: hidden; }

/* zestaw globalny: galeria i przyciski */
.page-sets_catalog_detail .global-gallery-main { border-radius: 16px !important; }
.page-sets_catalog_detail .global-gallery-thumb { border-radius: 10px !important; border: 2px solid var(--ui-line) !important; }
.page-sets_catalog_detail .global-gallery-thumb.is-active { border-color: var(--b-yellow) !important; }
.page-sets_catalog_detail .action-status { border-radius: 10px !important; background: var(--ui-card-soft) !important; color: var(--ui-ink) !important; }
