/**
 * PhoenixB2B (SPJTRADE B2B) — FINALNY POLISH PANELU KLIENTA (warstwa rozstrzygająca).
 *
 * v2.12.63 — „client-panel-ui-final-polish". Powód istnienia: część poprawek z
 * 2.12.62 PRZEGRYWAŁA kaskadę. Bundle panelu ma wiele „finalnych" generacji reguł
 * koszyka w nagłówku o specyficzności do (0,4,0) z !important, a arkusze sklepu
 * (shop.css / shop-v22.css / product-card.css / pb2b-listing.css) ładują się PO
 * pliku 2.12.62 i nadpisywały m.in. „Dodaj do listy". Dlatego ten plik:
 *   1) jest ładowany JAKO OSTATNI (zależność od `phoenix-b2b-listing` /
 *      `phoenix-b2b-product-card` w class-phoenix-b2b-assets.php), oraz
 *   2) używa wyższej specyficzności (prefiks `.phoenix-b2b-panel.pb2b-app`, a dla
 *      koszyka pełnej ścieżki `.pb2b-app-header .pb2b-topbar-cart …` = 0,5,0) i
 *      `!important`, więc deterministycznie wygrywa nad wszystkimi generacjami.
 *
 * Zakres: WYŁĄCZNIE panel klienta (`.phoenix-b2b-panel.pb2b-app`). Nie dotyka
 * panelu admina, publicznych podstron gościa, logiki Sellasist, publicznego sklepu
 * ani checkoutu WooCommerce poza koszykiem panelu.
 *
 * @package PhoenixB2B
 * @since   2.12.63
 */

/* =====================================================================
 * #1 — MOBILE MENU KLIENTA: karta konta za wysoko / pod statusbarem.
 * Przyczyna: 2.12.62 dodało sidebarowi padding-top/boki, co kłóciło się z
 * intencją panel-v3-9/10 (sidebar full-bleed, hero sam trzyma górny odstęp) i
 * podwajało safe-area. Tu PRZYWRACAMY full-bleed i ustawiamy odstęp górny na
 * samym hero — z sensownym minimum, by konto było NIŻEJ także w przeglądarce
 * (gdzie env(safe-area-inset-top)=0). PC bez zmian (ten blok to tylko mobile).
 * ===================================================================== */
@media (max-width: 1199.98px) {
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar {
		padding-top: 0 !important;        /* górny odstęp trzyma hero (niżej) */
		padding-left: 0 !important;       /* full-bleed jak w intencji v3-9/10 */
		padding-right: 0 !important;
		gap: 0 !important;
		overflow-x: hidden !important;    /* brak poziomego scrolla */
		overflow-y: auto !important;      /* normalny scroll, bez ucinania */
		-webkit-overflow-scrolling: touch;
	}
	/* Karta konta zaczyna się NIŻEJ i pewnie pod statusbarem.
	   max(): w standalone PWA = env+22, w przeglądarce min. 58 px. */
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero {
		padding-top: max(calc(env(safe-area-inset-top, 0px) + 22px), 58px) !important;
	}
	/* X zamykania: wyraźnie poniżej statusbara, nie nachodzi na avatar. */
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-sidebar-topbar {
		top: max(calc(env(safe-area-inset-top, 0px) + 12px), 14px) !important;
	}
	/* Dół menu: bezpieczny padding (nawigacja + stopka). */
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-nav-grouped,
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-nav {
		padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
	}
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-sidebar-footer {
		padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
	}
	/* Nic w menu nie powoduje poziomego przewijania. */
	.phoenix-b2b-panel.pb2b-app .pb2b-sidebar * { max-width: 100%; }
}

/* =====================================================================
 * #2 — KOSZYK W NAGŁÓWKU: „38 poz." nachodzi na kwotę.
 * W bundlu jest ~15 sprzecznych generacji (BASE / 768 / 1199 / 1200 / 359),
 * część z (0,4,0) !important — biją reguły 2.12.62 (0,2,0). Tu definiujemy
 * CAŁY layout deterministycznie ścieżką (0,5,0) `.pb2b-app-header
 * .pb2b-topbar-cart …` + !important. Markup: <header class="pb2b-topbar
 * pb2b-app-header">, koszyk = ikona + badge(liczba) + meta(count + total).
 *
 * Kryterium: ikona | liczba | kwota — bez nachodzenia, kwota nigdy ucinana.
 *   • PC (≥1200): ikona + „38 poz." + KWOTA w jednym rzędzie, z gap.
 *   • Mobile (≤1199): ikona + KWOTA, a liczba jako mały badge w rogu ikony.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-shrink: 0 !important;
	min-width: 0 !important;
	white-space: nowrap !important;
	overflow: visible !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-ico {
	flex: 0 0 auto !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-meta {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: baseline !important;
	gap: 7px !important;
	min-width: 0 !important;
	max-width: none !important;
	overflow: visible !important;
	white-space: nowrap !important;
}
/* KWOTA — priorytet, nigdy ucinana; bez „·"/„poz." doklejanych przez stare reguły. */
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-total {
	display: inline-block !important;
	flex: 0 0 auto !important;
	order: 2 !important;
	white-space: nowrap !important;
	overflow: visible !important;
	max-width: none !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	letter-spacing: -.01em !important;
	color: var(--pb2b-text-strong) !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-total::before { content: none !important; margin: 0 !important; }
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-total * { color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-total:empty { display: none !important; }

/* PC (≥1200): pokaż „38 poz." obok kwoty, ukryj rogowy badge. */
@media (min-width: 1200px) {
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-count {
		display: inline-block !important;
		flex: 0 0 auto !important;
		order: 1 !important;
		font-size: 11px !important;
		font-weight: 600 !important;
		color: var(--pb2b-text-muted) !important;
		white-space: nowrap !important;
	}
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-count::after {
		content: " poz." !important;
		font-weight: 600 !important;
	}
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-badge {
		display: none !important;
	}
}

/* Mobile (≤1199): ukryj inline-liczbę, pokaż rogowy badge; zostaje ikona+badge+kwota. */
@media (max-width: 1199.98px) {
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-count { display: none !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-count::after { content: none !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart .pb2b-topbar-cart-badge {
		display: inline-flex !important;
		position: absolute !important;
		top: -7px !important; right: -7px !important; left: auto !important; bottom: auto !important;
		margin: 0 !important; transform: none !important;
		min-width: 18px !important; height: 18px !important; padding: 0 5px !important;
		align-items: center !important; justify-content: center !important;
		border-radius: 999px !important;
		background: var(--pb2b-primary) !important;
		color: var(--pb2b-primary-contrast, #fff) !important;
		border: 2px solid var(--pb2b-bg-1) !important;
		box-sizing: border-box !important;
		font-size: 10px !important; font-weight: 800 !important; line-height: 1 !important;
	}
}
/* Pusty koszyk: badge + meta schowane (spójnie z is-empty). */
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart.is-empty .pb2b-topbar-cart-badge,
.phoenix-b2b-panel.pb2b-app .pb2b-app-header .pb2b-topbar-cart.is-empty .pb2b-topbar-cart-meta { display: none !important; }

/* =====================================================================
 * #3 — „Dodaj do listy" na kafelku produktu.
 * Klasa `.pb2b-card-list-select` żyje w shop.css, który ładuje się PO 2.12.62 →
 * nadpisywał. Tu (0,3,0) + !important + ładowanie ostatnie = wygrana. Mniejszy,
 * drugorzędny, jednolinijkowy, NIE zwiększa wysokości karty.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .pb2b-card-list-select,
.phoenix-b2b-panel.pb2b-app select.pb2b-list-select.pb2b-card-list-select {
	font-size: 11.5px !important;
	font-weight: 600 !important;
	height: 30px !important;
	min-height: 0 !important;
	padding: 0 24px 0 9px !important;
	line-height: 28px !important;
	border-radius: 8px !important;
	border: 1px solid var(--pb2b-border) !important;
	background-color: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	color: var(--pb2b-text-muted) !important;
	width: auto !important;
	max-width: 100% !important;
	background-position: right 7px center !important;
	background-size: 12px !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-card-list-select:hover {
	color: var(--pb2b-text) !important;
	border-color: var(--pb2b-border-strong) !important;
}

/* =====================================================================
 * #4 — ZAKŁADKA KOSZYK: ilości równe, czytelne, wyśrodkowane.
 * Stepper i kolumny definiujemy stanowczo (high spec + !important), osobno
 * desktop i mobile. Markup: .pb2b-stepper > .pb2b-stepper-btn / -input.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .pb2b-stepper {
	display: inline-flex !important;
	align-items: stretch !important;
	height: 40px !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	width: auto !important;
	max-width: 100% !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-stepper .pb2b-stepper-btn {
	width: 40px !important;
	flex: 0 0 40px !important;
	height: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: var(--pb2b-text) !important;
	background: transparent !important;
	border: 0 !important;
	cursor: pointer !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-stepper .pb2b-stepper-btn:hover { background: var(--pb2b-bg-4) !important; color: var(--pb2b-primary) !important; }
.phoenix-b2b-panel.pb2b-app .pb2b-stepper .pb2b-stepper-input {
	width: 52px !important;
	flex: 0 0 52px !important;
	min-width: 0 !important;
	height: auto !important;
	text-align: center !important;
	font-variant-numeric: tabular-nums !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	color: var(--pb2b-text) !important;
	background: var(--pb2b-bg-1, transparent) !important;
	border: 0 !important;
	border-left: 1px solid var(--pb2b-border) !important;
	border-right: 1px solid var(--pb2b-border) !important;
	border-radius: 0 !important;
	padding: 0 4px !important;
	-moz-appearance: textfield !important;
	appearance: textfield !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-stepper .pb2b-stepper-input::-webkit-outer-spin-button,
.phoenix-b2b-panel.pb2b-app .pb2b-stepper .pb2b-stepper-input::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0 !important; }

/* Desktop: kolumny linii koszyka wyrównane; ceny/sumy do prawej. */
@media (min-width: 1200px) {
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-line-qty { display: flex !important; align-items: center !important; justify-content: center !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-line-price,
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-line-value { text-align: right !important; font-variant-numeric: tabular-nums !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-line-value > strong { font-size: 15px !important; }
}
/* Mobile: brak poziomego scrolla, stepper i wartości w karcie. */
@media (max-width: 1199.98px) {
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-list { overflow-x: hidden !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-cart-line-qty { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 10px !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-stepper { height: 38px !important; }
}

/* =====================================================================
 * #5 — KONTENERY: przyciski mniejsze, jednolinijkowe, równe; karta zwarta.
 * Przyciski to .pb2b-app-button(-sm) w .pb2b-ctr-tile-cta oraz .pb2b-ctr-fav-btn
 * / .pb2b-ctr-view-btn. High spec + !important + nowrap.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tile-cta {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	align-items: stretch !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tile-cta .pb2b-app-button {
	flex: 1 1 auto !important;
	min-height: 36px !important;
	height: auto !important;
	padding: 8px 12px !important;
	font-size: 12.5px !important;
	line-height: 1.1 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-product-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	align-items: center !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-fav-btn,
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-view-btn {
	min-height: 34px !important;
	height: auto !important;
	padding: 7px 11px !important;
	font-size: 12px !important;
	line-height: 1.1 !important;
	white-space: nowrap !important;
	border-radius: 9px !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tiles {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
	gap: 14px !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tile-body { padding: 14px !important; }
@media (min-width: 1200px) {
	/* PC: przyciski w JEDNYM rzędzie, dłuższe, ale wciąż jednolinijkowe. */
	.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tile-cta { flex-wrap: nowrap !important; }
	.phoenix-b2b-panel.pb2b-app .pb2b-ctr-tile-cta .pb2b-app-button { padding: 9px 16px !important; }
}

/* =====================================================================
 * #7 — BOX „Moje konto": 4 kafelki równe i czytelne (m.in. „Powiadomienia").
 * Na mobile układ trzyma panel-v3-9 (0,3,0 !important) — dorównujemy (0,5,0),
 * by tekst się mieścił i wysokości były równe. Na PC definiujemy 2×2 sami.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero .pb2b-side-account-actions {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 8px !important;
	align-items: stretch !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero .pb2b-side-account-link {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	gap: 6px !important;
	min-height: 62px !important;
	height: 100% !important;
	padding: 10px 6px !important;
	font-size: 11.5px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	white-space: normal !important;
	overflow-wrap: anywhere !important;
	border-radius: 12px !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero .pb2b-side-account-link-ico {
	width: 18px !important; height: 18px !important; flex: 0 0 18px !important;
}
.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero .pb2b-side-account-link-ico svg { width: 18px !important; height: 18px !important; }
/* Badge (np. liczba nieprzeczytanych) nie nachodzi na tekst kafelka. */
.phoenix-b2b-panel.pb2b-app .pb2b-sidebar .pb2b-side-account-hero .pb2b-side-account-link-badge {
	top: 6px !important; right: 6px !important; left: auto !important;
}

/* =====================================================================
 * #6 — IMPORT CSV i CENNIK CSV: finalny redesign (wzmocniony).
 * Markup shortcode'ów: wrapper `.phoenix-b2b-panel.phoenix-b2b-standalone`
 * (zagnieżdżony) → karta `.phoenix-b2b-csv-import/export.pb2b-card`. Konkurent
 * tła karty: `.phoenix-b2b-panel.phoenix-b2b-standalone .pb2b-card` (0,3,0).
 * Tu (0,4,0)+!important + ładowanie ostatnie. SOLIDNE tło = koniec
 * „przebijających" tekstów; spójność light/dark.
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-standalone {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-standalone .phoenix-b2b-csv-import.pb2b-card,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-standalone .phoenix-b2b-csv-export.pb2b-card {
	background: var(--pb2b-bg-1, var(--pb2b-surface-soft)) !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	color: var(--pb2b-text) !important;
	max-width: 720px !important;
	overflow: hidden !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-card-header,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-card-header {
	background: transparent !important;
	border-bottom: 1px solid var(--pb2b-border) !important;
	padding: 14px 16px !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-card-title,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-card-title { color: var(--pb2b-text) !important; font-size: 15px !important; margin: 0 !important; }
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-card-body,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-card-body { padding: 16px !important; background: transparent !important; }
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .description,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .phoenix-b2b-csv-export-desc,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-muted,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-muted { color: var(--pb2b-text-muted) !important; }
/* Pola formularza importu — natywne dla panelu. */
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import input[type="file"],
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import textarea,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-textarea-mono {
	width: 100% !important;
	box-sizing: border-box !important;
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 10px !important;
	color: var(--pb2b-text) !important;
	padding: 10px 12px !important;
	font-size: 13px !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import textarea,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-textarea-mono {
	min-height: 120px !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-paste summary,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import details > summary {
	cursor: pointer !important;
	color: var(--pb2b-primary) !important;
	font-weight: 600 !important;
	margin: 6px 0 !important;
	list-style: none !important;
}
/* Przyciski „adminowe" .button → przyciski panelu (oba widoki CSV). */
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .button,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	height: auto !important;
	min-height: 42px !important;
	padding: 10px 18px !important;
	border-radius: 11px !important;
	border: 1px solid var(--pb2b-border) !important;
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	color: var(--pb2b-text) !important;
	font-weight: 700 !important;
	font-size: 13.5px !important;
	line-height: 1.1 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .button-primary,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .phoenix-b2b-btn-primary,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-btn-primary {
	background: linear-gradient(135deg, var(--pb2b-primary), var(--pb2b-primary-2)) !important;
	border-color: transparent !important;
	color: #fff !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import .pb2b-form-actions,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-export .pb2b-form-actions {
	display: flex !important; flex-wrap: wrap !important; gap: 10px !important; margin-top: 14px !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-stats,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-result,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-errors {
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 10px !important;
	padding: 10px 12px !important;
	margin-top: 12px !important;
	color: var(--pb2b-text) !important;
}
/* Komunikaty/blokady/pustka — bez „obcych" jasnych warstw. */
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-notice {
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 12px !important;
	padding: 12px 14px !important;
	color: var(--pb2b-text) !important;
}
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-notice-info { border-color: rgba(59,130,246,.45) !important; background: rgba(59,130,246,.10) !important; }
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-notice-warning { border-color: rgba(245,158,11,.5) !important; background: rgba(245,158,11,.10) !important; }
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-locked {
	background: var(--pb2b-bg-2, var(--pb2b-surface-soft)) !important;
	border: 1px solid var(--pb2b-border) !important;
	border-radius: 12px !important;
	padding: 14px 16px !important;
	color: var(--pb2b-text-muted) !important;
}

/* =====================================================================
 * #8 — LIGHT/DARK: domknięcie. Żadnych białych pól w dark / czarnych w light
 * w obszarach objętych tym plikiem (wszystko na zmiennych --pb2b-*). Dodatkowe
 * zabezpieczenie: pola formularzy w trybie jasnym nie mają ciemnego placeholdera
 * na ciemnym tle (kolory dziedziczą z tokenów panelu).
 * ===================================================================== */
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import input::placeholder,
.phoenix-b2b-panel.pb2b-app .phoenix-b2b-csv-import textarea::placeholder { color: var(--pb2b-text-dim, var(--pb2b-text-muted)) !important; opacity: 1 !important; }
