/*
 * SmartV Core – panel frontendu.
 *
 * Wszystkie reguły są ograniczone do .smartv-app, zmienne ustawiane na .smartv-app
 * (nie :root). Kolory dziedziczone z motywu (currentColor), więc panel działa na jasnym
 * i ciemnym tle. JS ustawia --smartv-fg-solid / --smartv-bg-solid oraz data-smartv-scheme
 * na podstawie rzeczywistych kolorów otoczenia (odwrócony przycisk główny, natywne kontrolki).
 *
 * Mobile-first: bazowe reguły = 320–430 px, rozszerzenia od 640 / 768 / 900 px.
 */

/* ------------------------------------------------------------------ zmienne */

.smartv-app {
	--smartv-border: rgba(127, 127, 127, 0.32);
	--smartv-border-strong: rgba(127, 127, 127, 0.6);
	--smartv-muted: inherit;
	--smartv-muted-opacity: 0.68;
	--smartv-surface: rgba(127, 127, 127, 0.07);
	--smartv-surface-strong: rgba(127, 127, 127, 0.13);
	--smartv-radius: 2px;
	--smartv-gap: 1rem;
	--smartv-space: clamp(2rem, 6vw, 4.5rem);
	--smartv-control-h: 48px;
	--smartv-ok: #1f9d55;
	--smartv-warn: #d18a00;
	--smartv-error: #d93636;
	--smartv-focus: currentColor;
}

@supports (color: color-mix(in srgb, red 50%, transparent)) {
	.smartv-app {
		--smartv-border: color-mix(in srgb, currentColor 22%, transparent);
		--smartv-border-strong: color-mix(in srgb, currentColor 55%, transparent);
		--smartv-surface: color-mix(in srgb, currentColor 5%, transparent);
		--smartv-surface-strong: color-mix(in srgb, currentColor 10%, transparent);
	}
}

.smartv-app[data-smartv-scheme="dark"] {
	color-scheme: dark;
	--smartv-ok: #4ade80;
	--smartv-warn: #fbbf24;
	--smartv-error: #ff6b6b;
}

.smartv-app[data-smartv-scheme="light"] {
	color-scheme: light;
}

/* ------------------------------------------------------------------ baza */

.smartv-app {
	box-sizing: border-box;
	width: 100%;
	max-width: 1160px;
	margin-inline: auto;
	padding-block: 0 var(--smartv-space);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.5;
	color: inherit;
	overflow-wrap: anywhere;
	-webkit-text-size-adjust: 100%;
}

.smartv-app *,
.smartv-app *::before,
.smartv-app *::after {
	box-sizing: inherit;
}

.smartv-app [hidden] {
	display: none !important;
}

.smartv-app p,
.smartv-app h1,
.smartv-app h2,
.smartv-app ul,
.smartv-app li {
	margin: 0;
	padding: 0;
}

.smartv-app a {
	color: inherit;
}

.smartv-app img {
	max-width: 100%;
	height: auto;
	display: block;
}

.smartv-app code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-size: 0.875em;
	background: none;
	color: inherit;
	padding: 0;
}

.smartv-app :focus-visible {
	outline: 2px solid var(--smartv-focus);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ nagłówek */

.smartv-app .smartv-header {
	display: grid;
	gap: 0.75rem;
	padding-block: 0 clamp(1.75rem, 5vw, 3rem);
	border-bottom: 1px solid var(--smartv-border);
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.smartv-app .smartv-tag {
	display: block;
	margin: 0;
	font-family: inherit;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-transform: none;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-title {
	margin: 0;
	font-family: inherit;
	font-size: clamp(2rem, 8vw, 4.25rem);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.025em;
	color: inherit;
	text-transform: none;
}

.smartv-app .smartv-header__bar {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 1rem;
	margin-top: 0.75rem;
}

.smartv-app .smartv-count {
	font-size: 1rem;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-back {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	justify-self: start;
	font-size: 0.9375rem;
	text-decoration: none;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-back:hover {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.smartv-app .smartv-hint {
	font-size: 0.875rem;
	line-height: 1.5;
	opacity: var(--smartv-muted-opacity);
}

/* ------------------------------------------------------------------ przyciski */

.smartv-app .smartv-btn {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: var(--smartv-control-h);
	margin: 0;
	padding: 0.625rem 1.25rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	background: transparent;
	color: inherit;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	white-space: normal;
	cursor: pointer;
	box-shadow: none;
	touch-action: manipulation;
}

/* Animacje włączane dopiero po ustaleniu kolorów przez JS – bez „mignięcia” przy ładowaniu. */
.smartv-app.is-ready .smartv-btn {
	transition: background-color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.smartv-app .smartv-btn:hover {
	background: var(--smartv-surface-strong);
	border-color: currentColor;
	color: inherit;
}

/* Przycisk główny: odwrócone kolory otoczenia (ustawia JS). Bez JS – obrys w kolorze tekstu. */
.smartv-app .smartv-btn--primary {
	background: var(--smartv-fg-solid, transparent);
	color: var(--smartv-bg-solid, inherit);
	border-color: var(--smartv-fg-solid, currentColor);
	font-weight: 700;
}

.smartv-app .smartv-btn--primary:hover {
	background: var(--smartv-fg-solid, var(--smartv-surface-strong));
	color: var(--smartv-bg-solid, inherit);
	border-color: var(--smartv-fg-solid, currentColor);
	opacity: 0.86;
}

.smartv-app .smartv-btn--ghost {
	border-style: dashed;
}

.smartv-app .smartv-btn--danger {
	color: var(--smartv-error);
	border-color: currentColor;
}

.smartv-app .smartv-btn--danger:hover {
	color: var(--smartv-error);
	background: rgba(217, 54, 54, 0.1);
}

.smartv-app .smartv-btn[disabled],
.smartv-app .smartv-btn[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

.smartv-app .smartv-btn.is-busy {
	cursor: progress;
}

.smartv-app .smartv-inline-form {
	display: contents;
}

/* ------------------------------------------------------------------ komunikaty */

.smartv-app .smartv-notice {
	display: grid;
	gap: 0.75rem;
	margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
	padding: 1rem 1rem 1rem 1.125rem;
	border: 1px solid var(--smartv-border);
	border-left: 3px solid currentColor;
	border-radius: var(--smartv-radius);
	background: var(--smartv-surface);
}

.smartv-app .smartv-notice:focus {
	outline: none;
}

.smartv-app .smartv-notice--success {
	border-left-color: var(--smartv-ok);
}

.smartv-app .smartv-notice--warning {
	border-left-color: var(--smartv-warn);
}

.smartv-app .smartv-notice--error {
	border-left-color: var(--smartv-error);
}

.smartv-app .smartv-notice__text {
	font-weight: 600;
	font-size: 1rem;
}

/* (błędy walidacji – style na końcu pliku) */

/* Link do VCF + akcje */

.smartv-app .smartv-link {
	display: grid;
	gap: 0.75rem;
}

.smartv-app .smartv-link__url {
	display: block;
	padding: 0.75rem 0.875rem;
	border: 1px solid var(--smartv-border);
	border-radius: var(--smartv-radius);
	background: var(--smartv-surface);
	word-break: break-all;
	line-height: 1.45;
	user-select: all;
}

.smartv-app .smartv-link__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}

.smartv-app .smartv-panel {
	display: grid;
	gap: 0.75rem;
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
	padding: 1rem;
	border: 1px solid var(--smartv-border);
	border-radius: var(--smartv-radius);
}

/* ------------------------------------------------------------------ status VCF */

.smartv-app .smartv-status {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
}

.smartv-app .smartv-status__dot {
	flex: 0 0 auto;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.5;
}

.smartv-app .smartv-status--ok .smartv-status__dot {
	background: var(--smartv-ok);
	opacity: 1;
}

.smartv-app .smartv-status--pending .smartv-status__dot {
	background: var(--smartv-warn);
	opacity: 1;
}

.smartv-app .smartv-status--error {
	color: var(--smartv-error);
}

.smartv-app .smartv-status--error .smartv-status__dot {
	background: var(--smartv-error);
	opacity: 1;
}

.smartv-app .smartv-status--off {
	opacity: var(--smartv-muted-opacity);
}

/* ------------------------------------------------------------------ lista */

.smartv-app .smartv-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--smartv-border);
}

.smartv-app .smartv-item {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 1.5rem 0;
	border-top: 1px solid var(--smartv-border);
	list-style: none;
}

.smartv-app .smartv-item::before,
.smartv-app .smartv-item::marker {
	content: none;
}

.smartv-app .smartv-item:first-child {
	border-top: 0;
}

.smartv-app .smartv-item__name {
	margin: 0;
	font-family: inherit;
	font-size: clamp(1.375rem, 5vw, 1.75rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.015em;
	text-transform: none;
}

.smartv-app .smartv-item__name a {
	text-decoration: none;
}

.smartv-app .smartv-item__name a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
}

.smartv-app .smartv-item__line {
	font-size: 1rem;
}

.smartv-app .smartv-item__line--muted {
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-item__url {
	display: block;
	font-size: 0.8125rem;
	line-height: 1.45;
	word-break: break-all;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-empty {
	display: grid;
	gap: 1rem;
	justify-items: start;
	padding: clamp(2rem, 6vw, 3.5rem) 0;
	border-top: 1px solid var(--smartv-border);
	border-bottom: 1px solid var(--smartv-border);
}

.smartv-app .smartv-empty__title {
	font-size: clamp(1.25rem, 4vw, 1.625rem);
	font-weight: 700;
	line-height: 1.2;
}

.smartv-app .smartv-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.smartv-app .smartv-pagination__info {
	font-size: 0.9375rem;
	opacity: var(--smartv-muted-opacity);
}

/* ------------------------------------------------------------------ formularz */

.smartv-app .smartv-form {
	display: block;
	margin: 0;
}

.smartv-app .smartv-section {
	display: grid;
	gap: 1.25rem;
	padding-block: clamp(1.75rem, 5vw, 2.75rem);
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-section:first-child {
	border-top: 0;
	padding-top: 0;
}

.smartv-app .smartv-section__head {
	display: grid;
	gap: 0.375rem;
	align-content: start;
}

.smartv-app .smartv-section__head .smartv-tag {
	font-size: 1rem;
	font-weight: 700;
	opacity: 1;
	letter-spacing: 0.02em;
}

.smartv-app .smartv-section__body {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.smartv-app .smartv-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
}

.smartv-app .smartv-field {
	display: grid;
	gap: 0.375rem;
	min-width: 0;
	margin: 0;
	font-weight: inherit;
}

.smartv-app .smartv-field__label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.3;
}

.smartv-app .smartv-optional {
	font-weight: 400;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-input {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: var(--smartv-control-h);
	margin: 0;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	background: var(--smartv-surface);
	color: inherit;
	font-family: inherit;
	font-size: 16px; /* 16px – iOS nie powiększa widoku przy fokusie */
	line-height: 1.4;
	box-shadow: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.smartv-app .smartv-input::placeholder {
	color: inherit;
	opacity: 0.45;
}

.smartv-app .smartv-input:hover {
	border-color: currentColor;
}

.smartv-app .smartv-input:focus {
	outline: none;
	border-color: currentColor;
	background: var(--smartv-surface-strong);
	box-shadow: 0 0 0 1px currentColor;
}

.smartv-app .smartv-input[aria-invalid="true"] {
	border-color: var(--smartv-error);
}

.smartv-app .smartv-textarea {
	min-height: 7.5rem;
	resize: vertical;
}

.smartv-app .smartv-select {
	position: relative;
	display: block;
	min-width: 0;
}

.smartv-app .smartv-select select.smartv-input {
	padding-right: 2.5rem;
	cursor: pointer;
	text-overflow: ellipsis;
}

.smartv-app .smartv-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1rem;
	width: 0.5rem;
	height: 0.5rem;
	margin-top: -0.375rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	pointer-events: none;
	opacity: 0.7;
}

.smartv-app .smartv-select option {
	color: initial;
	background: initial;
}

.smartv-app[data-smartv-scheme] .smartv-select option {
	color: var(--smartv-fg-solid);
	background: var(--smartv-bg-solid);
}

.smartv-app .smartv-field-error {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--smartv-error);
}

.smartv-app .smartv-check {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 44px;
	cursor: pointer;
	font-size: 0.9375rem;
}

.smartv-app .smartv-check input {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	flex: 0 0 auto;
	accent-color: currentColor;
}

/* Zdjęcie */

.smartv-app .smartv-photo {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.smartv-app .smartv-photo__preview {
	position: relative;
	width: 7.5rem;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid var(--smartv-border);
	border-radius: var(--smartv-radius);
	background: var(--smartv-surface);
}

.smartv-app .smartv-photo__preview img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.smartv-app .smartv-photo__empty {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
	text-align: center;
	font-size: 0.8125rem;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-photo__controls {
	display: grid;
	gap: 0.75rem;
	justify-items: stretch;
	min-width: 0;
}

.smartv-app .smartv-file {
	position: relative;
	overflow: hidden;
}

.smartv-app .smartv-file input[type="file"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.smartv-app .smartv-file:focus-within {
	outline: 2px solid var(--smartv-focus);
	outline-offset: 2px;
}

/* Repeatery */

.smartv-app .smartv-rows {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--smartv-border);
}

.smartv-app .smartv-row__actions {
	display: grid;
	grid-template-columns: 48px 48px minmax(0, 1fr);
	gap: 0.5rem;
	align-items: end;
}

.smartv-app .smartv-icon-btn {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	min-height: var(--smartv-control-h);
	margin: 0;
	padding: 0 0.75rem;
	border: 1px solid var(--smartv-border);
	border-radius: var(--smartv-radius);
	background: transparent;
	color: inherit;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
	text-transform: none;
	cursor: pointer;
	box-shadow: none;
	touch-action: manipulation;
}

.smartv-app .smartv-icon-btn:hover {
	border-color: currentColor;
	background: var(--smartv-surface-strong);
	color: inherit;
}

.smartv-app .smartv-icon-btn[disabled] {
	opacity: 0.3;
	cursor: default;
	pointer-events: none;
}

.smartv-app .smartv-icon-btn svg {
	display: block;
}

.smartv-app .smartv-icon-btn--remove {
	justify-self: stretch;
}

.smartv-app .smartv-icon-btn--remove:hover {
	color: var(--smartv-error);
	border-color: currentColor;
}

.smartv-app .smartv-add {
	width: 100%;
}

.smartv-app .smartv-row.is-new {
	animation: smartv-row-in 0.2s ease-out;
}

@keyframes smartv-row-in {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* Stopka formularza */

.smartv-app .smartv-form__footer {
	display: grid;
	gap: 0.75rem;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-form__footer .smartv-btn {
	width: 100%;
	min-height: 56px;
	font-size: 1rem;
}

.smartv-app .smartv-danger {
	display: grid;
	gap: 1rem;
	margin-top: var(--smartv-space);
	padding-top: 1.5rem;
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-danger form {
	margin: 0;
}

.smartv-app .smartv-danger .smartv-btn {
	width: 100%;
}

/* ------------------------------------------------------------------ ≥ 640 px */

@media (min-width: 640px) {
	.smartv-app .smartv-header__bar {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.smartv-app .smartv-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.smartv-app .smartv-field--full {
		grid-column: 1 / -1;
	}

	.smartv-app .smartv-photo {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 1.5rem;
	}

	.smartv-app .smartv-photo__controls {
		justify-items: start;
	}

	.smartv-app .smartv-link {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	.smartv-app .smartv-link__actions {
		display: flex;
		flex-wrap: wrap;
	}

	.smartv-app .smartv-add {
		width: auto;
		justify-self: start;
	}

	.smartv-app .smartv-form__footer {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}

	.smartv-app .smartv-form__footer .smartv-btn {
		width: auto;
		padding-inline: 2rem;
	}

	.smartv-app .smartv-danger {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	.smartv-app .smartv-danger .smartv-btn {
		width: auto;
	}

	.smartv-app .smartv-panel {
		padding: 1.25rem 1.5rem;
	}
}

/* ------------------------------------------------------------------ ≥ 768 px: repeatery w jednym wierszu */

/* 1.16.2: układ w jednym wierszu, gdy lista jest szeroka (klasa is-wide z ResizeObserver – bez wpływu na szerokość panelu). */
.smartv-app .smartv-rows.is-wide .smartv-row {
		grid-template-columns: minmax(10rem, 0.8fr) minmax(8rem, 0.9fr) minmax(0, 2fr) auto;
		align-items: end;
		gap: 0.75rem;
		padding: 1rem 0;
	}
.smartv-app .smartv-rows.is-wide .smartv-row__actions {
		display: flex;
		gap: 0.375rem;
	}
.smartv-app .smartv-rows.is-wide .smartv-icon-btn--remove {
		padding-inline: 1rem;
	}


/* ------------------------------------------------------------------ ≥ 900 px: układ agencyjny */

@media (min-width: 900px) {
	.smartv-app .smartv-header__bar {
		margin-top: 1.25rem;
	}

	.smartv-app .smartv-item {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto;
		align-items: center;
		gap: 2rem;
		padding: 1.75rem 0;
	}

}

/* 1.16.2: układ sekcji formularza (nagłówek | pola), gdy formularz jest szeroki (klasa is-wide z ResizeObserver). */
.smartv-app .smartv-form.is-wide .smartv-section {
		grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
		gap: 3rem;
	}
.smartv-app .smartv-form.is-wide .smartv-section__head {
		position: sticky;
		top: 2rem;
		align-self: start;
	}
.smartv-app .smartv-form.is-wide .smartv-form__footer {
		padding-left: calc(15rem + 3rem);
	}


/* ------------------------------------------------------------------ dostępność */

@media (prefers-reduced-motion: reduce) {
	.smartv-app *,
	.smartv-app *::before,
	.smartv-app *::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

@media (forced-colors: active) {
	.smartv-app .smartv-btn,
	.smartv-app .smartv-input,
	.smartv-app .smartv-icon-btn {
		border: 1px solid ButtonText;
	}

	.smartv-app .smartv-btn--primary {
		background: ButtonText;
		color: ButtonFace;
	}
}

/* ======================================================= 1.2: konta i panel */

/* Pasek zalogowanego użytkownika */
.smartv-app .smartv-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	margin: 0 0 clamp(1.5rem, 5vw, 3rem);
	padding: 0 0 0.875rem;
	border-bottom: 1px solid var(--smartv-border);
	font-size: 0.875rem;
}

.smartv-app .smartv-nav__who {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.75rem;
	margin: 0;
	min-width: 0;
}

.smartv-app .smartv-nav__org {
	font-weight: 600;
}

.smartv-app .smartv-nav__user {
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-nav__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.smartv-app .smartv-nav__links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.smartv-app .smartv-nav__links a:hover,
.smartv-app .smartv-nav__links a[aria-current="page"] {
	border-bottom-color: currentColor;
}

/* Logowanie / rejestracja */
.smartv-app .smartv-auth {
	max-width: 560px;
	margin-inline: auto;
	padding-top: clamp(1rem, 4vw, 2.5rem);
}

.smartv-app .smartv-auth .smartv-title {
	margin-bottom: clamp(1.25rem, 4vw, 2rem);
}

.smartv-app .smartv-auth__logo {
	display: block;
	max-width: 180px;
	max-height: 64px;
	width: auto;
	height: auto;
	margin: 0 0 1.5rem;
}

.smartv-app .smartv-auth--register {
	max-width: 960px;
}

.smartv-app .smartv-auth__form {
	display: grid;
	gap: 1.25rem;
}

.smartv-app .smartv-auth__form .smartv-section {
	max-width: none;
}

.smartv-app form.smartv-auth__form:has(.smartv-section) {
	max-width: none;
}

.smartv-app .smartv-auth__alt {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin-top: clamp(2rem, 6vw, 3rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-auth__alt p {
	margin: 0;
}

.smartv-app .smartv-tabs {
	display: flex;
	gap: 0;
	margin: 0 0 clamp(1.5rem, 4vw, 2rem);
	border-bottom: 1px solid var(--smartv-border);
}

.smartv-app .smartv-tabs__item {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 1.25rem 0 0;
	margin-right: 1.25rem;
	color: inherit;
	text-decoration: none;
	opacity: var(--smartv-muted-opacity);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}

.smartv-app .smartv-tabs__item.is-active,
.smartv-app .smartv-tabs__item:hover {
	opacity: 1;
	border-bottom-color: currentColor;
}

.smartv-app .smartv-lead {
	max-width: 60ch;
	margin: 0 0 1.5rem;
	font-size: 1.0625rem;
}

.smartv-app .smartv-link-plain {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: inherit;
	text-underline-offset: 3px;
}

/* Pole-pułapka dla botów – niewidoczne dla ludzi i czytników ekranu. */
.smartv-app .smartv-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Hasło z ikoną oka wewnątrz pola.
   Motywy często stylizują każdy <button> (ramki, gradienty, padding, wielkie litery) –
   dlatego przycisk jest tu w pełni wyzerowany, a kluczowe właściwości mają !important. */
.smartv-app .smartv-password {
	position: relative;
	display: block;
	width: 100%;
}

.smartv-app .smartv-password > .smartv-input {
	width: 100%;
	padding-right: 3.25rem;
}

.smartv-app .smartv-password > button.smartv-password__toggle {
	all: unset;
	position: absolute !important;
	top: 50% !important;
	right: 0.375rem !important;
	transform: translateY(-50%) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--smartv-radius) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	opacity: 0.6;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.smartv-app .smartv-password > button.smartv-password__toggle::before,
.smartv-app .smartv-password > button.smartv-password__toggle::after {
	content: none !important;
	display: none !important;
}

.smartv-app .smartv-password > button.smartv-password__toggle:hover,
.smartv-app .smartv-password > button.smartv-password__toggle[aria-pressed="true"] {
	opacity: 1;
}

.smartv-app .smartv-password > button.smartv-password__toggle:focus-visible {
	outline: 2px solid currentColor !important;
	outline-offset: -4px !important;
}

.smartv-app .smartv-password__icon {
	display: block;
	width: 22px;
	height: 22px;
	pointer-events: none;
}

.smartv-app .smartv-password__icon--hide,
.smartv-app .smartv-password__toggle[aria-pressed="true"] .smartv-password__icon--show {
	display: none;
}

.smartv-app .smartv-password__toggle[aria-pressed="true"] .smartv-password__icon--hide {
	display: block;
}

/* Ukrycie natywnego „oka” przeglądarki Edge – nie dublujemy ikon. */
.smartv-app .smartv-password > .smartv-input::-ms-reveal,
.smartv-app .smartv-password > .smartv-input::-ms-clear {
	display: none;
}

/* Stopka formularzy logowania i rejestracji: przycisk wyśrodkowany, link pod nim. */
.smartv-app .smartv-form__footer.smartv-form__footer--auth {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding-left: 0 !important;
	text-align: center;
}

.smartv-app .smartv-form__footer--auth .smartv-btn {
	width: 100% !important;
	max-width: 420px;
	margin: 0 !important;
}

.smartv-app .smartv-auth__form:not(:has(.smartv-section)) .smartv-form__footer--auth .smartv-btn {
	max-width: none;
}

.smartv-app .smartv-auth__alt {
	justify-content: center;
	text-align: center;
}

/* Baner ważności konta */
.smartv-app .smartv-banner {
	margin: 0 0 clamp(1.25rem, 4vw, 2rem);
	padding: 0.75rem 1rem;
	border: 1px solid var(--smartv-border);
	border-left: 3px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	font-size: 0.9375rem;
}

.smartv-app .smartv-banner--warning {
	border-left-color: var(--smartv-warn);
}

.smartv-app .smartv-banner--error {
	border-left-color: var(--smartv-error);
}

/* Statystyki */
.smartv-app .smartv-item__stats {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
}

.smartv-app .smartv-stats {
	display: grid;
	gap: 1rem;
}

.smartv-app .smartv-stats__totals {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
}

.smartv-app .smartv-stats__totals div {
	padding: 1rem 0 0;
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-stats__totals dt {
	font-size: 0.8125rem;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-stats__totals dd {
	margin: 0.25rem 0 0;
	font-size: clamp(1.75rem, 6vw, 2.5rem);
	font-weight: 600;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.smartv-app .smartv-stats__graph {
	position: relative;
}

.smartv-app .smartv-stats__max {
	margin: 0 0 0.25rem;
	font-size: 0.75rem;
	opacity: var(--smartv-muted-opacity);
	text-align: right;
}

.smartv-app .smartv-stats__chart {
	display: flex;
	align-items: stretch;
	gap: 2px;
	height: 112px;
	border-bottom: 1px solid var(--smartv-border-strong);
}

.smartv-app .smartv-stats__col {
	position: relative;
	display: flex;
	align-items: flex-end;
	flex: 1 1 0;
	min-width: 0;
	cursor: default;
	outline: none;
}

.smartv-app .smartv-stats__bar {
	display: block;
	width: 100%;
	height: max(2px, var(--smartv-h, 0%));
	background: currentColor;
	opacity: 0.25;
	transition: opacity 0.15s ease;
}

.smartv-app .smartv-stats__col.has-value .smartv-stats__bar {
	opacity: 0.6;
}

.smartv-app .smartv-stats__col:hover .smartv-stats__bar,
.smartv-app .smartv-stats__col:focus .smartv-stats__bar {
	opacity: 1;
}

/* Dymek z datą i liczbą pobrań */
.smartv-app .smartv-stats__col::after {
	content: attr(data-tip);
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	z-index: 5;
	transform: translateX(-50%);
	padding: 0.375rem 0.625rem;
	border-radius: var(--smartv-radius);
	background: var(--smartv-fg-solid, #111);
	color: var(--smartv-bg-solid, #fff);
	font-size: 0.8125rem;
	line-height: 1.2;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.12s ease;
}

.smartv-app .smartv-stats__col.is-first::after {
	left: 0;
	transform: none;
}

.smartv-app .smartv-stats__col.is-last::after {
	left: auto;
	right: 0;
	transform: none;
}

.smartv-app .smartv-stats__col:hover::after,
.smartv-app .smartv-stats__col:focus::after {
	opacity: 1;
	visibility: visible;
}

.smartv-app .smartv-stats__axis {
	display: flex;
	justify-content: space-between;
	margin-top: 0.375rem;
	font-size: 0.75rem;
	opacity: var(--smartv-muted-opacity);
	font-variant-numeric: tabular-nums;
}

/* Historia płatności */
.smartv-app .smartv-payments {
	margin: 0;
	padding: 0;
	list-style: none;
}

.smartv-app .smartv-payments li {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--smartv-border);
	font-size: 0.9375rem;
}

.smartv-app .smartv-payments__date {
	font-weight: 600;
}

.smartv-app .smartv-payments__muted {
	opacity: var(--smartv-muted-opacity);
	font-size: 0.875rem;
}

.smartv-app .smartv-input:disabled,
.smartv-app select:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

@media (min-width: 768px) {
	.smartv-app .smartv-payments__row {
		grid-template-columns: 7rem 1fr 8rem 1.4fr;
		align-items: baseline;
		gap: 1rem;
	}

	.smartv-app .smartv-stats__chart {
		height: 144px;
		gap: 3px;
	}
}

/* Nawigacja: ozdobnik motywu (ikonka przed linkiem) w jednej linii z tekstem. */
.smartv-app .smartv-nav__links a {
	position: relative;
	gap: 0.35em;
	white-space: nowrap;
}

.smartv-app .smartv-nav__links a::before {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	flex: 0 0 auto;
	margin: 0 !important;
	align-self: center;
}

/* Przyciski formularza należą do sekcji nad nimi: bez linii nad przyciskiem,
   z wyraźnym odstępem od kolejnej sekcji. */
.smartv-app .smartv-form__footer {
	border-top: 0 !important;
	padding-top: 0.5rem !important;
	margin-bottom: clamp(2.5rem, 7vw, 4.5rem);
}

.smartv-app .smartv-form__footer + .smartv-section,
.smartv-app .smartv-form + .smartv-form,
.smartv-app .smartv-form + .smartv-section {
	margin-top: 0;
}

.smartv-app .smartv-payments__row {
	display: grid;
	flex: 1 1 auto;
	gap: 0.125rem;
	min-width: 0;
}

/* 1.38.1: ozdobniki motywu przed elementami list (li::before, np. strzałki „>”) – w panelu SmartV zawsze
   wyłączone. Listy z punktami mają nasze punkty (::marker, kolor akcentu): .smartv-bullets i listy bez klasy. */
.smartv-app li::before {
	content: none !important;
	display: none !important;
}
.smartv-app ul.smartv-bullets,
.smartv-app ul:not([class]) {
	list-style: disc outside !important;
	margin: 0.35rem 0 0 !important;
	padding: 0 0 0 1.25rem !important;
	display: grid;
	gap: 0.2rem;
}
.smartv-app ul.smartv-bullets > li,
.smartv-app ul:not([class]) > li {
	display: list-item !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: inherit !important;
}
.smartv-app ul.smartv-bullets > li::marker,
.smartv-app ul:not([class]) > li::marker {
	color: #22c55e;
	font-size: 1.05em;
}

.smartv-app .smartv-nav__links li {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
}

.smartv-app .smartv-list > li::before {
	content: none !important;
	display: none !important;
}

/* Status rozliczeniowy wizytówki */
.smartv-app .smartv-billing {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
}

.smartv-app .smartv-billing::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.5;
	flex: 0 0 auto;
}

.smartv-app .smartv-billing--ok::before { background: var(--smartv-ok, #1f9d55); opacity: 1; }
.smartv-app .smartv-billing--warning::before { background: var(--smartv-warn); opacity: 1; }
.smartv-app .smartv-billing--error::before { background: var(--smartv-error); opacity: 1; }
.smartv-app .smartv-billing--error { color: var(--smartv-error); }

/* Formularz zamówienia */
.smartv-app .smartv-order {
	margin-top: clamp(2rem, 6vw, 3.5rem);
	padding-top: clamp(1.5rem, 4vw, 2rem);
	border-top: 1px solid var(--smartv-border);
}

/* Zamówienia na koncie */
.smartv-app .smartv-orders {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.smartv-app .smartv-orders > li::before {
	content: none !important;
	display: none !important;
}

.smartv-app .smartv-orders__item {
	padding: 1rem;
	border: 1px solid var(--smartv-border);
	border-radius: var(--smartv-radius);
}

.smartv-app .smartv-orders__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}

.smartv-app .smartv-orders__head .smartv-billing {
	margin: 0;
}

.smartv-app .smartv-orders__meta {
	margin: 0.5rem 0 0.75rem;
	font-size: 0.875rem;
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-orders__cards {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--smartv-border);
}

.smartv-app .smartv-orders__cards li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--smartv-border);
	font-size: 0.9375rem;
}

.smartv-app .smartv-orders__until {
	opacity: var(--smartv-muted-opacity);
}

.smartv-app .smartv-orders__transfer {
	margin-top: 0.75rem;
	padding: 0.75rem 1rem;
	border-left: 3px solid var(--smartv-warn);
	font-size: 0.9375rem;
}

.smartv-app .smartv-orders__transfer p {
	margin: 0;
}

.smartv-app .smartv-section--danger .smartv-tag {
	color: var(--smartv-error);
}

/* Błędy w komunikatach – każdy w osobnej linii, bez punktorów. */
.smartv-app .smartv-notice__errors {
	display: grid;
	gap: 0.25rem;
}

.smartv-app .smartv-notice__errors .smartv-notice__text {
	margin: 0;
}

/* ======================================================= 1.4: zgody, newsletter, typ klienta */

.smartv-app .smartv-type {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
	padding: 0;
	border: 0;
}

.smartv-app .smartv-type legend {
	grid-column: 1 / -1;
	margin-bottom: 0.5rem;
}

.smartv-app .smartv-type__option {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 52px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	cursor: pointer;
	font-weight: 600;
}

.smartv-app .smartv-type__option:has(input:checked) {
	border-color: currentColor;
	box-shadow: inset 0 0 0 1px currentColor;
}

.smartv-app [hidden] {
	display: none !important;
}

.smartv-app .smartv-nip__row {
	display: flex;
	gap: 0.5rem;
}

.smartv-app .smartv-nip__row .smartv-input {
	flex: 1 1 auto;
	min-width: 0;
}

.smartv-app .smartv-nip__row .smartv-btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

.smartv-app .smartv-consents {
	display: grid;
	gap: 0.85rem;
}

.smartv-app .smartv-consents a,
.smartv-app .smartv-check a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.smartv-app .smartv-consent-meta {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	opacity: var(--smartv-muted-opacity);
}

/* Okienko zgód */
.smartv-app .smartv-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba(0, 0, 0, 0.72);
	overflow-y: auto;
}

.smartv-app .smartv-modal__box {
	display: grid;
	gap: 1rem;
	width: 100%;
	max-width: 560px;
	max-height: calc(100vh - 2rem);
	overflow-y: auto;
	padding: clamp(1.25rem, 5vw, 2rem);
	background: var(--smartv-bg-solid, #111);
	color: var(--smartv-fg-solid, #f2f2f2);
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
}

.smartv-app .smartv-modal__title {
	margin: 0;
	font-size: clamp(1.5rem, 5vw, 2rem);
	line-height: 1.15;
}

/* Okienko newslettera nad panelem */
.smartv-app .smartv-nlbox {
	margin: 0 0 clamp(1.5rem, 5vw, 2.5rem);
	padding: 1.25rem;
	border: 1px solid var(--smartv-border-strong);
	border-left: 3px solid var(--smartv-ok);
	border-radius: var(--smartv-radius);
}

.smartv-app .smartv-nlbox--warning { border-left-color: var(--smartv-warn); }
.smartv-app .smartv-nlbox--error { border-left-color: var(--smartv-error); }

.smartv-app .smartv-nlbox__text {
	margin: 0.25rem 0 0;
	font-size: 1.0625rem;
	font-weight: 600;
}

.smartv-app .smartv-nlbox__form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin-top: 1rem;
}

/* Formularz newslettera */
.smartv-app .smartv-newsletter__form {
	display: grid;
	gap: 1rem;
	max-width: 560px;
}

.smartv-app .smartv-newsletter__title {
	margin: 0;
	font-size: clamp(1.5rem, 5vw, 2rem);
	line-height: 1.15;
}

.smartv-app .smartv-newsletter__fields {
	display: grid;
	gap: 1rem;
}

@media (min-width: 640px) {
	.smartv-app .smartv-newsletter__fields {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 479px) {
	.smartv-app .smartv-type {
		grid-template-columns: 1fr;
	}
}

/* ======================================================= 1.5: zamówienie w 2 krokach, projekty */

.smartv-app .smartv-attention .smartv-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.smartv-app .smartv-costs {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.smartv-app .smartv-costs > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--smartv-border);
}

.smartv-app .smartv-costs dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.smartv-app .smartv-costs__total { font-size: 1.125rem; font-weight: 700; border-bottom: 0 !important; }

.smartv-app .smartv-designs {
	margin: 0 0 clamp(1.5rem, 5vw, 2.5rem);
	padding: 1.25rem;
	border: 1px solid var(--smartv-border-strong);
	border-left: 3px solid var(--smartv-warn);
	border-radius: var(--smartv-radius);
}

.smartv-app .smartv-designs__title { margin: 0 0 0.25rem; font-size: 1.5rem; }
.smartv-app .smartv-design { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--smartv-border); }
.smartv-app .smartv-design__name { margin: 0 0 0.75rem; font-size: 1.0625rem; }
.smartv-app .smartv-design__name small { font-weight: 400; opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-design__img { display: block; max-width: 100%; height: auto; margin-bottom: 0.75rem; border: 1px solid var(--smartv-border); }
.smartv-app .smartv-design__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-start; }
.smartv-app .smartv-design__changes summary { list-style: none; cursor: pointer; }
.smartv-app .smartv-design__changes summary::-webkit-details-marker { display: none; }
.smartv-app .smartv-design__changes form { display: grid; gap: 0.75rem; margin-top: 0.75rem; min-width: min(100%, 420px); }

/* Daty: czcionki motywu potrafią „wciągnąć” kropkę przed cyfrą 1 (08.10 → 0810). */
.smartv-app .smartv-billing,
.smartv-app .smartv-orders__until,
.smartv-app .smartv-orders__meta,
.smartv-app .smartv-consent-meta,
.smartv-app .smartv-stats,
.smartv-app .smartv-costs,
.smartv-app .smartv-banner {
	font-kerning: none;
	font-variant-numeric: tabular-nums;
}

/* ======================================================= 1.6: edytor kadrowania zdjęcia */
.smartv-cropper {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba(0, 0, 0, 0.8);
}

.smartv-cropper__box {
	display: grid;
	gap: 0.75rem;
	width: 100%;
	max-width: 420px;
	padding: 1.25rem;
	background: #141416;
	color: #f2f2f2;
	border-radius: 16px;
	font-family: inherit;
}

.smartv-cropper__title { margin: 0; font-size: 1.25rem; font-weight: 700; }
.smartv-cropper__hint { margin: 0; font-size: 0.875rem; opacity: 0.75; }

.smartv-cropper__view {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #000;
	border-radius: 8px;
	touch-action: none;
	cursor: grab;
	user-select: none;
}

.smartv-cropper__view:active { cursor: grabbing; }

.smartv-cropper__view img {
	position: absolute;
	top: 0;
	left: 0;
	max-width: none !important;
	transform-origin: 0 0;
	pointer-events: none;
}

.smartv-cropper__view::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 2px solid rgba(255, 255, 255, 0.9);
	border-radius: 8px;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3);
	pointer-events: none;
}

.smartv-cropper__zoom { display: grid; gap: 0.25rem; font-size: 0.875rem; }
.smartv-cropper__zoom input { width: 100%; accent-color: #2dd4bf; }

.smartv-cropper__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.smartv-cropper .smartv-btn { color: #f2f2f2; border-color: rgba(255, 255, 255, 0.35); min-height: 48px; }
.smartv-cropper .smartv-btn--primary { background: #f2f2f2; color: #111; border-color: #f2f2f2; }
.smartv-cropper .smartv-btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.6rem 1rem; border: 1px solid rgba(255,255,255,0.35); border-radius: 10px; background: transparent; font: inherit; font-weight: 600; cursor: pointer; }

/* ======================================================= 1.6: zakładka „Zamów” */

.smartv-app .smartv-oc-list { display: grid; gap: 0.75rem; margin-bottom: clamp(1.5rem, 5vw, 2.5rem); }

.smartv-app .smartv-oc {
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	overflow: hidden;
}

.smartv-app .smartv-oc.is-on { border-color: currentColor; box-shadow: inset 0 0 0 1px currentColor; }

.smartv-app .smartv-oc__head {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 1rem;
	cursor: pointer;
}

.smartv-app .smartv-oc__head input[type="checkbox"] {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	margin: 0;
	accent-color: currentColor;
}

.smartv-app .smartv-oc__title { display: grid; gap: 0.2rem; flex: 1 1 auto; min-width: 0; }
.smartv-app .smartv-oc__title strong { font-size: 1.0625rem; }

.smartv-app .smartv-oc__badge {
	flex: 0 0 auto;
	padding: 0.25rem 0.6rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
}

.smartv-app .smartv-oc__body {
	display: none;
	gap: 1rem;
	padding: 0 1rem 1rem;
}

.smartv-app .smartv-oc.is-on .smartv-oc__body { display: grid; }

@media (min-width: 640px) {
	.smartv-app .smartv-oc.is-on .smartv-oc__body { grid-template-columns: 2fr 1fr; align-items: start; }
}

.smartv-app .smartv-code__row { display: flex; gap: 0.5rem; }
.smartv-app .smartv-code__row .smartv-input { flex: 1 1 auto; min-width: 0; text-transform: uppercase; }
.smartv-app .smartv-code { margin-bottom: 1.25rem; }

.smartv-app .smartv-summary { transition: opacity 0.15s; }
.smartv-app .smartv-summary.is-loading { opacity: 0.55; }
.smartv-app .smartv-summary__lines { display: grid; gap: 0.75rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.smartv-app .smartv-summary__lines > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-summary__line { display: flex; justify-content: space-between; gap: 1rem; font-weight: 600; }
.smartv-app .smartv-summary__amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
.smartv-app .smartv-summary__desc { font-size: 0.875rem; opacity: var(--smartv-muted-opacity); font-kerning: none; }
.smartv-app .smartv-costs__discount { color: var(--smartv-ok); }

/* Pasek z sumą – przyklejony do dołu ekranu */
.smartv-app .smartv-orderbar {
	position: sticky;
	bottom: 0;
	z-index: 50;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.5rem;
	padding: 0.875rem 1rem calc(0.875rem + env(safe-area-inset-bottom, 0px));
	background: var(--smartv-bg-solid, #fff);
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.2);
}

.smartv-app .smartv-orderbar__info { display: grid; gap: 0.1rem; font-kerning: none; }
.smartv-app .smartv-orderbar__info strong { font-size: 1.125rem; font-variant-numeric: tabular-nums; }
.smartv-app .smartv-orderbar .smartv-btn { flex: 1 1 200px; }
.smartv-app .smartv-orderbar .smartv-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* Po zapisaniu wizytówki: co dalej */
.smartv-app .smartv-next {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 clamp(1.5rem, 5vw, 2rem);
	padding: 1.25rem;
	border: 1px solid var(--smartv-border-strong);
	border-left: 3px solid var(--smartv-ok);
	border-radius: var(--smartv-radius);
}

.smartv-app .smartv-next__title { margin: 0; font-size: 1.125rem; font-weight: 700; }
.smartv-app .smartv-next__actions { display: grid; gap: 0.75rem; margin-top: 0.5rem; }

@media (min-width: 640px) {
	.smartv-app .smartv-next__actions { grid-template-columns: 1fr 1fr; }
}

/* Konto → zamówienia: punktor bezpośrednio przed imieniem i nazwiskiem */
.smartv-app .smartv-orders__cards > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-orders__cards li.smartv-orders__card { display: grid; gap: 0.15rem; padding: 0.6rem 0; }
.smartv-app .smartv-orders__row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; }
.smartv-app .smartv-orders__name::before { content: "•"; display: inline-block; margin-right: 0.5rem; }
.smartv-app .smartv-orders__desc { padding-left: 1rem; font-size: 0.8125rem; opacity: var(--smartv-muted-opacity); font-kerning: none; }
.smartv-app .smartv-design__sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.75rem; margin-bottom: 0.75rem; }
.smartv-app .smartv-design__side { margin: 0; }
.smartv-app .smartv-design__side figcaption { font-size: 0.8125rem; opacity: var(--smartv-muted-opacity); margin-top: 0.25rem; }
.smartv-app .smartv-captcha { margin: 0.5rem 0 1rem; min-height: 65px; }
.smartv-app .smartv-captcha-note { font-size: 0.75rem; }

/* Edytor kadrowania – kolory niezależne od motywu */
.smartv-app .smartv-cropper .smartv-btn,
.smartv-cropper .smartv-btn {
	background: transparent !important;
	color: #f2f2f2 !important;
	border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

.smartv-app .smartv-cropper .smartv-btn--primary,
.smartv-cropper .smartv-btn--primary {
	background: #f2f2f2 !important;
	color: #111 !important;
	border-color: #f2f2f2 !important;
}

.smartv-app .smartv-code__row .smartv-btn {
	white-space: nowrap;
	padding-left: 1rem;
	padding-right: 1rem;
	flex: 0 0 auto;
	width: auto;
}

/* ======================================================= 1.7: karta wizytówki na liście */
.smartv-app .smartv-card {
	display: grid !important;
	gap: 1rem 2rem;
	grid-template-columns: 1fr;
	align-items: start;
}

@media (min-width: 900px) {
	.smartv-app .smartv-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
}

.smartv-app .smartv-card__info { display: grid; gap: 0.2rem; min-width: 0; }
.smartv-app .smartv-card__job { margin: 0; font-size: 1rem; }
.smartv-app .smartv-card__company { margin: 0; font-size: 0.9375rem; opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-card__state { display: grid; gap: 0.35rem; margin-top: 0.75rem; font-size: 0.9375rem; }
.smartv-app .smartv-card__state p { margin: 0; }
.smartv-app .smartv-card__state .smartv-billing { font-size: 0.9375rem; font-weight: 600; }
.smartv-app .smartv-card__side { display: grid; gap: 0.75rem; min-width: 0; }
.smartv-app .smartv-card__side .smartv-item__url { display: block; word-break: break-all; font-size: 0.8125rem; }
.smartv-app .smartv-card__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.smartv-app .smartv-card__actions .smartv-btn,
.smartv-app .smartv-card__actions .smartv-inline-form .smartv-btn { flex: 0 0 auto; width: auto; min-height: 42px; padding: 0.5rem 1rem; font-size: 0.9375rem; }
@media (max-width: 519px) {
	.smartv-app .smartv-card__actions .smartv-btn { flex: 1 1 calc(50% - 0.5rem); }
}
.smartv-app .smartv-card__delete { justify-self: start; }
.smartv-app .smartv-link-danger {
	padding: 0;
	border: 0;
	background: none;
	color: var(--smartv-error);
	font: inherit;
	font-size: 0.875rem;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

/* Komunikaty „do zrobienia” */
.smartv-app .smartv-alerts { display: grid; gap: 0.5rem; margin: 0 0 1.5rem; }
.smartv-app .smartv-alert {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem;
	margin: 0; padding: 0.75rem 1rem;
	border: 1px solid var(--smartv-border-strong); border-left: 3px solid var(--smartv-ok); border-radius: var(--smartv-radius);
	font-weight: 600;
}
.smartv-app .smartv-alert--warning { border-left-color: var(--smartv-warn); }
.smartv-app .smartv-alert--error { border-left-color: var(--smartv-error); }
.smartv-app .smartv-alert .smartv-btn { width: auto; min-height: 40px; padding: 0.4rem 0.9rem; }

/* Etapy zamówienia */
.smartv-stages {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0;
	margin: 0.75rem 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
.smartv-stages__item {
	position: relative;
	display: grid;
	justify-items: center;
	flex: 1 1 0;
	min-width: 84px;
	padding-top: 22px;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.3;
	opacity: 0.55;
}
.smartv-stages__item::before { content: none !important; }
.smartv-stages__item::after {
	content: "";
	position: absolute;
	top: 7px;
	left: 50%;
	width: 100%;
	height: 2px;
	background: currentColor;
	opacity: 0.25;
}
.smartv-stages__item:last-child::after { display: none; }
.smartv-stages__dot {
	position: absolute;
	top: 0;
	left: 50%;
	width: 16px;
	height: 16px;
	margin-left: -8px;
	border: 2px solid currentColor;
	border-radius: 50%;
	background: transparent;
	z-index: 1;
}
.smartv-stages__item.is-done { opacity: 1; }
.smartv-stages__item.is-done .smartv-stages__dot { background: #2dd4bf; border-color: #2dd4bf; }
.smartv-stages__item.is-done::after { background: #2dd4bf; opacity: 1; }
.smartv-stages__label { font-weight: 600; }
.smartv-stages__date { opacity: 0.7; font-kerning: none; }

/* Dostawa w zamówieniu */
.smartv-app .smartv-shipping { display: grid; gap: 1rem; margin: 0 0 1.5rem; padding: 1rem; border: 1px solid var(--smartv-border-strong); border-radius: var(--smartv-radius); }
.smartv-app .smartv-shipping__title { padding: 0 0.25rem; font-weight: 700; font-size: 1.0625rem; }
.smartv-app .smartv-shipping .smartv-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .smartv-app .smartv-shipping .smartv-grid { grid-template-columns: 1fr 1fr; } .smartv-app .smartv-shipping .smartv-field--full { grid-column: 1 / -1; } }
.smartv-app .smartv-orders__tracking, .smartv-app .smartv-orders__ship { margin: 0.5rem 0; font-size: 0.9375rem; }
.smartv-app .smartv-orders__ship .smartv-field__label { display: block; }
.smartv-app .smartv-history summary { cursor: pointer; font-weight: 600; padding: 0.5rem 0; }
.smartv-app .smartv-section--todo { border-left: 3px solid var(--smartv-warn); padding-left: 1rem; }
.smartv-app .smartv-card .smartv-card__delete { display: block !important; justify-self: start; text-align: left; width: auto; }

/* Etapy w panelu klienta – pionowa oś (czytelna w wąskiej kolumnie i na telefonie) */
.smartv-app .smartv-stages {
	display: grid !important;
	gap: 0 !important;
	margin: 0.75rem 0 !important;
	padding: 0 !important;
}

.smartv-app .smartv-stages .smartv-stages__item {
	position: relative;
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 0.5rem;
	min-width: 0;
	margin: 0 !important;
	padding: 0 0 0.6rem 1.75rem !important;
	text-align: left;
	font-size: 0.875rem;
	line-height: 1.35;
}

.smartv-app .smartv-stages .smartv-stages__item::before { content: none !important; display: none !important; }

.smartv-app .smartv-stages .smartv-stages__item::after {
	content: "" !important;
	position: absolute;
	top: 1.05rem;
	left: 7px;
	width: 2px !important;
	height: calc(100% - 0.8rem) !important;
	background: currentColor;
	opacity: 0.2;
}

.smartv-app .smartv-stages .smartv-stages__item:last-child::after { display: none !important; }

.smartv-app .smartv-stages .smartv-stages__dot {
	position: absolute;
	top: 0.2rem;
	left: 0;
	width: 16px;
	height: 16px;
	margin: 0;
}

.smartv-app .smartv-stages .smartv-stages__item.is-done::after { background: #2dd4bf; opacity: 1; }
.smartv-app .smartv-stages .smartv-stages__date { font-size: 0.8125rem; }

/* ======================================================= 1.8 */
.smartv-app .smartv-card .smartv-card__delete .smartv-link-danger,
.smartv-app button.smartv-link-danger {
	all: unset;
	display: inline;
	color: #f87171 !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	cursor: pointer;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 0 !important;
}
.smartv-app button.smartv-link-danger:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Okienko „wpisz USUŃ” */
.smartv-confirm { position: fixed; inset: 0; z-index: 100002; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,0.75); }
.smartv-confirm__box { display: grid; gap: 0.75rem; width: 100%; max-width: 420px; padding: 1.25rem; background: #141416; color: #f2f2f2; border: 1px solid rgba(255,255,255,0.15); border-radius: 16px; }
.smartv-confirm__title { margin: 0; font-size: 1.125rem; font-weight: 700; }
.smartv-confirm__hint { margin: 0; font-size: 0.9375rem; opacity: 0.85; }
.smartv-confirm .smartv-input { background: #1f1f22 !important; color: #fff !important; border: 1px solid rgba(255,255,255,0.25) !important; text-transform: uppercase; }
.smartv-confirm__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.smartv-confirm .smartv-btn { all: unset; display: flex; align-items: center; justify-content: center; min-height: 46px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.35); color: #f2f2f2; font-weight: 600; cursor: pointer; text-transform: none; }
.smartv-confirm .smartv-btn--danger { background: #dc2626; border-color: #dc2626; color: #fff; }
.smartv-confirm .smartv-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.smartv-geo__box { max-width: 960px; height: min(80vh, 720px); grid-template-rows: 1fr auto; }
.smartv-geo__map { min-height: 0; border-radius: 10px; overflow: hidden; background: #fff; }

/* Zaznaczone wizytówki w zamówieniu – zielona ramka */
.smartv-app .smartv-oc.is-on { border-color: #22c55e !important; box-shadow: inset 0 0 0 1px #22c55e !important; background: transparent; }
.smartv-app .smartv-oc.is-on .smartv-oc__head { background: rgba(34, 197, 94, 0.12); }
.smartv-app .smartv-oc.is-on .smartv-oc__badge { border-color: #22c55e; color: #22c55e; }

/* Rabat przy pozycjach */
.smartv-app .smartv-price-old { opacity: 0.55; font-weight: 400; margin-right: 0.35rem; }
.smartv-app .smartv-price-new { color: #22c55e; font-weight: 700; }
.smartv-app .smartv-orders__price { padding-left: 1rem; font-size: 0.875rem; }
.smartv-app .smartv-costs__discount dt, .smartv-app .smartv-costs__discount dd { color: #22c55e; }

/* Paczkomaty */
.smartv-app .smartv-locker__map { width: 100%; }
.smartv-app .smartv-orders-add { margin: 0 0 1rem; }
.smartv-app .smartv-orders-add .smartv-btn { width: auto; }
.smartv-app .smartv-shipping__locker:not([hidden]) { display: grid; gap: 1rem; }
.smartv-app .smartv-shipping__courier:not([hidden]) { display: grid; gap: 1rem; }

/* ======================================================= 1.9: wybór okresu i liczby kart */
/* Strzałka tylko na samej liście wyboru (klasa smartv-select bywa też ramką <span> wokół listy). */
.smartv-app select.smartv-select,
.smartv-app .smartv-select > select.smartv-input {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.75rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.9rem center !important;
	background-size: 16px 16px !important;
	cursor: pointer;
}
.smartv-app .smartv-stepper { display: inline-flex; align-items: stretch; max-width: 11rem; }
.smartv-app .smartv-stepper .smartv-input { width: 4rem; min-width: 0; text-align: center; border-radius: 0 !important; -moz-appearance: textfield; }
.smartv-app .smartv-stepper .smartv-input::-webkit-outer-spin-button,
.smartv-app .smartv-stepper .smartv-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.smartv-app .smartv-stepper__btn {
	all: unset;
	display: flex; align-items: center; justify-content: center;
	width: 3rem; min-height: 48px;
	border: 1px solid var(--smartv-border-strong);
	font-size: 1.375rem; font-weight: 700; line-height: 1;
	cursor: pointer; user-select: none;
}
.smartv-app .smartv-stepper__btn:first-child { border-radius: var(--smartv-radius) 0 0 var(--smartv-radius); border-right: 0; }
.smartv-app .smartv-stepper__btn:last-child { border-radius: 0 var(--smartv-radius) var(--smartv-radius) 0; border-left: 0; }
.smartv-app .smartv-oc__qty { width: auto !important; }
.smartv-app .smartv-oc.is-invalid { border-color: #ef4444 !important; box-shadow: inset 0 0 0 1px #ef4444 !important; }
.smartv-app .smartv-oc.is-invalid .smartv-select { border-color: #ef4444 !important; }
.smartv-app .smartv-oc__error { margin: 0 1rem 0.5rem; color: #ef4444; font-weight: 600; font-size: 0.9375rem; }
.smartv-app .smartv-oc__gift { margin: 0 1rem 0.5rem; color: var(--smartv-success, #16a34a); font-weight: 600; }
.smartv-app .smartv-oc.is-gift [data-smartv-oc-months] { opacity: 0.5; }
.smartv-app .smartv-oc__brief:not([hidden]) { display: grid; gap: 0.75rem; padding: 0 1rem 1rem; }
.smartv-app .smartv-oc__brief textarea { min-height: 5rem; resize: vertical; }
.smartv-app .smartv-brief-info:not([hidden]) { display: grid; gap: 0.5rem; margin: 0 0 1.5rem; padding: 1rem; border: 1px dashed var(--smartv-border-strong); border-radius: var(--smartv-radius); }
.smartv-app .smartv-brief-info .smartv-hint a { color: inherit; text-decoration: underline; }
.smartv-app .smartv-orders__note { padding-left: 1rem; font-size: 0.8125rem; font-style: italic; opacity: 0.85; white-space: pre-wrap; }

/* ======================================================= 1.9.1: odporność na style motywu */

/* Zaznaczona wizytówka w zamówieniu – cała podświetlona (tło + ramka). */
.smartv-app .smartv-oc.is-on {
	border-color: #22c55e !important;
	box-shadow: inset 0 0 0 1px #22c55e !important;
	background: rgba(34, 197, 94, 0.08) !important;
}
.smartv-app .smartv-oc.is-on .smartv-oc__head { background: transparent !important; }
.smartv-app .smartv-oc.is-invalid { background: rgba(239, 68, 68, 0.06) !important; }

/* Własny checkbox – ptaszek dokładnie pośrodku (niezależnie od motywu). */
.smartv-app .smartv-oc__head input[type="checkbox"],
.smartv-app .smartv-check input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	flex: 0 0 auto !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 2px solid currentColor !important;
	border-radius: 6px !important;
	background: transparent none no-repeat center / 14px 14px !important;
	box-shadow: none !important;
	opacity: 0.9;
	cursor: pointer;
	vertical-align: middle;
}
.smartv-app .smartv-oc__head input[type="checkbox"] { width: 26px !important; height: 26px !important; min-width: 26px !important; }
.smartv-app .smartv-oc__head input[type="checkbox"]::before,
.smartv-app .smartv-oc__head input[type="checkbox"]::after,
.smartv-app .smartv-check input[type="checkbox"]::before,
.smartv-app .smartv-check input[type="checkbox"]::after { content: none !important; display: none !important; }
.smartv-app .smartv-oc__head input[type="checkbox"]:checked,
.smartv-app .smartv-check input[type="checkbox"]:checked {
	border-color: #22c55e !important;
	background-color: #22c55e !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E") !important;
	opacity: 1;
}
.smartv-app .smartv-oc__head input[type="checkbox"]:focus-visible,
.smartv-app .smartv-check input[type="checkbox"]:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 2px; }

/* Plus / minus i liczba kart – kompaktowe, niezależne od stylu przycisków i pól motywu. */
.smartv-app .smartv-stepper {
	display: inline-flex !important;
	align-items: stretch !important;
	width: auto !important;
	max-width: none !important;
	height: 44px !important;
	border: 1px solid var(--smartv-border-strong) !important;
	border-radius: 10px !important;
	overflow: hidden;
}
.smartv-app .smartv-stepper .smartv-stepper__btn {
	all: unset;
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	min-width: 44px !important;
	height: 44px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-image: none !important;
	border-radius: 0 !important;
	background: rgba(127, 127, 127, 0.12) !important;
	box-shadow: none !important;
	color: inherit !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	user-select: none;
}
.smartv-app .smartv-stepper .smartv-input {
	box-sizing: border-box !important;
	width: 56px !important;
	min-width: 56px !important;
	max-width: 56px !important;
	height: 44px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 4px !important;
	border: 0 !important;
	border-left: 1px solid var(--smartv-border-strong) !important;
	border-right: 1px solid var(--smartv-border-strong) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	line-height: 44px !important;
	text-align: center !important;
	-moz-appearance: textfield;
}
/* 1.40.2: motyw może rysować ramkę przycisku w ::before / ::after (position: absolute) – bez pozycjonowanego
   przycisku taka ramka obejmowała cały kalkulator. Przyciski − / + nie mają ramki motywu. */
.smartv-app .smartv-stepper { position: relative !important; }
.smartv-app .smartv-stepper .smartv-stepper__btn::before,
.smartv-app .smartv-stepper .smartv-stepper__btn::after { content: none !important; display: none !important; }
.smartv-app .smartv-oc__qty .smartv-stepper { justify-self: start !important; align-self: start !important; width: max-content !important; }
.smartv-app .smartv-orderbar .smartv-btn {
	box-sizing: border-box !important;
	min-height: 48px !important;
	height: auto !important;
	padding: 0.75rem 1.25rem !important;
	font-size: 1rem !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	word-break: normal !important;
}

/* ======================================================= 1.9.2 */
/* Pola w podświetlonej karcie – nieprzezroczyste (kolor wyliczany z motywu przez skrypt). */
.smartv-app .smartv-oc .smartv-input,
.smartv-app .smartv-oc .smartv-select,
.smartv-app .smartv-oc .smartv-stepper {
	background-color: var(--smartv-field-solid, transparent) !important;
}
.smartv-app .smartv-oc .smartv-stepper .smartv-input { background-color: transparent !important; }

/* Plus / minus: podświetlenie tylko przy najechaniu myszą; na dotyku bez „przyklejonego” stanu. */
.smartv-app .smartv-stepper .smartv-stepper__btn:focus-visible {
	outline: 2px solid #22c55e !important;
	outline-offset: -2px !important;
}

/* 1.9.3: kontakt i „to samo logo” wewnątrz sekcji uwag pierwszej wizytówki */
.smartv-app .smartv-oc__brief .smartv-brief-info:not([hidden]) { display: grid; gap: 0.5rem; margin: 0; padding: 0.75rem 1rem; border: 1px dashed var(--smartv-border-strong); border-radius: var(--smartv-radius); background-color: var(--smartv-field-solid, transparent); }
.smartv-app .smartv-brief-info__contact { margin: 0; font-size: 0.875rem; line-height: 1.5; }
.smartv-app .smartv-brief-info__contact a { color: inherit; text-decoration: underline; }

/* 1.9.4: przyciski −/+ bez podświetlania; obwódka tylko przy obsłudze klawiaturą. */
.smartv-app .smartv-stepper .smartv-stepper__btn:hover,
.smartv-app .smartv-stepper .smartv-stepper__btn:active,
.smartv-app .smartv-stepper .smartv-stepper__btn:focus { background: rgba(127, 127, 127, 0.12) !important; color: inherit !important; outline: none !important; }
.smartv-app .smartv-stepper .smartv-stepper__btn:focus-visible { outline: 2px solid currentColor !important; outline-offset: -3px !important; }
.smartv-app .smartv-oc:not(.is-on) { cursor: pointer; }
.smartv-app .smartv-oc__head { display: flex; align-items: flex-start; gap: 0.75rem; }
.smartv-app .smartv-oc__qty > .smartv-field__label { display: block; cursor: default; }

/* ======================================================= 1.10: okienka, podgląd, 3D, decyzje o projektach */

/* Przyciski wtyczki – odporne na style motywu (także zwykłe <button class="smartv-btn">). */
.smartv-app button.smartv-btn,
.smartv-app .smartv-pbtn {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	width: auto;
	min-height: 44px !important;
	height: auto !important;
	margin: 0;
	padding: 0.6rem 1.15rem !important;
	border: 1px solid var(--smartv-border-strong) !important;
	border-image: none !important;
	border-radius: var(--smartv-radius) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	font-family: inherit !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em !important;
	text-transform: none !important;
	text-decoration: none !important;
	white-space: normal;
	cursor: pointer;
}
.smartv-app button.smartv-btn:hover,
.smartv-app .smartv-pbtn:hover { background: var(--smartv-surface-strong) !important; border-color: currentColor !important; }
.smartv-app button.smartv-btn--primary,
.smartv-app .smartv-pbtn--primary {
	background: var(--smartv-fg-solid, transparent) !important;
	color: var(--smartv-bg-solid, inherit) !important;
	border-color: var(--smartv-fg-solid, currentColor) !important;
	font-weight: 700 !important;
}
.smartv-app button.smartv-btn--primary:hover,
.smartv-app .smartv-pbtn--primary:hover { background: var(--smartv-fg-solid, var(--smartv-surface-strong)) !important; opacity: 0.86; }
.smartv-app .smartv-pbtn--accent { border-color: #22c55e !important; color: #22c55e !important; }
.smartv-app .smartv-pbtn--accent:hover { background: rgba(34, 197, 94, 0.12) !important; }
.smartv-app button.smartv-btn[disabled],
.smartv-app .smartv-pbtn[disabled] { opacity: 0.4 !important; cursor: not-allowed !important; }
.smartv-app button.smartv-btn:focus-visible,
.smartv-app .smartv-pbtn:focus-visible { outline: 2px solid currentColor !important; outline-offset: 2px !important; }

/* Błędy formularza zamówienia (bez przeładowania strony). */
.smartv-app .smartv-form-errors:not([hidden]) {
	display: block;
	margin: 0 0 1rem;
	padding: 0.875rem 1rem;
	border: 1px solid var(--smartv-error);
	border-left-width: 4px;
	border-radius: var(--smartv-radius);
	background: rgba(239, 68, 68, 0.08);
	outline: none;
}
.smartv-app .smartv-form-errors__title { margin: 0 0 0.35rem; font-weight: 700; }
.smartv-app .smartv-form-errors ul { margin: 0; padding-left: 1.1rem; }
.smartv-app .smartv-form-errors li { margin: 0.15rem 0; }
.smartv-app .smartv-form-errors li::before { content: none !important; }
.smartv-app .is-invalid-field { border-color: var(--smartv-error) !important; box-shadow: 0 0 0 1px var(--smartv-error) !important; }
.smartv-app input[type="checkbox"].is-invalid-field { outline: 2px solid var(--smartv-error) !important; outline-offset: 2px; }

/* Decyzje o projektach. */
.smartv-app .smartv-designs__bulk { margin: 0.5rem 0 1rem; }
.smartv-app .smartv-design__thumb {
	all: unset;
	box-sizing: border-box;
	display: block;
	width: 100%;
	cursor: zoom-in;
	border-radius: 8px;
	overflow: hidden;
}
.smartv-app .smartv-design__thumb:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.smartv-app .smartv-design__thumb .smartv-design__img { display: block; width: 100%; aspect-ratio: 85.6 / 54; object-fit: cover; border-radius: 8px; }
.smartv-app .smartv-design__tools { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }
.smartv-app .smartv-design.is-ok { border-color: #22c55e !important; }
.smartv-app .smartv-design.is-fix { border-color: #f59e0b !important; }
.smartv-app .smartv-design.is-invalid { border-color: var(--smartv-error) !important; box-shadow: 0 0 0 1px var(--smartv-error) !important; }

.smartv-app .smartv-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin: 0.75rem 0 0; }
@media (max-width: 480px) { .smartv-app .smartv-choice { grid-template-columns: 1fr; } }
.smartv-app .smartv-choice__opt {
	position: relative;
	display: flex !important;
	align-items: center;
	gap: 0.65rem;
	min-height: 48px;
	margin: 0;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	cursor: pointer;
	font-weight: 600;
	user-select: none;
}
.smartv-app .smartv-choice__opt input {
	position: absolute !important;
	opacity: 0 !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	pointer-events: none;
}
.smartv-app .smartv-choice__box {
	flex: 0 0 auto;
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	border: 2px solid currentColor;
	border-radius: 6px;
	opacity: 0.85;
	background: transparent no-repeat center / 13px 13px;
}
.smartv-app .smartv-choice__opt--ok input:checked ~ .smartv-choice__box {
	border-color: #22c55e;
	background-color: #22c55e;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E");
	opacity: 1;
}
.smartv-app .smartv-choice__opt--fix input:checked ~ .smartv-choice__box {
	border-color: #f59e0b;
	background-color: #f59e0b;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16z'/%3E%3C/svg%3E");
	opacity: 1;
}
.smartv-app .smartv-choice__opt--ok:has(input:checked) { border-color: #22c55e; background: rgba(34, 197, 94, 0.1); }
.smartv-app .smartv-choice__opt--fix:has(input:checked) { border-color: #f59e0b; background: rgba(245, 158, 11, 0.1); }
.smartv-app .smartv-choice__opt:has(input:focus-visible) { outline: 2px solid currentColor; outline-offset: 2px; }
.smartv-app .smartv-design__note:not([hidden]) { display: grid; gap: 0.35rem; margin-top: 0.75rem; }
.smartv-app .smartv-design__note textarea { min-height: 5rem; resize: vertical; }
.smartv-app .smartv-designs__submit {
	position: sticky;
	bottom: 0;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1rem;
	padding: 0.875rem 1rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: var(--smartv-radius);
	background: var(--smartv-bg-solid, #fff);
}
.smartv-app .smartv-designs__count { margin: 0; font-weight: 600; }
.smartv-app .smartv-designs__submit .smartv-field-error { flex-basis: 100%; margin: 0; }

/* Okienka – na komputerze duże okno, na telefonie pełny ekran; strona w tle zablokowana. */
html.smartv-scroll-locked { overflow: hidden; }
.smartv-vmodal {
	position: fixed;
	inset: 0;
	z-index: 100003;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2vh 2vw;
	background: rgba(0, 0, 0, 0.8);
	overscroll-behavior: contain;
	touch-action: none;
	-webkit-tap-highlight-color: transparent;
}
.smartv-vmodal__dialog {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	width: min(1100px, 96vw);
	height: min(88vh, 860px);
	background: #111214;
	color: #f2f2f2;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
	font-family: inherit;
}
.smartv-vmodal__head { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0.75rem 0.65rem 1.1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.smartv-vmodal__title { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 1rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #f2f2f2; }
.smartv-vmodal__body { position: relative; min-height: 0; overflow: hidden; }
.smartv-vmodal__foot { display: grid; gap: 0.5rem; padding: 0.65rem 0.75rem calc(0.65rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(255, 255, 255, 0.08); }
.smartv-vmodal__foot:empty { display: none; }
@media (max-width: 640px) {
	.smartv-vmodal { padding: 0; }
	.smartv-vmodal__dialog { width: 100vw; height: 100vh; height: 100dvh; border: 0; border-radius: 0; }
	.smartv-vmodal__head { padding-top: calc(0.65rem + env(safe-area-inset-top, 0px)); }
}

/* Przyciski w okienkach – własny wygląd (jasne na ciemnym tle). */
.smartv-vbar { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }
.smartv-vbtn {
	all: unset;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.35rem;
	min-width: 44px !important;
	height: 44px !important;
	padding: 0 0.9rem !important;
	border: 1px solid rgba(255, 255, 255, 0.22) !important;
	border-radius: 10px !important;
	background: rgba(255, 255, 255, 0.06) !important;
	color: #f2f2f2 !important;
	font: 600 0.9375rem/1 system-ui, -apple-system, "Segoe UI", sans-serif !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}
.smartv-vbtn--icon { padding: 0 !important; width: 44px !important; font-size: 1.25rem !important; }
.smartv-vbtn.is-active { background: #f2f2f2 !important; color: #111214 !important; border-color: #f2f2f2 !important; }
.smartv-vbtn:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 2px !important; }
@media (hover: hover) and (pointer: fine) { .smartv-vbtn:not(.is-active):hover { background: rgba(255, 255, 255, 0.14) !important; } }
@media (max-width: 420px) { .smartv-vbtn { padding: 0 0.7rem !important; font-size: 0.875rem !important; } }

/* Podgląd obrazu. */
.smartv-lb__stage {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: radial-gradient(ellipse at 50% 35%, #26292e 0%, #111214 70%);
	touch-action: none;
	cursor: grab;
}
.smartv-lb__frame { position: relative; flex: 0 0 auto; overflow: hidden; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.55); transform-origin: center center; will-change: transform; }
.smartv-lb__img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; pointer-events: none; }

/* Wizualizacja 3D. */
.smartv-3d {
	position: absolute;
	inset: 0;
	overflow: hidden;
	perspective: 1400px;
	background: radial-gradient(ellipse at 50% 28%, #30343b 0%, #16181b 55%, #0b0c0d 100%);
	touch-action: none;
	cursor: grab;
	user-select: none;
}
.smartv-3d:active { cursor: grabbing; }
.smartv-3d__scene { position: absolute; left: 50%; top: 50%; width: 0; height: 0; transform-style: preserve-3d; }
.smartv-3d__card { position: absolute; left: 0; top: 0; transform-style: preserve-3d; will-change: transform; }
.smartv-3d__layer,
.smartv-3d__face { position: absolute; inset: 0; border-radius: var(--r, 12px); }
.smartv-3d__layer { background: linear-gradient(90deg, #cfd2d6, #eceef0 50%, #c4c7cb); }
.smartv-3d__face { overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: #f4f5f6; box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.2); }
.smartv-3d__img { position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); background: #f4f5f6 no-repeat center / cover; }
.smartv-3d__face.is-rotated .smartv-3d__img { transform: translate(-50%, -50%) rotate(90deg); }
.smartv-3d__face.is-blank { background: linear-gradient(135deg, #f7f7f8, #e3e5e8); }
.smartv-3d__gloss {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(115deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, 0.32) 50%, rgba(255, 255, 255, 0) 62%) no-repeat;
	background-size: 300% 100%;
	mix-blend-mode: screen;
}
.smartv-3d__shadow { position: absolute; left: 50%; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 70%); filter: blur(8px); pointer-events: none; transform-origin: center; }
.smartv-3d__hint { position: absolute; left: 0; right: 0; bottom: 0.75rem; margin: 0; text-align: center; font-size: 0.8125rem; color: rgba(242, 242, 242, 0.65); transition: opacity 0.4s; pointer-events: none; }
.smartv-3d__hint.is-hidden { opacity: 0; }
.smartv-3d__loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; color: rgba(242, 242, 242, 0.75); }

/* Mapa InPost – okno na pełny ekran na telefonie, zamykanie w nagłówku. */
.smartv-geo { overscroll-behavior: contain; touch-action: none; }
.smartv-geo__box { display: grid !important; grid-template-rows: auto minmax(0, 1fr); gap: 0 !important; padding: 0 !important; overflow: hidden; }
.smartv-geo__head { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0.6rem 0.6rem 1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.smartv-geo__title { flex: 1 1 auto; margin: 0; font-weight: 700; color: #f2f2f2; }
.smartv-geo__map { touch-action: auto; border-radius: 0 !important; }
@media (max-width: 640px) {
	.smartv-confirm.smartv-geo { padding: 0; }
	.smartv-geo__box { width: 100vw !important; max-width: none !important; height: 100vh !important; height: 100dvh !important; border-radius: 0 !important; border: 0 !important; }
	.smartv-geo__head { padding-top: calc(0.6rem + env(safe-area-inset-top, 0px)); }
}
.smartv-app .smartv-design__thumb .smartv-design__img.is-portrait { aspect-ratio: 54 / 85.6; max-height: 360px; width: auto; max-width: 100%; margin: 0 auto; }
.smartv-app .smartv-design__note textarea,
.smartv-app .smartv-choice { scroll-margin-bottom: 180px; scroll-margin-top: 80px; }
.smartv-app button.smartv-btn { min-height: var(--smartv-control-h, 44px) !important; padding: 0.625rem 1.25rem !important; }
.smartv-app .smartv-card__actions button.smartv-btn,
.smartv-app .smartv-card__actions .smartv-inline-form button.smartv-btn { min-height: 42px !important; padding: 0.5rem 1rem !important; }

/* ======================================================= 1.11: nawigacja z ikonami */
.smartv-app .smartv-nav { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 0.5rem !important; }
.smartv-app .smartv-nav__top { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; min-width: 0; }
.smartv-app .smartv-nav__who { min-width: 0; }
.smartv-app .smartv-nav__user { overflow: hidden; text-overflow: ellipsis; }
.smartv-app .smartv-nav__logout {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex: 0 0 auto;
	margin-left: auto;
	min-height: 40px;
	padding: 0 0.75rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: 999px;
	color: inherit !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 0.8125rem;
}
.smartv-app .smartv-nav__logout:hover { border-color: currentColor; }
.smartv-app .smartv-nav__links { display: flex !important; flex-wrap: nowrap !important; gap: 0.25rem !important; overflow-x: auto; scrollbar-width: none; }
.smartv-app .smartv-nav__links::-webkit-scrollbar { display: none; }
.smartv-app .smartv-nav__links li,
.smartv-app .smartv-nav__links li::before,
.smartv-app .smartv-nav__links a::before { margin: 0 !important; }
.smartv-app .smartv-nav__links li::before,
.smartv-app .smartv-nav__links a::before { content: none !important; display: none !important; }
.smartv-app .smartv-nav__links a {
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem !important;
	min-height: 44px;
	padding: 0 0.75rem;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	font-weight: 600;
	white-space: nowrap;
	opacity: 0.75;
}
.smartv-app .smartv-nav__links a:hover { opacity: 1; }
.smartv-app .smartv-nav__links a[aria-current="page"] { opacity: 1; border-bottom-color: currentColor !important; }
.smartv-app .smartv-nav__icon { flex: 0 0 auto; }
.smartv-app .smartv-nav__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--smartv-warn);
	color: #111;
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1;
}
@media (max-width: 520px) {
	.smartv-app .smartv-nav__links { justify-content: space-between; }
	.smartv-app .smartv-nav__links li { flex: 1 1 0; }
	.smartv-app .smartv-nav__links a { flex-direction: column; justify-content: center; gap: 0.15rem !important; width: 100%; min-height: 54px; padding: 0.25rem 0.25rem; font-size: 0.75rem; position: relative; }
	.smartv-app .smartv-nav__icon { width: 20px; height: 20px; }
	.smartv-app .smartv-nav__badge { position: absolute; top: 2px; left: calc(50% + 6px); min-width: 17px; height: 17px; font-size: 0.6875rem; padding: 0 4px; }
	.smartv-app .smartv-nav__logout span { display: none; }
	.smartv-app .smartv-nav__logout { width: 40px; padding: 0; justify-content: center; }
}
/* Okienka: rozmiar z widocznego obszaru ekranu (ustawia skrypt), bez 100vw/100vh. */
.smartv-vmodal { box-sizing: border-box; max-width: none; }
.smartv-vmodal *, .smartv-vmodal *::before, .smartv-vmodal *::after { box-sizing: border-box; }
@media (max-width: 640px) {
	.smartv-vmodal__dialog { width: var(--smartv-vw, 100%) !important; height: var(--smartv-vh, 100%) !important; max-width: 100% !important; max-height: 100% !important; }
	.smartv-confirm.smartv-geo .smartv-geo__box { width: var(--smartv-vw, 100%) !important; height: var(--smartv-vh, 100%) !important; }
}
@media (min-width: 641px) {
	.smartv-vmodal__dialog { width: min(1100px, calc(var(--smartv-vw, 100vw) - 4vw)); height: min(860px, calc(var(--smartv-vh, 100vh) - 6vh)); }
}
.smartv-app .smartv-restorable { margin-top: clamp(2rem, 6vw, 3.5rem); padding-top: 1.25rem; border-top: 1px solid var(--smartv-border); }
.smartv-app .smartv-restorable__list { display: grid; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.smartv-app .smartv-restorable__list > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-restorable__item { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1rem; padding: 0.65rem 0.9rem; border: 1px dashed var(--smartv-border-strong); border-radius: var(--smartv-radius); }
.smartv-app .smartv-restorable__name { font-weight: 600; flex: 1 1 auto; }
/* Pasek przyklejany skryptem (działa także, gdy motyw blokuje „sticky”). */
.smartv-app .smartv-orderbar.is-js,
.smartv-app .smartv-designs__submit.is-js { position: relative !important; bottom: auto !important; }
.smartv-app .smartv-orderbar.is-floating,
.smartv-app .smartv-designs__submit.is-floating {
	position: fixed !important;
	bottom: 0 !important;
	z-index: 9990 !important;
	margin: 0 !important;
	border-bottom-left-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
	box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.35) !important;
}
.smartv-floatbar-anchor { height: 0; }

/* ======================================================= 1.12: zakładka Wizytówki */
.smartv-app .smartv-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* Układ karty z wizualizacją: komputer – obok, telefon – nad danymi. */
.smartv-app .smartv-card.smartv-card--visual { grid-template-columns: 1fr; }
.smartv-app .smartv-card__visual { display: grid; justify-items: center; align-content: start; gap: 0.35rem; }
/* Układ zależny od szerokości panelu (nie ekranu) – działa przy każdej szerokości treści motywu. */
.smartv-app .smartv-list { container-type: inline-size; }
@container (min-width: 560px) {
	.smartv-app .smartv-card.smartv-card--visual { grid-template-columns: 200px minmax(0, 1fr) !important; }
	.smartv-app .smartv-card--visual .smartv-card__visual { justify-items: start; }
	.smartv-app .smartv-card--visual .smartv-card__side { grid-column: 1 / -1; }
}
@container (min-width: 960px) {
	.smartv-app .smartv-card.smartv-card--visual { grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1.1fr) !important; }
	.smartv-app .smartv-card--visual .smartv-card__side { grid-column: auto; }
}

/* Miniatura 3D (obraca się, gdy jest widoczna). */
.smartv-app .smartv-mini3d {
	all: unset;
	box-sizing: border-box;
	display: block;
	width: 200px;
	height: 150px;
	cursor: pointer;
	perspective: 700px;
	border-radius: 14px;
	background: radial-gradient(ellipse at 50% 35%, rgba(127, 127, 127, 0.18), rgba(127, 127, 127, 0) 70%);
	-webkit-tap-highlight-color: transparent;
}
.smartv-app .smartv-mini3d:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.smartv-app .smartv-mini3d__stage { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; }
.smartv-app .smartv-mini3d__card {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 171px;
	height: 108px;
	margin: -54px 0 0 -85.5px;
	transform-style: preserve-3d;
	transform: rotateX(10deg) rotateY(-24deg);
	transition: transform 0.4s ease;
	filter: drop-shadow(0 14px 16px rgba(0, 0, 0, 0.35));
	opacity: 0;
}
.smartv-app .smartv-mini3d.is-ready .smartv-mini3d__card { opacity: 1; transition: opacity 0.4s ease, transform 0.4s ease; }
.smartv-app .smartv-mini3d.is-portrait .smartv-mini3d__card { width: 86px; height: 136px; margin: -68px 0 0 -43px; }
.smartv-app .smartv-mini3d__face {
	position: absolute;
	inset: 0;
	border-radius: 6px;
	background: #e9eaec center / cover no-repeat;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.25);
}
.smartv-app .smartv-mini3d__face--back { transform: rotateY(180deg); }
.smartv-app .smartv-mini3d__face.is-blank { background: linear-gradient(135deg, #f7f7f8, #dfe2e6); }
.smartv-app .smartv-mini3d.is-spinning .smartv-mini3d__card { animation: smartv-mini-spin 12s linear infinite; }
.smartv-app .smartv-mini3d:hover .smartv-mini3d__card { animation-play-state: paused; }
@keyframes smartv-mini-spin {
	0% { transform: rotateX(10deg) rotateY(-24deg); }
	50% { transform: rotateX(10deg) rotateY(156deg); }
	100% { transform: rotateX(10deg) rotateY(336deg); }
}
@media (prefers-reduced-motion: reduce) { .smartv-app .smartv-mini3d__card { animation: none !important; } }
.smartv-app .smartv-mini3d__label {
	display: inline-block;
	padding: 2px 8px;
	border: 1px dashed var(--smartv-border-strong);
	border-radius: 999px;
	font-size: 0.6875rem;
	opacity: 0.8;
}

/* Przyciski: Przedłuż – zielony; Kopiuj link – gradient; Pobierz VCF – gradientowy obrys. */
.smartv-app .smartv-card__actions .smartv-btn--renew,
.smartv-app .smartv-btn--renew {
	background: #22c55e !important;
	border-color: #22c55e !important;
	color: #06220f !important;
	font-weight: 700 !important;
}
.smartv-app .smartv-btn--renew:hover { background: #16a34a !important; border-color: #16a34a !important; color: #fff !important; }
.smartv-app .smartv-card__actions .smartv-btn--gradfill,
.smartv-app button.smartv-btn--gradfill {
	border: 0 !important;
	background: linear-gradient(90deg, var(--smartv-grad-1, #2dd4bf), var(--smartv-grad-2, #8b5cf6)) !important;
	color: #fff !important;
	font-weight: 700 !important;
	padding: calc(0.5rem + 1px) calc(1rem + 1px) !important;
}
.smartv-app .smartv-btn--gradfill:hover { filter: brightness(1.08); }
.smartv-app .smartv-card__actions .smartv-btn--gradline,
.smartv-app .smartv-btn--gradline {
	border: 1px solid transparent !important;
	background:
		linear-gradient(var(--smartv-bg-solid, #1f1f1f), var(--smartv-bg-solid, #1f1f1f)) padding-box,
		linear-gradient(90deg, var(--smartv-grad-1, #2dd4bf), var(--smartv-grad-2, #8b5cf6)) border-box !important;
}
.smartv-app .smartv-btn--gradline:hover {
	background:
		linear-gradient(var(--smartv-surface-strong, #2a2a2a), var(--smartv-surface-strong, #2a2a2a)) padding-box,
		linear-gradient(90deg, var(--smartv-grad-1, #2dd4bf), var(--smartv-grad-2, #8b5cf6)) border-box !important;
}

/* Dodatkowe opcje (małe przyciski). */
.smartv-app .smartv-card__more { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-chip {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-height: 34px;
	padding: 0 0.7rem;
	border: 1px solid var(--smartv-border-strong);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	color: inherit !important;
	text-decoration: none !important;
	white-space: nowrap;
}
.smartv-app .smartv-chip:hover { border-color: currentColor; }
.smartv-app .smartv-chip:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.smartv-app .smartv-chip svg { flex: 0 0 auto; opacity: 0.85; }

/* Wyszukiwarka i sortowanie. */
.smartv-app .smartv-cardsearch { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; }
.smartv-app .smartv-cardsearch input[type="search"] { flex: 1 1 220px; min-width: 0; }
.smartv-app .smartv-cardsearch select { flex: 0 1 220px; }
.smartv-app .smartv-cardsearch__clear { align-self: center; font-size: 0.875rem; }
.smartv-app .smartv-similar-note { margin: 0 0 1rem; padding: 0.75rem 1rem; border: 1px dashed var(--smartv-border-strong); border-radius: var(--smartv-radius); }

/* Okienka: notka, statystyki, kod QR, podgląd telefonu (poza .smartv-app – okienka są w <body>). */
.smartv-vbtn--accent { border-color: #2dd4bf !important; color: #5eead4 !important; }
.smartv-3d__note { position: absolute; left: 0; right: 0; top: 0.75rem; margin: 0 auto; max-width: 90%; padding: 0.4rem 0.8rem; border-radius: 999px; background: rgba(0, 0, 0, 0.45); color: #f2f2f2; font-size: 0.8125rem; text-align: center; width: fit-content; z-index: 2; }
.smartv-mstats { position: absolute; inset: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 1rem; padding: 1rem; overflow: auto; }
.smartv-mstats__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.smartv-mstats__kpi { display: grid; gap: 0.2rem; padding: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 12px; background: rgba(255, 255, 255, 0.04); }
.smartv-mstats__kpi span { font-size: 0.75rem; color: rgba(242, 242, 242, 0.65); }
.smartv-mstats__kpi strong { font-size: 1.25rem; color: #f2f2f2; }
.smartv-mstats__chart { min-height: 200px; }
.smartv-mstats__chart .smartv-chart { display: block; width: 100%; height: 100%; max-height: 420px; font-family: system-ui, sans-serif; }
@media (max-width: 480px) { .smartv-mstats__kpi strong { font-size: 1rem; } }
.smartv-qrbox { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 1rem; padding: 1rem; overflow: auto; }
.smartv-qrbox__code { width: min(78vw, 320px); height: auto; image-rendering: pixelated; border-radius: 12px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45); }
.smartv-qrbox__hint { max-width: 420px; margin: 0; text-align: center; font-size: 0.875rem; color: rgba(242, 242, 242, 0.75); }
a.smartv-vbtn { text-decoration: none !important; }

/* ======================================================= 1.12.2: wizytówki – przyciski i miniatura odporne na motyw */

/* Ozdobniki motywu doklejane do przycisków (::before / ::after) – wyłączone na elementach wtyczki. */
.smartv-app .smartv-card button::before,
.smartv-app .smartv-card button::after,
.smartv-app .smartv-card .smartv-chip::before,
.smartv-app .smartv-card .smartv-chip::after,
.smartv-app .smartv-card .smartv-btn::before,
.smartv-app .smartv-card .smartv-btn::after {
	content: none !important;
	display: none !important;
}

/* Miniatura 3D: szara ramka, karta mniejsza – przy obrocie nie dotyka ramki. */
.smartv-app .smartv-card .smartv-mini3d {
	position: relative !important;
	display: block !important;
	box-sizing: border-box !important;
	width: 200px !important;
	height: 150px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(160, 160, 160, 0.45) !important;
	border-image: none !important;
	border-radius: 14px !important;
	background: radial-gradient(ellipse at 50% 35%, rgba(127, 127, 127, 0.16), rgba(127, 127, 127, 0) 70%) !important;
	box-shadow: none !important;
	line-height: 1 !important;
	/* Bez overflow: hidden – przycinanie spłaszcza scenę 3D (tył pokazywałby lustrzane odbicie przodu). */
	overflow: visible !important;
}
.smartv-app .smartv-card .smartv-mini3d__card { width: 136px; height: 86px; margin: -43px 0 0 -68px; }
.smartv-app .smartv-card .smartv-mini3d.is-portrait .smartv-mini3d__card { width: 70px; height: 111px; margin: -55.5px 0 0 -35px; }

/* Jeden wygląd przycisków: ta sama wysokość, zaokrąglenie i obramowanie. */
.smartv-app .smartv-card .smartv-card__actions .smartv-btn,
.smartv-app .smartv-card .smartv-card__actions .smartv-inline-form .smartv-btn,
.smartv-app .smartv-card .smartv-chip {
	position: relative !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	width: 100% !important;
	min-width: 0 !important;
	height: 44px !important;
	min-height: 44px !important;
	margin: 0 !important;
	padding: 0 0.9rem !important;
	border-width: 1px !important;
	border-style: solid !important;
	border-image: none !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
}
.smartv-app .smartv-card .smartv-card__actions .smartv-btn:not(.smartv-btn--renew):not(.smartv-btn--gradfill):not(.smartv-btn--gradline),
.smartv-app .smartv-card .smartv-chip {
	border-color: var(--smartv-border-strong) !important;
	background: transparent !important;
	color: inherit !important;
}
.smartv-app .smartv-card .smartv-card__actions .smartv-btn--gradfill { border-color: transparent !important; padding: 0 0.9rem !important; }
.smartv-app .smartv-card .smartv-card__actions .smartv-btn--gradline { border-color: transparent !important; }
.smartv-app .smartv-card .smartv-chip { height: 40px !important; min-height: 40px !important; font-size: 0.875rem !important; }
.smartv-app .smartv-card .smartv-chip:hover,
.smartv-app .smartv-card .smartv-card__actions .smartv-btn:not(.smartv-btn--renew):not(.smartv-btn--gradfill):not(.smartv-btn--gradline):hover { border-color: currentColor !important; }

/* Ikony: wyśrodkowane w pionie, odstęp od napisu. */
.smartv-app .smartv-card .smartv-chip svg {
	display: block !important;
	flex: 0 0 16px !important;
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
	vertical-align: middle !important;
	position: static !important;
	opacity: 0.85;
}

/* Siatka zamiast „piramidki”: telefon – 2 równe kolumny, ostatni nieparzysty na całą szerokość; szerzej – jeden rząd. */
.smartv-app .smartv-card .smartv-card__actions,
.smartv-app .smartv-card .smartv-card__more {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0.5rem !important;
}
.smartv-app .smartv-card .smartv-card__actions > .smartv-inline-form { display: contents !important; }
.smartv-app .smartv-card .smartv-card__actions > :last-child:nth-child(odd),
.smartv-app .smartv-card .smartv-card__more > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@container (min-width: 700px) {
	.smartv-app .smartv-card .smartv-card__actions { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important; }
	.smartv-app .smartv-card .smartv-card__more { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important; }
	.smartv-app .smartv-card .smartv-card__actions > :last-child:nth-child(odd),
	.smartv-app .smartv-card .smartv-card__more > :last-child:nth-child(odd) { grid-column: auto; }
}

/* „Usuń wizytówkę” – zwykły czerwony link, bez ozdobników motywu. */
.smartv-app .smartv-card .smartv-card__delete .smartv-link-danger { border: 0 !important; background: none !important; padding: 0 !important; min-height: 0 !important; height: auto !important; box-shadow: none !important; }
.smartv-app .smartv-card .smartv-mini3d__card { width: 150px; height: 95px; margin: -47.5px 0 0 -75px; }
.smartv-app .smartv-card .smartv-mini3d.is-portrait .smartv-mini3d__card { width: 76px; height: 120px; margin: -60px 0 0 -38px; }
.smartv-app .smartv-card .smartv-chip { height: auto !important; min-height: 40px !important; padding: 0.35rem 0.75rem !important; white-space: normal !important; text-align: center !important; line-height: 1.15 !important; }

/* Scena 3D miniatury: zachowanie trzeciego wymiaru (dwie strony karty) niezależnie od stylów motywu. */
.smartv-app .smartv-card .smartv-mini3d__stage,
.smartv-app .smartv-card .smartv-mini3d__card { transform-style: preserve-3d !important; overflow: visible !important; filter: none !important; }
.smartv-app .smartv-card .smartv-mini3d__face { backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; }
.smartv-app .smartv-card .smartv-mini3d__face--front, .smartv-app .smartv-card .smartv-mini3d__face--back { box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.25), 0 10px 18px rgba(0, 0, 0, 0.28) !important; }
.smartv-app .smartv-locked-note { margin: 0; padding: 0.6rem 0.85rem; border: 1px dashed var(--smartv-border-strong); border-radius: 10px; font-size: 0.875rem; opacity: 0.85; }

/* „Jak zobaczy odbiorca” – ciemny telefon dopasowany do okienka (przewija się tylko ekran telefonu). */
.smartv-phonewrap { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 18px 16px; overflow: hidden; box-sizing: border-box; }
.smartv-phonewrap * { box-sizing: border-box; }
.smartv-phone { flex: 0 0 auto; position: relative; padding: 0.55em; border-radius: 3em; background: #0b0b0c; box-shadow: 0 0 0 2px #2c2e33, 0 0 0 5px #111214, 0 30px 60px rgba(0, 0, 0, 0.6); font-family: -apple-system, system-ui, "Segoe UI", Roboto, sans-serif; line-height: 1.3; }
.smartv-phone__screen { height: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; border-radius: 2.5em; background: #000; color: #fff; scrollbar-width: none; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
.smartv-phone__screen::-webkit-scrollbar { display: none; }
:where(.smartv-phone) :where(div, span, ul, li, img, i) { margin: 0; padding: 0; }
.smartv-phone ul, .smartv-phone li { margin-top: 0; margin-bottom: 0; }
.smartv-phone li::before, .smartv-phone li::after { content: none !important; display: none !important; }
.smartv-phone__bar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; height: 3.2em; padding: 0 1.9em !important; background: #000; font-size: 0.95em; font-weight: 600; }
.smartv-phone__island { position: absolute; left: 50%; top: 0.7em; width: 6.4em; height: 1.9em; margin-left: -3.2em !important; border-radius: 1em; background: #0b0b0c; box-shadow: 0 0 0 1px #1a1a1c; }
.smartv-phone__icons { width: 3.2em; height: 0.8em; border-radius: 0.2em; background: linear-gradient(90deg, #fff 0 60%, transparent 60% 70%, #fff 70%); opacity: 0.9; }
.smartv-phone__head { display: flex; flex-direction: column; align-items: center; padding: 0.9em 1.2em 1.1em !important; text-align: center; }
.smartv-phone__avatar { display: block; width: 6.2em; height: 6.2em; border-radius: 50%; object-fit: cover; background: linear-gradient(135deg, #636366, #3a3a3c); }
.smartv-phone__avatar--init { display: flex; align-items: center; justify-content: center; color: #fff; font-size: 2.3em; font-weight: 600; width: 2.7em; height: 2.7em; }
.smartv-phone__name { margin-top: 0.55em !important; font-size: 1.55em; font-weight: 600; line-height: 1.15; color: #fff; word-break: break-word; }
.smartv-phone__sub { margin-top: 0.25em !important; font-size: 0.95em; line-height: 1.25; color: #8e8e93; }
.smartv-phone__actions { display: flex; justify-content: center; gap: 0.55em; width: 100%; margin-top: 1em !important; }
.smartv-phone__actions span { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 0.3em; max-width: 6em; padding: 0.6em 0.3em !important; border-radius: 0.9em; background: #1c1c1e; color: #0a84ff; font-size: 0.72em; font-weight: 500; }
.smartv-phone__actions i { display: flex; width: 1.6em; height: 1.6em; font-style: normal; }
.smartv-phone__actions svg { width: 100%; height: 100%; }
.smartv-phone__list { margin: 0 0.9em !important; list-style: none; border-radius: 0.9em; background: #1c1c1e; overflow: hidden; }
.smartv-phone__row { display: flex; flex-direction: column; gap: 0.15em; padding: 0.65em 1em !important; border-bottom: 1px solid #2c2c2e; }
.smartv-phone__row:last-child { border-bottom: 0; }
.smartv-phone__lbl { font-size: 0.75em; color: #8e8e93; }
.smartv-phone__val { font-size: 1em; color: #0a84ff; word-break: break-word; }
.smartv-phone__save { margin: 0.9em 0.9em 1.4em !important; padding: 0.75em !important; border-radius: 0.9em; background: #1c1c1e; color: #0a84ff; text-align: center; font-weight: 600; font-size: 1em; }
.smartv-phone__note { flex: 0 0 auto; max-width: 440px; padding: 0.45em 0.9em; border-radius: 999px; background: rgba(255, 255, 255, 0.06); color: rgba(242, 242, 242, 0.75); font-size: 0.8125rem; line-height: 1.35; text-align: center; }

/* 1.13.1: „Jak zobaczy odbiorca” – grafitowe tło, wyśrodkowane zdjęcie, ikony paska, przybliżanie telefonu. */
.smartv-phonewrap { touch-action: none; }
.smartv-phonewrap.is-zoomed { cursor: grab; }
.smartv-phone { transform-origin: center center; will-change: transform; }
.smartv-phone .smartv-phone__screen { background: #121214; touch-action: pan-y; }
.smartv-phone .smartv-phone__bar { background: #121214; }
.smartv-phone .smartv-phone__icons { display: flex; align-items: center; gap: 0.35em; width: auto; height: auto; background: none; border-radius: 0; opacity: 1; color: #fff; }
.smartv-phone .smartv-phone__icons svg { display: block; height: 0.85em; width: auto; fill: currentColor; }
.smartv-phone .smartv-phone__bat { height: 0.95em !important; }
.smartv-phone .smartv-phone__head { align-items: center !important; }
.smartv-phone .smartv-phone__avatar {
	display: block !important;
	align-self: center !important;
	flex: 0 0 auto !important;
	width: 6.2em !important;
	height: 6.2em !important;
	max-width: none !important;
	margin: 0 auto !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	float: none !important;
}
.smartv-phone .smartv-phone__avatar--init { display: flex !important; width: 2.7em !important; height: 2.7em !important; }
.smartv-phone .smartv-phone__actions span {
	gap: 0.4em;
	max-width: 6.8em;
	padding: 0.85em 0.5em 0.75em !important;
	border-radius: 1em;
	background: #232326;
	font-size: 0.76em;
	font-weight: 600;
}
.smartv-phone .smartv-phone__actions i { width: 1.7em; height: 1.7em; }
.smartv-phone .smartv-phone__list,
.smartv-phone .smartv-phone__save { background: #232326; }
.smartv-phone .smartv-phone__row { border-bottom-color: #313135; }

/* 1.13.2: podgląd telefonu – bez zaznaczania tekstu, notatka z formatowaniem, przesuwanie przy przybliżeniu. */
.smartv-phonewrap, .smartv-phonewrap * { -webkit-user-select: none !important; user-select: none !important; -webkit-touch-callout: none !important; }
.smartv-phone img { -webkit-user-drag: none; pointer-events: none; }
.smartv-phone .smartv-phone__val--note { white-space: pre-wrap; color: #e5e5ea; line-height: 1.4; word-break: normal; overflow-wrap: anywhere; }
.smartv-phonewrap.is-zoomed { cursor: grab; }
.smartv-phonewrap.is-zoomed .smartv-phone__screen { cursor: grab; }
.smartv-phonewrap.is-dragging, .smartv-phonewrap.is-dragging * { cursor: grabbing !important; }
/* 1.13.3: podpis pod wizualizacją poglądową. */
.smartv-app .smartv-card .smartv-mini3d__label {
	display: grid;
	gap: 1px;
	max-width: 200px;
	padding: 0.35rem 0.6rem;
	border: 1px dashed var(--smartv-border-strong);
	border-radius: 8px;
	font-size: 0.6875rem;
	line-height: 1.3;
	text-align: center;
	opacity: 0.85;
}
.smartv-app .smartv-card .smartv-mini3d__label strong { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.02em; }

/* ======================================================= 1.16.1: listy wyboru – jedna strzałka, w polu */
.smartv-app span.smartv-select { padding: 0 !important; background: none !important; }
.smartv-app span.smartv-select::after { content: none !important; display: none !important; }
.smartv-app .smartv-select > select.smartv-input { width: 100%; }
.smartv-app .smartv-row__type select.smartv-input { padding-right: 2.25rem !important; background-position: right 0.7rem center !important; }

/* ======================================================= 1.16.2: szerokość panelu i przyciski wierszy */
/* Niewidoczny element dystansowy: gdy motyw ustawia kontener „na szerokość zawartości”, panel i tak zajmuje
   docelowe 1160 px (albo całą dostępną szerokość, jeśli jest mniejsza). Na wąskim ekranie składa się (słowa się zawijają). */
.smartv-app::after {
	content: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M";
	display: block !important;
	height: 0 !important;
	overflow: hidden !important;
	visibility: hidden !important;
	font: 400 20px/0 monospace !important;
	letter-spacing: 0 !important;
	word-spacing: 0 !important;
	white-space: normal !important;
	pointer-events: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Przyciski ↑ ↓ Usuń – odporne na style <button> z motywu: równa wysokość, bez gradientowej ramki. */
.smartv-app .smartv-row__actions { align-items: stretch !important; }
.smartv-app button.smartv-icon-btn {
	all: unset;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: var(--smartv-control-h) !important;
	min-height: var(--smartv-control-h) !important;
	min-width: 48px !important;
	margin: 0 !important;
	padding: 0 0.75rem !important;
	border: 1px solid var(--smartv-border-strong) !important;
	border-radius: var(--smartv-radius) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	font-family: inherit !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	cursor: pointer;
	touch-action: manipulation;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.smartv-app button.smartv-icon-btn::before,
.smartv-app button.smartv-icon-btn::after { content: none !important; display: none !important; }
.smartv-app button.smartv-icon-btn:hover { background: var(--smartv-surface-strong) !important; border-color: currentColor !important; }
.smartv-app button.smartv-icon-btn:focus-visible { outline: 2px solid currentColor !important; outline-offset: 2px !important; }
.smartv-app button.smartv-icon-btn[disabled] { opacity: 0.3 !important; cursor: default; pointer-events: none; }
.smartv-app button.smartv-icon-btn--remove { padding-inline: 1rem !important; }
.smartv-app button.smartv-icon-btn--remove:hover { color: var(--smartv-error) !important; }
.smartv-app button.smartv-icon-btn svg { display: block; width: 16px; height: 16px; }

/* ======================================================= 1.17: zespół (przypisania, Pracownicy, zaproszenia) */
/* Odstęp notatek („Wizytówki w okresie próbnym…”) od wyszukiwarki. */
.smartv-app .smartv-attention { margin-bottom: 1rem !important; display: grid; gap: 0.75rem; }
.smartv-app .smartv-attention + .smartv-cardsearch { margin-top: 0.5rem; }

/* Przycisk-link (odporny na style <button> motywu). */
.smartv-app button.smartv-linkbtn,
.smartv-app summary.smartv-linkbtn {
	all: unset;
	box-sizing: border-box;
	display: inline;
	color: inherit !important;
	font: inherit !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	cursor: pointer;
	opacity: 0.85;
}
.smartv-app button.smartv-linkbtn:hover, .smartv-app summary.smartv-linkbtn:hover { opacity: 1; }
.smartv-app button.smartv-linkbtn::before, .smartv-app button.smartv-linkbtn::after,
.smartv-app button.smartv-link-danger::before, .smartv-app button.smartv-link-danger::after { content: none !important; display: none !important; }
.smartv-app button.smartv-link-danger { all: unset; color: var(--smartv-error) !important; font: inherit !important; font-size: 0.875rem !important; text-decoration: underline !important; text-underline-offset: 2px; cursor: pointer; }
.smartv-app button.smartv-linkbtn:focus-visible, .smartv-app button.smartv-link-danger:focus-visible, .smartv-app summary.smartv-linkbtn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Blok zespołu przy wizytówce. */
.smartv-app .smartv-cardteam { display: grid; gap: 0.6rem; margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px dashed var(--smartv-border); font-size: 0.9375rem; }
.smartv-app .smartv-cardteam__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.75rem; margin: 0; }
.smartv-app .smartv-cardteam__icon { opacity: 0.7; }
.smartv-app .smartv-cardteam__dept { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.smartv-app .smartv-cardteam__label { font-size: 0.8125rem; font-weight: 600; opacity: 0.75; }
.smartv-app .smartv-cardteam__select { width: auto !important; min-width: 12rem; height: 40px !important; min-height: 40px !important; font-size: 0.9375rem !important; }
.smartv-app .smartv-cardteam__assign > summary { list-style: none; width: max-content; cursor: pointer; }
.smartv-app .smartv-cardteam__assign > summary::-webkit-details-marker { display: none; }
.smartv-app .smartv-cardteam__panel { display: grid; gap: 0.6rem; margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); }
.smartv-app .smartv-cardteam__invite { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; margin: 0; }
.smartv-app .smartv-cardteam__invite .smartv-field { flex: 1 1 16rem; margin: 0; }
.smartv-app .smartv-cardteam__panel .smartv-hint { margin: 0; }

/* Zakładka Pracownicy. */
.smartv-app .smartv-team__form { display: grid; gap: 1rem; max-width: 40rem; }
.smartv-app .smartv-team__form > .smartv-btn { justify-self: start; }
.smartv-app .smartv-team__roles, .smartv-app .smartv-team__scope { display: grid; gap: 0.4rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.smartv-app .smartv-team__radio, .smartv-app .smartv-team__check { display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; }
.smartv-app .smartv-team__radio small { opacity: 0.7; }
.smartv-app .smartv-team__depts { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; padding-left: 1.6rem; }
.smartv-app .smartv-team__list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.smartv-app .smartv-team__list > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-team__person { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 0.5rem 1.5rem; align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--smartv-border); }
.smartv-app .smartv-team__person:first-child { padding-top: 0.25rem; }
.smartv-app .smartv-team__person.is-disabled { opacity: 0.6; }
.smartv-app .smartv-team__who { display: grid; gap: 0.15rem; min-width: 0; }
.smartv-app .smartv-team__email { font-size: 0.875rem; opacity: 0.7; overflow-wrap: anywhere; }
.smartv-app .smartv-team__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.6rem; font-size: 0.8125rem; }
.smartv-app .smartv-team__role { padding: 0.15rem 0.6rem; border-radius: 999px; border: 1px solid var(--smartv-border-strong); font-weight: 700; }
.smartv-app .smartv-team__role--owner { border-color: transparent; background: linear-gradient(90deg, #14b8a6, #7c3aed); color: #fff; }
.smartv-app .smartv-team__role--manager { border-color: #8b5cf6; }
.smartv-app .smartv-team__scope-label, .smartv-app .smartv-team__status { opacity: 0.75; }
.smartv-app .smartv-team__status.is-off { color: var(--smartv-error); opacity: 1; }
.smartv-app .smartv-team__cards { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-team__card { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.3rem 0.7rem; border: 1px solid var(--smartv-border); border-radius: 999px; font-size: 0.875rem; }
.smartv-app .smartv-team__assign { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.smartv-app .smartv-team__assign .smartv-select { flex: 0 1 18rem; }
.smartv-app .smartv-team__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
.smartv-app .smartv-team__more[open] { flex-basis: 100%; }
.smartv-app .smartv-team__more > summary { list-style: none; }
.smartv-app .smartv-team__more > summary::-webkit-details-marker { display: none; }
.smartv-app .smartv-team__roleform { display: grid; gap: 0.5rem; margin: 0.75rem 0; padding: 1rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); max-width: 36rem; }
.smartv-app .smartv-team__roleform > .smartv-btn { justify-self: start; }
.smartv-app .smartv-team__person--invite, .smartv-app .smartv-team__person--dept { grid-template-columns: 1fr auto; align-items: center; }
.smartv-app .smartv-team__person--dept { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; }
.smartv-app .smartv-team__deptform { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.smartv-app .smartv-team__deptform .smartv-input { width: auto; min-width: 14rem; }
.smartv-app .smartv-team__deptform--new { margin-top: 1rem; }
@media (max-width: 640px) {
	.smartv-app .smartv-team__person { grid-template-columns: 1fr; }
	.smartv-app .smartv-team__deptform .smartv-input { min-width: 0; flex: 1 1 100%; }
}

/* Ekran zaproszenia. */
.smartv-app .smartv-invite__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; }
.smartv-app .smartv-notice__list { margin: 0; padding-left: 1.1rem; }

/* ======================================================= 1.18: eksport VCF (ZIP) */
.smartv-app .smartv-count-wrap { display: grid; gap: 0.35rem; }
.smartv-app .smartv-count-wrap .smartv-count { margin: 0; }
.smartv-app .smartv-export { margin: 0; }
.smartv-app button.smartv-export__btn { display: inline-flex !important; align-items: center; gap: 0.4rem; text-decoration: none !important; font-size: 0.875rem !important; opacity: 0.9; }
.smartv-app button.smartv-export__btn:hover { opacity: 1; text-decoration: underline !important; }

/* ======================================================= 1.19: role (Zespół) */
.smartv-app .smartv-team__legend { margin-top: 1rem; max-width: 46rem; }
.smartv-app .smartv-team__legend > summary { cursor: pointer; font-weight: 700; width: max-content; }
.smartv-app .smartv-team__legend dl { display: grid; gap: 0.5rem; margin: 0.75rem 0; }
.smartv-app .smartv-team__legend dl > div { display: grid; grid-template-columns: 10rem 1fr; gap: 0.75rem; }
.smartv-app .smartv-team__legend dt { font-weight: 700; }
.smartv-app .smartv-team__legend dd { margin: 0; opacity: 0.85; }
@media (max-width: 560px) { .smartv-app .smartv-team__legend dl > div { grid-template-columns: 1fr; gap: 0.1rem; } }
.smartv-app .smartv-team__radio--kind { align-items: flex-start; padding: 0.6rem 0.75rem; border: 1px solid var(--smartv-border); border-radius: 10px; }
.smartv-app .smartv-team__radio--kind:has(input:checked) { border-color: #8b5cf6; background: var(--smartv-surface); }
.smartv-app .smartv-team__radio--kind input { margin-top: 0.3rem; }
.smartv-app .smartv-team__radio--kind span, .smartv-app .smartv-team__pay span { display: grid; gap: 0.1rem; }
.smartv-app .smartv-team__radio--kind small, .smartv-app .smartv-team__pay small { opacity: 0.75; font-size: 0.8125rem; }
.smartv-app .smartv-team__pay { align-items: flex-start; }
.smartv-app .smartv-team__paychip { padding: 0.15rem 0.6rem; border-radius: 999px; background: rgba(34, 197, 94, 0.14); color: var(--smartv-ok); font-weight: 600; }
.smartv-app .smartv-team__role--company_manager { border-color: #8b5cf6; }
.smartv-app .smartv-team__role--dept_manager { border-color: #2dd4bf; }
.smartv-app .smartv-team__role--accounting { border-color: #f59e0b; }
[data-smartv-for][hidden] { display: none !important; }

/* ======================================================= 1.19.1: struktura zespołu (drzewko) */
.smartv-app .smartv-tree { overflow-x: auto; padding: 0.25rem 0 0.5rem; }
.smartv-app .smartv-tree ul { margin: 0; padding: 0 0 0 1.6rem; list-style: none; position: relative; }
.smartv-app .smartv-tree > ul { padding-left: 0; }
.smartv-app .smartv-tree li { position: relative; margin: 0; padding: 0.4rem 0 0 0; }
.smartv-app .smartv-tree li::marker { content: none; }
.smartv-app .smartv-tree ul ul > li::before { content: "" !important; display: block !important; position: absolute; left: -1rem; top: 0; bottom: 0; border-left: 2px solid var(--smartv-border-strong); }
.smartv-app .smartv-tree ul ul > li:last-child::before { bottom: auto; height: 1.55rem; }
.smartv-app .smartv-tree ul ul > li::after { content: "" !important; display: block !important; position: absolute; left: -1rem; top: 1.55rem; width: 0.85rem; border-top: 2px solid var(--smartv-border-strong); }
.smartv-app .smartv-tree__node { position: relative; display: inline-grid; gap: 0.05rem; max-width: 100%; padding: 0.45rem 0.8rem 0.45rem 0.95rem; border: 1px solid var(--smartv-border); border-radius: 10px; background: var(--smartv-surface); line-height: 1.3; }
.smartv-app .smartv-tree__node::before { content: ""; position: absolute; left: 0; top: 0.4rem; bottom: 0.4rem; width: 4px; border-radius: 0 4px 4px 0; background: var(--smartv-border-strong); }
.smartv-app .smartv-tree__node strong { font-size: 0.9375rem; }
.smartv-app .smartv-tree__node small { font-size: 0.75rem; opacity: 0.75; }
.smartv-app .smartv-tree__node--owner::before, .smartv-app .smartv-tree__dot--owner { background: linear-gradient(180deg, #14b8a6, #7c3aed); }
.smartv-app .smartv-tree__node--company_manager::before, .smartv-app .smartv-tree__dot--company_manager { background: #8b5cf6; }
.smartv-app .smartv-tree__node--dept_manager::before, .smartv-app .smartv-tree__dot--dept_manager { background: #2dd4bf; }
.smartv-app .smartv-tree__node--accounting::before, .smartv-app .smartv-tree__dot--accounting { background: #f59e0b; }
.smartv-app .smartv-tree__node--employee::before, .smartv-app .smartv-tree__dot--employee { background: #94a3b8; }
.smartv-app .smartv-tree__node--dept { border-style: dashed; background: transparent; }
.smartv-app .smartv-tree__node--dept::before { display: none; }
.smartv-app .smartv-tree__node.is-muted, .smartv-app .smartv-tree__node.is-disabled { opacity: 0.55; }
.smartv-app .smartv-tree__node.is-me { box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.45); }
.smartv-app .smartv-tree__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.9rem; margin-top: 0.75rem; }
.smartv-app .smartv-tree__dot { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: -0.5rem; }
/* Linie drzewka odporne na style list motywu (wysokość, szerokość, tło pseudo-elementów). */
.smartv-app .smartv-tree ul ul > li::before { top: 0 !important; bottom: 0 !important; left: -1rem !important; right: auto !important; width: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-left: 2px solid var(--smartv-border-strong) !important; transform: none !important; }
.smartv-app .smartv-tree ul ul > li:last-child::before { bottom: auto !important; height: 1.55rem !important; }
.smartv-app .smartv-tree ul ul > li::after { top: 1.55rem !important; left: -1rem !important; right: auto !important; bottom: auto !important; width: 0.85rem !important; height: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-top: 2px solid var(--smartv-border-strong) !important; transform: none !important; }
.smartv-app .smartv-tree li { list-style: none !important; }
.smartv-app .smartv-tree ul ul > li::before, .smartv-app .smartv-tree ul ul > li::after { position: absolute !important; }
.smartv-app .smartv-tree__li { display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
.smartv-app .smartv-tree__li .smartv-tree__dot { margin-right: 0; }

/* ======================================================= 1.19.4: Zespół – poprawki wyglądu */
/* 1. Drzewko: bez punktorów motywu na pierwszym poziomie. */
.smartv-app .smartv-tree li { padding-left: 0 !important; margin-left: 0 !important; list-style: none !important; background: none !important; }
.smartv-app .smartv-tree li::marker { content: "" !important; }
.smartv-app .smartv-tree > ul > li::before, .smartv-app .smartv-tree > ul > li::after { content: none !important; display: none !important; }

/* 2. Pola wyboru w zespole = jak w zamówieniu: kwadrat z zaokrągleniem i ptaszkiem, zaznaczony – zielony. */
.smartv-app .smartv-team__radio--kind input[type="radio"],
.smartv-app .smartv-team__check input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	flex: 0 0 auto !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	margin: 0.1rem 0 0 !important;
	padding: 0 !important;
	border: 2px solid currentColor !important;
	border-radius: 6px !important;
	background: transparent none no-repeat center / 14px 14px !important;
	box-shadow: none !important;
	opacity: 0.9;
	cursor: pointer;
}
.smartv-app .smartv-team__radio--kind input[type="radio"]::before, .smartv-app .smartv-team__radio--kind input[type="radio"]::after,
.smartv-app .smartv-team__check input[type="checkbox"]::before, .smartv-app .smartv-team__check input[type="checkbox"]::after { content: none !important; display: none !important; }
.smartv-app .smartv-team__radio--kind input[type="radio"]:checked,
.smartv-app .smartv-team__check input[type="checkbox"]:checked {
	border-color: #22c55e !important;
	background-color: #22c55e !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E") !important;
	opacity: 1;
}
.smartv-app .smartv-team__radio--kind input:focus-visible, .smartv-app .smartv-team__check input:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 2px; }
.smartv-app .smartv-team__radio--kind { gap: 0.75rem !important; }
.smartv-app .smartv-team__radio--kind:has(input:checked) { border-color: #22c55e !important; box-shadow: inset 0 0 0 1px #22c55e; background: rgba(34, 197, 94, 0.06); }

/* 3–4. Osoby: dwie kolumny (kto | wizytówka), jedna linia między osobami. */
.smartv-app .smartv-team__person--row { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 2rem; align-items: start; padding: 1.25rem 0 !important; border: 0 !important; }
.smartv-app .smartv-team__list > .smartv-team__person--row + .smartv-team__person--row { border-top: 1px solid var(--smartv-border) !important; }
.smartv-app .smartv-team__left { display: grid; gap: 0.6rem; min-width: 0; }
.smartv-app .smartv-team__left .smartv-team__meta { font-size: 0.8125rem; }
.smartv-app .smartv-team__left .smartv-team__role { width: max-content; }
.smartv-app .smartv-team__left .smartv-team__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.15rem 0 0; }
.smartv-app .smartv-team__right { display: grid; gap: 0.6rem; min-width: 0; }
.smartv-app .smartv-team__cardbox { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.75rem 0.9rem; border: 1px solid var(--smartv-border-strong); border-radius: 12px; background: var(--smartv-surface); }
.smartv-app .smartv-team__cardicon { display: inline-flex; opacity: 0.75; }
.smartv-app .smartv-team__cardtxt { display: grid; gap: 0.1rem; flex: 1 1 10rem; min-width: 0; }
.smartv-app .smartv-team__cardtxt strong { font-size: 0.9375rem; overflow-wrap: anywhere; }
.smartv-app .smartv-team__cardtxt small { font-size: 0.8125rem; opacity: 0.7; }
.smartv-app .smartv-team__cardbtns { display: inline-flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-team__cardbtns form { margin: 0; }
.smartv-app .smartv-team__right .smartv-team__assign { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0; }
.smartv-app .smartv-team__right .smartv-team__assign .smartv-select { flex: 1 1 12rem; }
.smartv-app .smartv-team__nocard { margin: 0; padding: 0.75rem 0.9rem; border: 1px dashed var(--smartv-border); border-radius: 12px; font-size: 0.875rem; opacity: 0.75; }
.smartv-app .smartv-team__rolepanel { grid-column: 1 / -1; display: grid; gap: 0.75rem; padding: 1rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); }
.smartv-app .smartv-team__rolepanel .smartv-team__roleform { margin: 0; padding: 0; border: 0; background: none; max-width: none; }
.smartv-app .smartv-team__rolepanel[hidden] { display: none !important; }
@media (max-width: 720px) { .smartv-app .smartv-team__person--row { grid-template-columns: 1fr; } }

/* Małe przyciski (Edytuj / Odepnij / Zmień rolę / Usuń z zespołu) – spójne, niezależne od stylu przycisków motywu. */
.smartv-app .smartv-btn--sm, .smartv-app a.smartv-btn--sm, .smartv-app button.smartv-btn--sm {
	all: unset;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 36px !important;
	padding: 0 0.9rem !important;
	border: 1px solid var(--smartv-border-strong) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: inherit !important;
	font: inherit !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.smartv-app .smartv-btn--sm::before, .smartv-app .smartv-btn--sm::after { content: none !important; display: none !important; }
.smartv-app .smartv-btn--sm:hover { border-color: currentColor !important; background: var(--smartv-surface-strong) !important; }
.smartv-app .smartv-btn--sm:focus-visible { outline: 2px solid currentColor !important; outline-offset: 2px; }
.smartv-app .smartv-btn--sm[aria-expanded="true"] { border-color: #22c55e !important; }
.smartv-app .smartv-btn--sm.smartv-btn--danger { color: var(--smartv-error) !important; border-color: color-mix(in srgb, var(--smartv-error) 45%, transparent) !important; }
.smartv-app .smartv-btn--sm.smartv-btn--danger:hover { border-color: var(--smartv-error) !important; background: color-mix(in srgb, var(--smartv-error) 10%, transparent) !important; }

/* ======================================================= 1.19.5: okna podglądu – tytuł w liniach, etykieta pod kartą */
.smartv-vmodal__head { align-items: flex-start !important; }
.smartv-vmodal__title { display: grid !important; gap: 0.1rem !important; flex: 1 1 auto !important; min-width: 0 !important; margin: 0 !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; font-size: 1rem !important; line-height: 1.25 !important; }
.smartv-vmodal__kicker { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(242, 242, 242, 0.6); }
.smartv-vmodal__line { font-size: 1rem; font-weight: 700; color: #f2f2f2; overflow-wrap: anywhere; }
.smartv-vmodal__line + .smartv-vmodal__line { font-size: 0.875rem; font-weight: 500; color: rgba(242, 242, 242, 0.75); }
.smartv-vmodal__close { flex: 0 0 auto !important; }
.smartv-vmodal__dialog, .smartv-vmodal__body { min-width: 0 !important; max-width: 100% !important; }
.smartv-3d__note { position: absolute !important; top: auto !important; bottom: 2.5rem !important; left: 50% !important; right: auto !important; transform: translateX(-50%); width: max-content !important; max-width: calc(100% - 2rem) !important; margin: 0 !important; padding: 0.3rem 0.8rem !important; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; background: rgba(255, 255, 255, 0.07) !important; color: rgba(242, 242, 242, 0.85) !important; font-size: 0.75rem !important; line-height: 1.35 !important; font-weight: 500 !important; white-space: normal !important; text-align: center; z-index: 2; box-sizing: border-box; }

/* ======================================================= 1.19.5: Zespół – kafelki ról, działy w kafelku, płatności, drzewko */
.smartv-app .smartv-team__roles { gap: 0.5rem !important; }
.smartv-app .smartv-team__kindtile { border: 1px solid var(--smartv-border); border-radius: 10px; transition: border-color 0.15s ease, background-color 0.15s ease; }
.smartv-app .smartv-team__kindtile .smartv-team__radio--kind { border: 0 !important; background: none !important; box-shadow: none !important; padding: 0.7rem 0.85rem !important; width: 100%; box-sizing: border-box; }
.smartv-app .smartv-team__kindtile:has(input[type="radio"]:checked) { border-color: #22c55e; box-shadow: inset 0 0 0 1px #22c55e; background: rgba(34, 197, 94, 0.06); }
.smartv-app .smartv-team__kindextra { display: grid; gap: 0.5rem; padding: 0 0.85rem 0.85rem calc(0.85rem + 24px + 0.75rem); }
.smartv-app .smartv-team__extralabel { font-size: 0.8125rem; font-weight: 600; opacity: 0.8; }
.smartv-app .smartv-team__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.smartv-app .smartv-team__chip { position: relative; display: inline-flex; cursor: pointer; }
.smartv-app .smartv-team__chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.smartv-app .smartv-team__chip span { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.85rem; border: 1px solid var(--smartv-border-strong); border-radius: 999px; font-size: 0.875rem; font-weight: 600; transition: all 0.15s ease; }
.smartv-app .smartv-team__chip span::before { content: ""; width: 14px; height: 14px; border: 2px solid currentColor; border-radius: 4px; opacity: 0.7; box-sizing: border-box; }
.smartv-app .smartv-team__chip input:checked + span { border-color: #22c55e; background: rgba(34, 197, 94, 0.12); }
.smartv-app .smartv-team__chip input:checked + span::before { border-color: #22c55e; background: #22c55e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E") no-repeat center / 10px 10px; opacity: 1; }
.smartv-app .smartv-team__chip input:focus-visible + span { outline: 2px solid #22c55e; outline-offset: 2px; }
/* „Zamówienia i płatności” – w jednej linii z polami ról, wyróżnione gradientem. */
.smartv-app .smartv-team__pay { display: flex !important; gap: 0.75rem !important; align-items: flex-start !important; padding: 0.7rem 0.85rem !important; border: 1px dashed var(--smartv-border-strong); border-radius: 10px; }
.smartv-app .smartv-team__gradtext { background: linear-gradient(90deg, #2dd4bf, #a78bfa); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; font-weight: 800; }
.smartv-app .smartv-team__pay:has(input:checked) { border-style: solid; border-color: #22c55e; }
.smartv-app .smartv-team__deptpick { max-width: 28rem; }
.smartv-app .smartv-team__mydept { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.smartv-app .smartv-team__mydept .smartv-select { flex: 0 1 14rem; }
.smartv-app .smartv-team__mydept .smartv-input { height: 38px !important; min-height: 38px !important; font-size: 0.875rem !important; }
.smartv-app .smartv-team__person--row.is-flash { animation: smartv-flash 1.6s ease; }
@keyframes smartv-flash { 0%, 40% { background: rgba(34, 197, 94, 0.12); } 100% { background: transparent; } }

/* Karta wizytówki: kto / funkcja / dział (neutralnie) + panel przypisania. */
.smartv-app .smartv-cardteam__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
.smartv-app .smartv-cardteam__info { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.35rem; margin: 0; }
.smartv-app .smartv-cardteam__meta { opacity: 0.7; }
.smartv-app .smartv-cardteam__btns { display: inline-flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-cardteam__btns form { margin: 0; }
.smartv-app .smartv-cardteam__panel { display: grid; gap: 0.85rem; margin-top: 0.25rem; padding: 1rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); }
.smartv-app .smartv-cardteam__panel[hidden] { display: none !important; }
.smartv-app .smartv-cardteam__pick { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; margin: 0; }
.smartv-app .smartv-cardteam__pick .smartv-field { flex: 1 1 16rem; margin: 0; }
.smartv-app .smartv-cardteam__unassign { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.smartv-app .smartv-cardteam__panel .smartv-hint { margin: 0; }
.smartv-app .smartv-btn--sm.smartv-btn--ok { border-color: #22c55e !important; }
.smartv-app .smartv-btn--sm.smartv-btn--ok:hover { background: rgba(34, 197, 94, 0.14) !important; }

/* Drzewko (schemat): osoby nad firmą po lewej, gałęzie od osi. */
.smartv-app .smartv-org { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; column-gap: 2.25rem; overflow-x: auto; padding: 0.25rem 0 0.5rem; }
.smartv-app .smartv-org.is-single { grid-template-columns: max-content; }
.smartv-app .smartv-org__top { position: relative; display: grid; gap: 0.6rem; }
.smartv-app .smartv-org:not(.is-single) .smartv-org__top::after { content: ""; position: absolute; top: 50%; right: -2.25rem; width: 2.25rem; border-top: 2px solid var(--smartv-border-strong); }
.smartv-app .smartv-org__branches, .smartv-app .smartv-org__kids { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.smartv-app .smartv-org__branches { position: relative; padding-left: 1.5rem !important; border-left: 2px solid var(--smartv-border-strong); display: grid; gap: 0.9rem; }
.smartv-app .smartv-org__branches > li, .smartv-app .smartv-org__kids > li { position: relative; margin: 0 !important; padding: 0 !important; list-style: none !important; background: none !important; }
.smartv-app .smartv-org li::marker { content: "" !important; }
.smartv-app .smartv-org li::before { content: none !important; display: none !important; }
.smartv-app .smartv-org__branches > li::after { content: "" !important; display: block !important; position: absolute !important; left: -1.5rem; top: 1.45rem; width: 1.3rem; border-top: 2px solid var(--smartv-border-strong); }
.smartv-app .smartv-org__kids { position: relative; display: grid; gap: 0.5rem; margin: 0.5rem 0 0 1rem !important; padding-left: 1.25rem !important; border-left: 2px solid var(--smartv-border-strong); }
.smartv-app .smartv-org__kids > li::after { content: "" !important; display: block !important; position: absolute !important; left: -1.25rem; top: 1.45rem; width: 1.05rem; border-top: 2px solid var(--smartv-border-strong); }
.smartv-app a.smartv-tree__node { text-decoration: none !important; color: inherit !important; cursor: pointer; transition: border-color 0.15s ease, transform 0.15s ease; }
.smartv-app a.smartv-tree__node:hover { border-color: currentColor; transform: translateY(-1px); }
.smartv-app .smartv-tree__node.is-member { border-style: dashed; }
@media (max-width: 640px) {
	.smartv-app .smartv-org { grid-template-columns: 1fr; row-gap: 0.9rem; }
	.smartv-app .smartv-org__top::after { display: none; }
	.smartv-app .smartv-org__branches { margin-left: 1rem !important; }
}
.smartv-app .smartv-cardteam__info, .smartv-app .smartv-cardteam__unassign, .smartv-app .smartv-team__nocard { font-size: 0.9375rem !important; line-height: 1.45 !important; }
.smartv-app .smartv-cardteam__panel .smartv-hint, .smartv-app .smartv-tree__legend { font-size: 0.8125rem !important; }
/* Ukrywanie pól zależnych od roli ma pierwszeństwo przed ich wyglądem (np. „Zamówienia i płatności”). */
.smartv-app [data-smartv-for][hidden], .smartv-app .smartv-team__pay[hidden] { display: none !important; }
/* 1.19.6: zmiana nazwy działu. */
.smartv-app .smartv-team__deptname { font-size: 1rem; min-width: 10rem; }
.smartv-app .smartv-team__deptform [hidden] { display: none !important; }
.smartv-app .smartv-btn--sm.smartv-btn--ok { background: #22c55e !important; border-color: #22c55e !important; color: #fff !important; }
.smartv-app .smartv-btn--sm.smartv-btn--ok:hover { background: #16a34a !important; }
.smartv-app .smartv-cardteam__pick .smartv-btn--sm.smartv-btn--ok { background: transparent !important; color: inherit !important; }
.smartv-app .smartv-cardteam__pick .smartv-btn--sm.smartv-btn--ok:hover { background: rgba(34, 197, 94, 0.14) !important; }
.smartv-app .smartv-convert [data-smartv-company-fields][hidden] { display: none !important; }
.smartv-app .smartv-convert .smartv-team__roles { margin-bottom: 1rem; }

/* ======================================================= 1.20: wizytówka tylko do wglądu, zatwierdzanie, historia */
.smartv-app .smartv-readonly { display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.55rem; border: 1px solid var(--smartv-border-strong); border-radius: 999px; font-size: 0.6875rem; font-weight: 600; vertical-align: middle; opacity: 0.75; }
.smartv-app .smartv-team__approvals { display: grid; gap: 0.6rem; }
.smartv-app .smartv-team__approval { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; padding: 0.85rem 1rem; border: 1px solid #f59e0b; border-radius: 12px; background: rgba(245, 158, 11, 0.07); }
.smartv-app .smartv-team__approval form { margin: 0; }
.smartv-app .smartv-team__approval .smartv-team__cardbtns { gap: 0.5rem; }
.smartv-app .smartv-team__pendingtag { padding: 0.1rem 0.55rem; border-radius: 999px; background: rgba(245, 158, 11, 0.16); color: #d97706; font-size: 0.75rem; font-weight: 700; }
.smartv-app .smartv-team__log { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.smartv-app .smartv-team__log td { padding: 0.55rem 0.5rem; border-bottom: 1px solid var(--smartv-border); vertical-align: top; }
.smartv-app .smartv-team__log td:first-child { white-space: nowrap; opacity: 0.7; }
.smartv-app .smartv-team__logwrap { overflow-x: auto; }
@media (max-width: 640px) { .smartv-app .smartv-team__log td { display: block; padding: 0.15rem 0; border: 0; } .smartv-app .smartv-team__log tr { display: block; padding: 0.6rem 0; border-bottom: 1px solid var(--smartv-border); } }
.smartv-app .smartv-leave { margin-top: 0.5rem; }

/* ======================================================= 1.21: jeden kształt przycisków (prostokąt z zaokrąglonymi rogami);
   etykiety informacyjne (role, statusy) zostają „pigułkami”. */
.smartv-app { --smartv-btn-radius: 12px; }
.smartv-app .smartv-btn, .smartv-app a.smartv-btn, .smartv-app button.smartv-btn, .smartv-app span.smartv-btn,
.smartv-app .smartv-btn--sm, .smartv-app a.smartv-btn--sm, .smartv-app button.smartv-btn--sm, .smartv-app span.smartv-btn--sm,
.smartv-app .smartv-chip, .smartv-app a.smartv-chip, .smartv-app button.smartv-chip, .smartv-app summary.smartv-chip,
.smartv-app .smartv-pbtn, .smartv-app button.smartv-pbtn,
.smartv-app .smartv-nav__logout, .smartv-app a.smartv-nav__logout, .smartv-app button.smartv-nav__logout {
	border-radius: var(--smartv-btn-radius) !important;
}
.smartv-app button.smartv-btn::before, .smartv-app button.smartv-btn::after,
.smartv-app button.smartv-pbtn::before, .smartv-app button.smartv-pbtn::after { border-radius: inherit !important; }
.smartv-app .smartv-btn--sm, .smartv-app a.smartv-btn--sm, .smartv-app button.smartv-btn--sm { border-radius: 10px !important; }
.smartv-app .smartv-team__chip span { border-radius: 10px !important; }
.smartv-confirm .smartv-btn { border-radius: var(--smartv-btn-radius, 12px) !important; }

/* Przycisk nieaktywny (np. „Prośba wysłana 28.09”). */
.smartv-app span.smartv-btn.is-disabled, .smartv-app .smartv-btn.is-disabled { display: inline-flex; align-items: center; justify-content: center; opacity: 0.55; cursor: default; pointer-events: none; background: transparent !important; box-shadow: none !important; }
.smartv-app .smartv-req-note { display: block; margin: 0 0 0.35rem; font-size: 0.75rem; color: var(--smartv-error); }

/* „Pobierz wszystkie VCF (ZIP)” – czysty tekst jak „Usuń wizytówkę”; po najechaniu ikonka zielona, tekst pełnym kolorem. */
.smartv-app button.smartv-export__btn {
	all: unset;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	color: inherit !important;
	opacity: 0.72;
	font: inherit !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: opacity 0.15s ease;
}
.smartv-app button.smartv-export__btn::before, .smartv-app button.smartv-export__btn::after { content: none !important; display: none !important; }
.smartv-app button.smartv-export__btn svg { color: inherit; transition: color 0.15s ease; }
.smartv-app button.smartv-export__btn:hover, .smartv-app button.smartv-export__btn:focus-visible { opacity: 1; background: none !important; text-decoration: none !important; }
.smartv-app button.smartv-export__btn:hover svg, .smartv-app button.smartv-export__btn:focus-visible svg { color: #22c55e; }
.smartv-app button.smartv-export__btn:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 3px; }

/* Prośby o zamówienie (zakładka Zamówienia). */
.smartv-app .smartv-oreq__list { display: grid; gap: 0.6rem; }
.smartv-app .smartv-oreq__item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; padding: 0.85rem 1rem; border: 1px solid #f59e0b; border-radius: 12px; background: rgba(245, 158, 11, 0.07); }
.smartv-app .smartv-oreq__who { display: grid; gap: 0.15rem; min-width: 0; }
.smartv-app .smartv-oreq__cards { font-size: 0.875rem; }
.smartv-app .smartv-oreq__btns { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; }
.smartv-app .smartv-oreq__btns form { margin: 0; }

/* ======================================================= 1.21.1: odstęp „Należy do działów” ↔ działy; „Moje działy” z Edytuj */
.smartv-app .smartv-team__deptpick { display: grid !important; gap: 0.65rem !important; }
.smartv-app .smartv-team__deptpick > .smartv-field__label { margin: 0 !important; line-height: 1.4; }
.smartv-app .smartv-team__kindextra { gap: 0.65rem !important; }
.smartv-app .smartv-team__mydept { display: grid !important; gap: 0.65rem !important; justify-items: start; }
.smartv-app .smartv-team__mydept > .smartv-field__label { margin: 0 !important; }
.smartv-app .smartv-team__lockbtns { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; }
.smartv-app .smartv-team__lockbtns [hidden] { display: none !important; }
/* Działy zablokowane: zaznaczone czytelne, niezaznaczone przygaszone, bez reakcji na kliknięcie. */
.smartv-app .smartv-team__chip:has(input:disabled) { cursor: default; }
.smartv-app .smartv-team__chip input:disabled + span { cursor: default; }
.smartv-app .smartv-team__chip input:disabled:not(:checked) + span { opacity: 0.45; }
.smartv-app .smartv-team__mydept.is-editing .smartv-team__chips { padding: 0.5rem; margin: -0.5rem; border-radius: 12px; background: var(--smartv-surface); }
/* „Edytuj” – wypełniony, z ikonką; „Zapisz” – pełny zielony; oba wyraźnie inne niż działy. */
.smartv-app button.smartv-btn--sm.smartv-btn--edit { gap: 0.35rem !important; background: var(--smartv-surface-strong) !important; border-color: transparent !important; }
.smartv-app button.smartv-btn--sm.smartv-btn--edit:hover { border-color: currentColor !important; }
.smartv-app button.smartv-btn--sm.smartv-btn--save { background: #22c55e !important; border-color: #22c55e !important; color: #fff !important; }
.smartv-app button.smartv-btn--sm.smartv-btn--save:hover { background: #16a34a !important; border-color: #16a34a !important; }

/* ======================================================= 1.22: Zespół – przełącznik „Zarządzanie | Statystyki” i widok statystyk */
.smartv-app .smartv-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 0.35rem; margin: 0 0 1.5rem; padding: 0.3rem; border: 1px solid var(--smartv-border); border-radius: 14px; background: var(--smartv-surface); }
.smartv-app a.smartv-seg__item { display: inline-flex !important; align-items: center; justify-content: center; gap: 0.5rem; min-height: 44px; padding: 0 0.75rem; border-radius: 10px; color: inherit !important; text-decoration: none !important; font-weight: 700; font-size: 0.9375rem; opacity: 0.7; transition: background-color 0.15s ease, opacity 0.15s ease; }
.smartv-app a.smartv-seg__item:hover { opacity: 1; background: var(--smartv-surface-strong); }
.smartv-app a.smartv-seg__item.is-on { opacity: 1; background: rgba(34, 197, 94, 0.12); box-shadow: inset 0 0 0 1px #22c55e; }
.smartv-app a.smartv-seg__item.is-on svg { color: #22c55e; }
.smartv-app a.smartv-seg__item:focus-visible { outline: 2px solid #22c55e; outline-offset: 2px; }

.smartv-app .smartv-tstats__filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.smartv-app .smartv-tstats__periods { display: flex; gap: 0.4rem; overflow-x: auto; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
.smartv-app a.smartv-tstats__period, .smartv-app button.smartv-tstats__period { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; min-height: 38px; padding: 0 0.9rem; border: 1px solid var(--smartv-border-strong); border-radius: 10px !important; font-size: 0.875rem; font-weight: 600; white-space: nowrap; cursor: pointer; color: inherit !important; text-decoration: none !important; }
.smartv-app button.smartv-tstats__period::before, .smartv-app button.smartv-tstats__period::after { content: none !important; display: none !important; }
.smartv-app .smartv-tstats__period:hover { border-color: currentColor; }
.smartv-app .smartv-tstats__period.is-on { border-color: #22c55e !important; background: rgba(34, 197, 94, 0.12); }
.smartv-app .smartv-tstats__dept { margin: 0; }
.smartv-app .smartv-tstats__dept .smartv-select { min-width: 13rem; }
.smartv-app .smartv-tstats__dept .smartv-input { height: 40px !important; min-height: 40px !important; font-size: 0.875rem !important; }
.smartv-app .smartv-tstats__custom { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; margin: 0.9rem 0 0; }
.smartv-app .smartv-tstats__custom[hidden] { display: none !important; }
.smartv-app .smartv-tstats__custom .smartv-field { margin: 0; flex: 0 1 11rem; }
.smartv-app .smartv-tstats__range { margin: 0.9rem 0 0 !important; }
.smartv-app .smartv-tstats__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin: 1rem 0; }
.smartv-app .smartv-tstats__kpi { display: grid; gap: 0.2rem; padding: 1rem; border: 1px solid var(--smartv-border); border-radius: 14px; background: var(--smartv-surface); min-width: 0; }
.smartv-app .smartv-tstats__kpilabel { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.65; }
.smartv-app .smartv-tstats__kpival { font-size: 1.9rem; font-weight: 800; line-height: 1.15; }
.smartv-app .smartv-tstats__kpival--name { font-size: 1.15rem; overflow-wrap: anywhere; }
.smartv-app .smartv-tstats__kpival.is-up, .smartv-app .smartv-tstats__val .is-up { color: #22c55e; }
.smartv-app .smartv-tstats__kpival.is-down, .smartv-app .smartv-tstats__val .is-down { color: var(--smartv-error); }
.smartv-app .smartv-tstats__kpi .smartv-hint { margin: 0; font-size: 0.75rem; }
.smartv-app .smartv-tstats__chart { padding: 1rem 1rem 0.75rem; border: 1px solid var(--smartv-border); border-radius: 14px; background: var(--smartv-surface); }
.smartv-app .smartv-tstats__svg { display: block; width: 100%; height: 190px; }
.smartv-app .smartv-tstats__axis { stroke: var(--smartv-border-strong); stroke-width: 2; }
.smartv-app .smartv-tstats__xlabels { display: flex; justify-content: space-between; margin-top: -1.3rem; font-size: 0.75rem; opacity: 0.65; }
.smartv-app .smartv-tstats__peak { margin: 0.5rem 0 0 !important; font-size: 0.75rem; }
.smartv-app .smartv-tstats__rank { display: grid; gap: 0.5rem; margin: 0 !important; padding: 0 !important; list-style: none !important; counter-reset: none; }
.smartv-app .smartv-tstats__rank > li { list-style: none !important; margin: 0 !important; padding-left: 0 !important; }
.smartv-app .smartv-tstats__rank > li::before, .smartv-app .smartv-tstats__rank > li::marker { content: none !important; display: none !important; }
.smartv-app .smartv-tstats__item { display: grid !important; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; padding: 0.75rem 0.9rem !important; border: 1px solid var(--smartv-border); border-radius: 12px; }
.smartv-app .smartv-tstats__item.is-zero { opacity: 0.55; }
.smartv-app .smartv-tstats__pos { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 8px; background: var(--smartv-surface-strong); font-weight: 800; font-size: 0.875rem; }
.smartv-app .smartv-tstats__item:nth-child(1) .smartv-tstats__pos { background: linear-gradient(135deg, #2dd4bf, #8b5cf6); color: #fff; }
.smartv-app .smartv-tstats__who { display: grid; gap: 0.15rem; min-width: 0; }
.smartv-app .smartv-tstats__who strong { overflow-wrap: anywhere; }
.smartv-app .smartv-tstats__who small { font-size: 0.8125rem; opacity: 0.7; }
.smartv-app .smartv-tstats__bar { display: block; height: 6px; margin-top: 0.3rem; border-radius: 999px; background: var(--smartv-surface-strong); overflow: hidden; }
.smartv-app .smartv-tstats__bar > span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #2dd4bf, #8b5cf6); }
.smartv-app .smartv-tstats__val { display: grid; justify-items: end; gap: 0.1rem; }
.smartv-app .smartv-tstats__val strong { font-size: 1.15rem; font-weight: 800; }
.smartv-app .smartv-tstats__val small { font-size: 0.75rem; font-weight: 700; }
.smartv-app .smartv-tstats__csv { display: block; margin-top: 1rem; }
@media (max-width: 640px) {
	.smartv-app .smartv-tstats__kpis { grid-template-columns: 1fr; }
	.smartv-app .smartv-tstats__kpi { grid-template-columns: 1fr auto; align-items: baseline; }
	.smartv-app .smartv-tstats__kpi .smartv-hint { grid-column: 1 / -1; }
	.smartv-app .smartv-tstats__kpival { font-size: 1.5rem; }
	/* Najlepsza wizytówka: imię i nazwisko pod etykietą (w jednym wierszu było ciasno). */
	.smartv-app .smartv-tstats__kpi--name { grid-template-columns: 1fr; }
	.smartv-app .smartv-tstats__kpival--name { font-size: 1.15rem; }
	.smartv-app .smartv-tstats__filters { display: grid; }
	.smartv-app .smartv-tstats__dept .smartv-select { min-width: 0; width: 100%; }
	.smartv-app .smartv-tstats__svg { height: 150px; }
}
.smartv-app .smartv-tstats { display: block; margin: 0 0 2rem; }
.smartv-app .smartv-tstats__xlabels { margin-top: 0.35rem; }
.smartv-app .smartv-tstats__bar > span { min-width: 2px; }

/* =======================================================================================
   1.22.1: SYSTEM PRZYCISKÓW (panel klienta) – jedno źródło zasad, niezależne od motywu.
   Rodzaje: GŁÓWNY (gradient) · ZWYKŁY (ramka → gradient z białym napisem) · WYBRANY (zielona ramka)
            · STANU (zielony / czerwony) · TEKSTOWY (sam tekst; ikonka zielona, tekst pełnym kolorem)
            · IKONOWY. Rozmiar (duży / mały) to tylko dodatek do rodzaju.
   Nowe miejsca korzystają z tych klas: .smartv-btn [--primary|--sm|--ok|--danger|--save|--edit],
   .smartv-chip, .smartv-tstats__period, .smartv-seg__item, .smartv-textbtn (= .smartv-export__btn, .smartv-linkbtn, .smartv-link-danger).
   ======================================================================================= */
.smartv-app { --smartv-grad: linear-gradient(90deg, #2dd4bf, #8b5cf6); }

/* ZWYKŁY – po najechaniu gradient z BIAŁYM napisem (także gdy gradient dokłada motyw). */
.smartv-app a.smartv-btn:not(.smartv-btn--primary):not(.smartv-btn--ok):not(.smartv-btn--danger):not(.smartv-btn--save):not(.smartv-btn--gradfill):not(.smartv-btn--renew):not(.is-disabled):hover,
.smartv-app button.smartv-btn:not(.smartv-btn--primary):not(.smartv-btn--ok):not(.smartv-btn--danger):not(.smartv-btn--save):not(.smartv-btn--gradfill):not(.smartv-btn--renew):hover,
.smartv-app a.smartv-pbtn:not(.smartv-pbtn--primary):not(.smartv-pbtn--accent):hover,
.smartv-app button.smartv-pbtn:not(.smartv-pbtn--primary):not(.smartv-pbtn--accent):hover,
.smartv-app a.smartv-chip:hover, .smartv-app button.smartv-chip:hover, .smartv-app summary.smartv-chip:hover,
.smartv-app a.smartv-tstats__period:not(.is-on):hover,
.smartv-app a.smartv-seg__item:not(.is-on):hover {
	background: var(--smartv-grad) !important;
	border-color: transparent !important;
	color: #fff !important;
	opacity: 1 !important;
	text-decoration: none !important;
}
.smartv-app a.smartv-btn:hover svg, .smartv-app button.smartv-btn:not(.smartv-btn--danger):not(.smartv-btn--ok):hover svg,
.smartv-app .smartv-chip:hover svg, .smartv-app a.smartv-seg__item:not(.is-on):hover svg { color: #fff !important; }
/* Napis w środku przycisku (span/strong) też biały. */
.smartv-app button.smartv-btn:not(.smartv-btn--primary):not(.smartv-btn--ok):not(.smartv-btn--danger):not(.smartv-btn--save):hover *,
.smartv-app a.smartv-btn:not(.smartv-btn--primary):not(.smartv-btn--ok):not(.smartv-btn--danger):not(.smartv-btn--save):hover * { color: #fff !important; }

/* STANU – zielony / czerwony w ramce: po najechaniu delikatne tło w swoim kolorze (bez gradientu motywu). */
.smartv-app button.smartv-btn--sm.smartv-btn--ok:hover, .smartv-app a.smartv-btn--sm.smartv-btn--ok:hover { background: rgba(34, 197, 94, 0.16) !important; color: inherit !important; }
.smartv-app button.smartv-btn--danger:hover { background: color-mix(in srgb, var(--smartv-error) 14%, transparent) !important; color: var(--smartv-error) !important; }

/* WYBRANY – okres / przełącznik: bez zmian po najechaniu. */
.smartv-app a.smartv-tstats__period.is-on:hover, .smartv-app a.smartv-seg__item.is-on:hover { background: rgba(34, 197, 94, 0.12) !important; color: inherit !important; }

/* TEKSTOWY – do końca tekstowy: bez tła i ramki (także przy najechaniu); ikonka zielona, tekst pełnym kolorem. */
.smartv-app button.smartv-textbtn, .smartv-app a.smartv-textbtn,
.smartv-app button.smartv-export__btn, .smartv-app button.smartv-linkbtn, .smartv-app summary.smartv-linkbtn, .smartv-app button.smartv-link-danger {
	background: none !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
}
.smartv-app button.smartv-textbtn::before, .smartv-app button.smartv-textbtn::after { content: none !important; display: none !important; }
.smartv-app :is(button, a).smartv-textbtn:hover, .smartv-app button.smartv-export__btn:hover, .smartv-app button.smartv-linkbtn:hover, .smartv-app summary.smartv-linkbtn:hover {
	background: none !important; opacity: 1 !important; color: inherit !important;
}
.smartv-app :is(button, a).smartv-textbtn:hover svg, .smartv-app button.smartv-export__btn:hover svg, .smartv-app button.smartv-linkbtn:hover svg { color: #22c55e !important; }
.smartv-app button.smartv-link-danger:hover { background: none !important; color: var(--smartv-error) !important; opacity: 1 !important; }

/* Ranking statystyk – odstęp kwadracika z miejscem od ramki. */
.smartv-app .smartv-tstats__rank > li.smartv-tstats__item { padding: 0.75rem 0.9rem !important; }

/* ======================================================= 1.22.1: kalendarz w stylu wtyczki (komputer) + dymek wykresu */
.smartv-dp { position: relative; display: inline-flex; align-items: center; width: 100%; max-width: 100%; }
.smartv-dp .smartv-dp__input { width: 100% !important; padding-right: 2.6rem !important; }
.smartv-dp__btn { all: unset; position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; cursor: pointer; opacity: 0.75; color: inherit; }
.smartv-dp__btn::before, .smartv-dp__btn::after { content: none !important; display: none !important; }
.smartv-dp__btn:hover, .smartv-dp__btn:focus-visible { opacity: 1; color: #22c55e; outline: none; }
.smartv-dp__pop { position: absolute; z-index: 100050; top: calc(100% + 6px); left: 0; width: 18.5rem; max-width: calc(100vw - 2rem); padding: 0.75rem; border: 1px solid rgba(127, 127, 127, 0.35); border-radius: 14px; background: var(--smartv-dp-bg, #fff); color: inherit; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35); font-size: 0.875rem; box-sizing: border-box; }
.smartv-dp__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.smartv-dp__head strong { font-size: 0.9375rem; }
.smartv-dp__pop button { all: unset; box-sizing: border-box; cursor: pointer; font: inherit; color: inherit; text-align: center; }
.smartv-dp__pop button::before, .smartv-dp__pop button::after { content: none !important; display: none !important; }
.smartv-dp__nav { width: 32px; height: 32px; border-radius: 8px !important; font-size: 1.25rem !important; line-height: 32px; }
.smartv-dp__nav:hover { background: var(--smartv-grad, linear-gradient(90deg, #2dd4bf, #8b5cf6)) !important; color: #fff !important; }
.smartv-dp__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.smartv-dp__dow { padding: 0.25rem 0; text-align: center; font-size: 0.6875rem; font-weight: 700; opacity: 0.55; text-transform: uppercase; }
.smartv-dp__day { height: 34px; border-radius: 8px !important; font-weight: 600; }
.smartv-dp__day:hover:not(:disabled), .smartv-dp__day:focus-visible { background: var(--smartv-grad, linear-gradient(90deg, #2dd4bf, #8b5cf6)) !important; color: #fff !important; outline: none; }
.smartv-dp__day.is-today { box-shadow: inset 0 0 0 1px rgba(127, 127, 127, 0.6); }
.smartv-dp__day.is-sel { background: #22c55e !important; color: #fff !important; }
.smartv-dp__day:disabled { opacity: 0.25; cursor: default; }
.smartv-dp__foot { display: flex; justify-content: space-between; margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid rgba(127, 127, 127, 0.25); }
.smartv-dp__link { padding: 0.25rem 0.5rem; border-radius: 8px !important; font-weight: 700; opacity: 0.8; }
.smartv-dp__link:hover { opacity: 1; color: #22c55e !important; }
.smartv-charttip { position: absolute; z-index: 5; transform: translateX(-50%); display: grid; gap: 0.05rem; padding: 0.45rem 0.65rem; border-radius: 10px; background: rgba(15, 17, 20, 0.92); color: #fff; font-size: 0.75rem; line-height: 1.3; text-align: center; white-space: nowrap; pointer-events: none; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); }
.smartv-charttip strong { font-size: 1rem; }
.smartv-charttip[hidden] { display: none !important; }
[data-value].is-hover, [data-value]:hover { filter: brightness(0.78); cursor: pointer; }
.smartv-app .smartv-tstats-root { transition: opacity 0.15s ease; }
.smartv-app .smartv-tstats-root.is-loading { opacity: 0.55; pointer-events: none; }
.smartv-app .smartv-tstats__filters { align-items: center; }
.smartv-app .smartv-tstats__person { margin: 0; flex: 0 1 15rem; }
.smartv-app .smartv-tstats__person .smartv-input { height: 40px !important; min-height: 40px !important; font-size: 0.875rem !important; }
.smartv-app .smartv-tstats__filters > form, .smartv-app .smartv-tstats__filters > .smartv-tstats__dept { margin-left: auto; }
.smartv-app .smartv-tstats__filters .smartv-tstats__person { margin-left: 0; }
.smartv-app .smartv-tstats__focus { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; margin: 0.9rem 0 0 !important; padding: 0.6rem 0.9rem; border: 1px solid #22c55e; border-radius: 12px; background: rgba(34, 197, 94, 0.08); font-size: 0.9375rem; }
.smartv-app .smartv-tstats__item { position: relative; cursor: pointer; transition: border-color 0.15s ease; }
.smartv-app .smartv-tstats__item:hover { border-color: var(--smartv-border-strong); }
.smartv-app .smartv-tstats__item.is-focus { border-color: #22c55e !important; box-shadow: inset 0 0 0 1px #22c55e; }
.smartv-app .smartv-tstats__rowlink { position: absolute; inset: 0; z-index: 1; border-radius: 12px; }
.smartv-app .smartv-tstats__rowlink:focus-visible { outline: 2px solid #22c55e; outline-offset: 2px; }
.smartv-app .smartv-tstats__chart { position: relative; }
@media (max-width: 640px) { .smartv-app .smartv-tstats__person { flex: 1 1 100%; } .smartv-app .smartv-tstats__filters > form, .smartv-app .smartv-tstats__filters > .smartv-tstats__dept { margin-left: 0; } }

/* 1.22.1: ozdobne warstwy przycisków z motywu (::before/::after, position:absolute) zostają w granicach przycisku –
   wcześniej przy przyciskach bez pozycjonowania rozlewały się na całe okno i przechwytywały kliknięcia. */
:where(.smartv-app, .smartv-vmodal, .smartv-admin, .smartv-confirm) :where(button, .smartv-btn, .smartv-vbtn) { position: relative; }
.smartv-vmodal .smartv-vbtn::before, .smartv-vmodal .smartv-vbtn::after { pointer-events: none; }

/* ======================================================= 1.23: logowanie dwuetapowe */
.smartv-app .smartv-2fa__code { font-size: 1.5rem !important; letter-spacing: 0.25em; text-align: center; font-variant-numeric: tabular-nums; max-width: 14rem; }
.smartv-app .smartv-2fa__cancel { margin: 0.75rem 0 0; }
.smartv-app .smartv-2fa__help { margin-top: 1.25rem !important; font-size: 0.8125rem; }
.smartv-app .smartv-2fa-status { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 1rem !important; }
.smartv-app .smartv-2fa-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--smartv-border-strong); }
.smartv-app .smartv-2fa-status.is-on .smartv-2fa-dot { background: #22c55e; box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18); }
.smartv-app .smartv-2fa-actions { display: grid; gap: 1rem; }
.smartv-app .smartv-2fa-codeform { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; margin: 0; }
.smartv-app .smartv-2fa-codeform .smartv-field { margin: 0; flex: 0 1 18rem; }
.smartv-app .smartv-2fa-steps { display: grid; gap: 1.1rem; margin: 0 !important; padding-left: 1.25rem !important; }
.smartv-app .smartv-2fa-steps > li { padding-left: 0.25rem; }
.smartv-app .smartv-2fa-qr { display: inline-block; margin: 0.75rem 0 0.5rem; padding: 12px; border-radius: 14px; background: #fff; line-height: 0; }
.smartv-app .smartv-2fa-qr canvas { display: block; width: 200px; height: 200px; image-rendering: pixelated; }
.smartv-app .smartv-2fa-key { display: inline-block; margin-top: 0.35rem; padding: 0.4rem 0.6rem; border-radius: 8px; background: var(--smartv-surface-strong); font-size: 0.9375rem; letter-spacing: 0.08em; overflow-wrap: anywhere; }
.smartv-app .smartv-2fa-codes { margin: 0 0 1.25rem; padding: 1rem 1.1rem; border: 1px solid #22c55e; border-radius: 14px; background: rgba(34, 197, 94, 0.07); }
.smartv-app .smartv-2fa-codes__list { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 0.35rem 2rem; margin: 0.75rem 0 !important; padding-left: 1.5rem !important; }
.smartv-app .smartv-2fa-codes__list code { font-size: 1.05rem; letter-spacing: 0.08em; }
.smartv-app .smartv-2fa-codes__btns { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 !important; }
.smartv-app .smartv-team__2fa { display: inline-flex; align-items: center; margin-left: 0.35rem; padding: 0.05rem 0.5rem; border: 1px solid #22c55e; border-radius: 999px; color: #22c55e; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.04em; vertical-align: middle; }
.smartv-app .smartv-team__2faform { margin-bottom: 0.75rem; }
/* 1.23.1: status 2FA w trzech liniach, kropka bez ściskania; przełącznik „Mam kod zapasowy”. */
.smartv-app .smartv-2fa-status { display: flex !important; align-items: flex-start !important; gap: 0.75rem !important; margin: 0 0 1rem !important; }
.smartv-app .smartv-2fa-dot { flex: 0 0 10px; width: 10px !important; height: 10px !important; min-width: 10px; margin-top: 0.4rem; border-radius: 50% !important; }
.smartv-app .smartv-2fa-status__text { display: grid; gap: 0.15rem; min-width: 0; }
.smartv-app .smartv-2fa-status__text > span { font-size: 0.875rem; opacity: 0.75; }
.smartv-app .smartv-2fa__switch { margin: -0.25rem 0 0.75rem !important; }
.smartv-app .smartv-2fa__code.is-backup { letter-spacing: 0.12em; text-transform: uppercase; }

/* ======================================================= 1.23.2: 2FA – przyciski tekstowe z ikoną, rząd akcji, panele */
.smartv-app button.smartv-textbtn--icon, .smartv-app a.smartv-textbtn--icon {
	all: unset; box-sizing: border-box; display: inline-flex !important; align-items: center; gap: 0.45rem; padding: 0.35rem 0.1rem !important;
	font: inherit; font-size: 0.9375rem !important; font-weight: 600 !important; color: inherit !important; opacity: 0.8; cursor: pointer; text-decoration: none !important;
	background: none !important; border: 0 !important; box-shadow: none !important; transition: opacity 0.15s ease;
}
.smartv-app .smartv-textbtn--icon::before, .smartv-app .smartv-textbtn--icon::after { content: none !important; display: none !important; }
.smartv-app .smartv-textbtn--icon svg { flex: 0 0 auto; transition: color 0.15s ease; }
.smartv-app .smartv-textbtn--icon:hover, .smartv-app .smartv-textbtn--icon:focus-visible { opacity: 1; background: none !important; color: inherit !important; }
.smartv-app .smartv-textbtn--icon:hover svg, .smartv-app .smartv-textbtn--icon:focus-visible svg, .smartv-app .smartv-textbtn--icon[aria-pressed="true"] svg { color: #22c55e; }
.smartv-app .smartv-textbtn--icon:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 3px; border-radius: 6px; }
.smartv-app .smartv-2fa__links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1.5rem; margin-top: 1rem; }
.smartv-app .smartv-2fa__cancel[hidden] { display: none !important; }

.smartv-app .smartv-2fa-actions { display: flex !important; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.smartv-app .smartv-2fa-actions form { margin: 0; }
.smartv-app .smartv-btn--icon { display: inline-flex !important; align-items: center; gap: 0.4rem; }
.smartv-app .smartv-2fa-panel { display: grid; gap: 0.6rem; margin-top: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--smartv-border-strong); border-radius: 14px; background: var(--smartv-surface); }
.smartv-app .smartv-2fa-panel[hidden] { display: none !important; }
.smartv-app .smartv-2fa-panel--danger { border-color: color-mix(in srgb, var(--smartv-error) 60%, transparent); }
.smartv-app .smartv-2fa-panel__title, .smartv-app .smartv-2fa-panel .smartv-hint { margin: 0 !important; }
.smartv-app .smartv-2fa-panel .smartv-2fa-codeform { align-items: flex-end; }
.smartv-app .smartv-2fa-panel .smartv-2fa__code { max-width: 12rem; font-size: 1.25rem !important; }
.smartv-app .smartv-2fa-panel__btns { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 640px) {
	.smartv-app .smartv-2fa-actions { flex-direction: column; align-items: stretch; }
	.smartv-app .smartv-2fa-actions > .smartv-btn, .smartv-app .smartv-2fa-actions > form, .smartv-app .smartv-2fa-actions > form .smartv-btn { width: 100%; justify-content: center; }
	.smartv-app .smartv-2fa-panel .smartv-2fa-codeform { flex-direction: column; align-items: stretch; }
	.smartv-app .smartv-2fa-panel .smartv-2fa__code { max-width: none; }
	.smartv-app .smartv-2fa-panel__btns > .smartv-btn { flex: 1 1 0; justify-content: center; }
	.smartv-app .smartv-2fa__links { flex-direction: column; align-items: flex-start; }
}
/* 1.23.2: poprawki – w układzie kolumnowym (telefon) szerokość pola nie może stać się jego wysokością; mniejsza przerwa pod „Zaloguj”. */
@media (max-width: 640px) {
	.smartv-app .smartv-2fa-codeform .smartv-field { flex: 0 0 auto !important; }
	.smartv-app .smartv-2fa-codeform .smartv-input { height: auto !important; min-height: 48px !important; }
}
.smartv-app .smartv-2fa .smartv-form__footer--auth { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.smartv-app .smartv-2fa .smartv-auth__form { margin-bottom: 0 !important; }
.smartv-app .smartv-2fa__links { margin-top: 0.5rem !important; }
/* 1.23.3: zmiana telefonu */
.smartv-app .smartv-2fa-panel--phone { border-color: #22c55e; }
.smartv-app .smartv-2fa-panel--phone .smartv-2fa-steps { margin-top: 0.25rem !important; }

/* =======================================================================================
   1.24: ODPORNOŚĆ NA MOTYW I ELEMENTOR („Ustawienia witryny” → Pola formularzy / Przyciski) + spójne zaokrąglenia.
   Reguły z !important, ale o zerowej sile selektora (:where) – wygrywają ze stylami motywu,
   a nasze szczegółowe reguły (np. pole kodu 2FA, filtry Statystyk, kalendarz) nadal mają pierwszeństwo.
   Czcionka i kolor tekstu celowo dziedziczone ze strony (panel wygląda jak część witryny).
   ======================================================================================= */
.smartv-app { --smartv-field-radius: 10px; }
:where(.smartv-app) :where(input.smartv-input, select.smartv-input, textarea.smartv-input, .smartv-input) {
	font-family: inherit !important; font-size: 16px !important; font-weight: 400 !important; font-style: normal !important;
	line-height: 1.4 !important; letter-spacing: normal !important; text-transform: none !important;
	min-height: var(--smartv-control-h) !important; height: auto !important; margin: 0 !important; padding: 0.625rem 0.875rem !important;
	border: 1px solid var(--smartv-border-strong) !important; border-radius: var(--smartv-field-radius) !important;
	background-color: var(--smartv-surface) !important; color: inherit !important; box-shadow: none !important; box-sizing: border-box !important;
	outline-offset: 2px;
}
:where(.smartv-app) :where(textarea.smartv-input) { min-height: 7.5rem !important; }
:where(.smartv-app) :where(.smartv-input):hover { border-color: currentColor !important; }
:where(.smartv-app) :where(.smartv-input):focus { border-color: currentColor !important; background-color: var(--smartv-surface-strong) !important; }
:where(.smartv-app) :where(.smartv-input)[aria-invalid="true"] { border-color: var(--smartv-error) !important; }
@media (forced-colors: active) { :where(.smartv-app) :where(.smartv-input) { border-color: ButtonText !important; } }

/* Przyciski: bez wielkich liter, odstępów liter, czcionki i cieni z motywu; jeden rozmiar tekstu. */
:where(.smartv-app) :where(button, a):where(.smartv-btn, .smartv-chip, .smartv-pbtn, .smartv-icon-btn, .smartv-seg__item, .smartv-tstats__period, .smartv-nav__logout) {
	font-family: inherit !important; text-transform: none !important; letter-spacing: normal !important; font-style: normal !important;
	text-decoration: none !important; box-shadow: none !important; box-sizing: border-box !important; min-width: 0 !important;
}
:where(.smartv-app) :where(button, a, label, span):where(.smartv-btn):not(.smartv-btn--sm) { font-size: 0.9375rem !important; line-height: 1.2 !important; }
/* Zaokrąglenia: duże przyciski 12 px, małe 10 px, przyciski ikonowe i pola 10 px. */
.smartv-app .smartv-btn:not(.smartv-btn--sm), .smartv-app a.smartv-btn:not(.smartv-btn--sm), .smartv-app button.smartv-btn:not(.smartv-btn--sm), .smartv-app label.smartv-btn:not(.smartv-btn--sm) { border-radius: 12px !important; }
.smartv-app .smartv-icon-btn, .smartv-app button.smartv-icon-btn { border-radius: 10px !important; }
.smartv-app .smartv-icon-btn--sm { min-width: 34px !important; min-height: 34px !important; padding: 0 !important; }
.smartv-app .smartv-icon-btn:disabled { opacity: 0.3; cursor: default; }

/* Etykiety, drobne teksty i przycisk „pokaż hasło” – bez wielkich liter i odstępów z motywu. */
:where(.smartv-app) :where(label, .smartv-field__label, small, .smartv-hint, .smartv-check, .smartv-type__option) { text-transform: none !important; letter-spacing: normal !important; }
:where(.smartv-app) :where(.smartv-field__label) { font-size: 0.8125rem !important; font-weight: 600 !important; }
:where(.smartv-app) :where(button.smartv-password__toggle) { text-transform: none !important; letter-spacing: normal !important; font-family: inherit !important; font-size: 1rem !important; box-shadow: none !important; }

/* Kolejność osób i działów (strzałki). */
.smartv-app .smartv-team__order { display: inline-flex; gap: 0.25rem; margin-right: 0.5rem; vertical-align: middle; }
.smartv-app .smartv-team__order form { margin: 0; }
/* Strzałki w osobnej wąskiej kolumnie (jedna nad drugą), treść wiersza obok – bez rozpychania na telefonie. */
.smartv-app .smartv-team__person--row .smartv-team__left:has(> .smartv-team__order) { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0.6rem; align-items: start; }
.smartv-app .smartv-team__person--row .smartv-team__left:has(> .smartv-team__order) > .smartv-team__order { grid-column: 1; grid-row: 1 / span 20; flex-direction: column; margin: 0; }
.smartv-app .smartv-team__person--row .smartv-team__left:has(> .smartv-team__order) > :not(.smartv-team__order) { grid-column: 2; min-width: 0; }
.smartv-app .smartv-team__person--dept { display: flex; align-items: center; gap: 0.5rem; }

/* 1.24: spójność – przyciski na kartach wizytówek 12 px (chipsy zostają 10 px), „Zamów wybrane” 15 px, kafelki wyboru 10 px. */
.smartv-app .smartv-card .smartv-card__actions .smartv-btn.smartv-btn:not(.smartv-btn--sm),
.smartv-app .smartv-card .smartv-card__actions .smartv-inline-form .smartv-btn.smartv-btn:not(.smartv-btn--sm) { border-radius: 12px !important; }
.smartv-app .smartv-orderbar .smartv-btn.smartv-btn { font-size: 0.9375rem !important; }
.smartv-app .smartv-type__option, .smartv-app label.smartv-type__option { border-radius: 10px !important; }
.smartv-app button.smartv-password__toggle { border-radius: 8px !important; }
/* 1.24: etykiety – rozmiar i grubość niezależne od reguł motywu dla „label”. */
.smartv-app label:not(.smartv-check):not(.smartv-btn):not(.smartv-visually-hidden):not(.smartv-field__label) { font-size: 1rem !important; }
:where(.smartv-app) :where(label):not(.smartv-type__option):not(.smartv-btn):not(.smartv-field__label) { font-weight: inherit !important; }

/* 1.24.1: „Zmień kolejność” – strzałki tylko w trybie edycji kolejności; pasek nad listą. */
.smartv-app .smartv-team__order { display: none !important; }
.smartv-app .is-ordering .smartv-team__order { display: inline-flex !important; gap: 0.25rem; margin-right: 0.5rem; }
.smartv-app .smartv-orderbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; }
.smartv-app .smartv-orderbar [hidden] { display: none !important; }
.smartv-app .smartv-orderbar__hint { font-size: 0.8125rem; opacity: 0.7; }
.smartv-app .smartv-orderbar .smartv-btn--edit { display: inline-flex !important; align-items: center; gap: 0.35rem !important; }
.smartv-app .is-ordering > li[data-order-id] { outline: 1px dashed var(--smartv-border-strong); outline-offset: -1px; border-radius: 12px; }
.smartv-app .is-ordering > li.is-moved { animation: smartv-flash 0.9s ease; }

/* 1.24.2: tryb „Zmień kolejność” – strzałki przypięte z lewej (poza siatką treści – wiersz ma wysokość treści), odstęp wewnątrz ramki. */
.smartv-app .is-ordering > li[data-order-id] { padding: 0.9rem 1.1rem !important; }
.smartv-app .is-ordering .smartv-team__left { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 0.6rem !important; position: relative !important; padding-left: 3.1rem !important; min-height: 5.9rem; }
.smartv-app .is-ordering .smartv-team__left > .smartv-team__order { position: absolute !important; left: 0 !important; top: 0 !important; right: auto !important; inset-inline-start: 0 !important; flex-direction: column !important; margin: 0 !important; }
.smartv-app .is-ordering .smartv-team__person--dept > .smartv-team__order { align-self: center; flex-direction: row !important; margin-right: 0.35rem !important; }
/* 1.24.3: stały rozmiar strzałek kolejności i wyraźny odstęp od treści (niezależnie od bazowej czcionki motywu). */
.smartv-app .is-ordering .smartv-team__order .smartv-icon-btn { width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important; padding: 0 !important; }
.smartv-app .is-ordering .smartv-team__left { padding-left: calc(40px + 1.1rem) !important; min-height: calc(80px + 0.25rem); }
.smartv-app .is-ordering .smartv-team__left > .smartv-team__order { gap: 0.25rem !important; }
.smartv-app .is-ordering .smartv-team__person--dept > .smartv-team__order { margin-right: 1rem !important; }
/* 1.25.1: tryb „Zmień kolejność” – odstęp między ramkami osób i działów (nie stykają się). */
.smartv-app .is-ordering > li[data-order-id] + li[data-order-id] { margin-top: 0.6rem !important; }
.smartv-app .is-ordering > li[data-order-id] { border-top-color: transparent !important; border-bottom-color: transparent !important; }

/* ======================================================= 1.27: formularz kontaktowy [smartv_formularz_kontakt] */
.smartv-app.smartv-contact { max-width: 760px; }
.smartv-app .smartv-contact__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.smartv-app .smartv-contact__msg { min-height: 9rem; resize: vertical; }
.smartv-app .smartv-contact__info { margin: 0.25rem 0 1rem !important; font-size: 0.8125rem !important; }
.smartv-app .smartv-contact__hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 640px) { .smartv-app .smartv-contact__grid { grid-template-columns: 1fr; } }

/* ======================================================= 1.27.1: formularze publiczne (kontakt, newsletter) – spójny układ */
.smartv-app.smartv-contact, .smartv-app.smartv-nlf { --kf-gap: 1.1rem; }
.smartv-app .smartv-contact__form, .smartv-app .smartv-nlf__form { display: grid !important; gap: var(--kf-gap) !important; margin: 0 !important; }
.smartv-app .smartv-contact__grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kf-gap) 1rem !important; margin: 0 !important; }
.smartv-app.smartv-contact .smartv-field, .smartv-app.smartv-nlf .smartv-field { display: flex !important; flex-direction: column !important; gap: 0.45rem !important; margin: 0 !important; padding: 0 !important; }
.smartv-app.smartv-contact .smartv-field__label, .smartv-app.smartv-nlf .smartv-field__label { margin: 0 !important; font-size: 0.875rem !important; font-weight: 600 !important; line-height: 1.3 !important; text-transform: none !important; letter-spacing: 0 !important; }
.smartv-app.smartv-contact .smartv-field__label small, .smartv-app.smartv-nlf .smartv-field__label small { font-weight: 400 !important; opacity: 0.7; font-size: 0.8125rem !important; }
.smartv-app.smartv-contact .smartv-input, .smartv-app.smartv-nlf .smartv-input { box-sizing: border-box !important; width: 100% !important; height: 48px !important; min-height: 48px !important; padding: 0 0.9rem !important; font-size: 1rem !important; line-height: 1.4 !important; margin: 0 !important; }
.smartv-app.smartv-contact select.smartv-input { padding-right: 2.4rem !important; font-size: 1rem !important; }
.smartv-app.smartv-contact textarea.smartv-input { height: auto !important; min-height: 9.5rem !important; padding: 0.75rem 0.9rem !important; resize: vertical; }
.smartv-app .smartv-contact__consents, .smartv-app .smartv-nlf__consents { display: grid !important; gap: 0.6rem !important; margin: 0 !important; }
.smartv-app.smartv-contact .smartv-check, .smartv-app.smartv-nlf .smartv-check { display: flex !important; align-items: flex-start !important; gap: 0.6rem !important; margin: 0 !important; font-size: 0.875rem !important; line-height: 1.5 !important; }
.smartv-app.smartv-contact .smartv-check input, .smartv-app.smartv-nlf .smartv-check input { flex: 0 0 auto; margin: 0.2rem 0 0 !important; }
.smartv-app.smartv-contact .smartv-captcha, .smartv-app.smartv-nlf .smartv-captcha { margin: 0 !important; }
.smartv-app.smartv-contact .smartv-form__footer, .smartv-app.smartv-nlf .smartv-form__footer { margin: 0.25rem 0 0 !important; padding: 0 !important; border: 0 !important; }
.smartv-app.smartv-contact .smartv-notice, .smartv-app.smartv-nlf .smartv-notice { margin: 0 0 var(--kf-gap) !important; }
.smartv-app .smartv-nlf__info { margin: 0 !important; font-size: 0.8125rem !important; opacity: 0.8; }
.smartv-app .smartv-nlf__row { display: grid !important; gap: var(--kf-gap) !important; margin: 0 !important; }
.smartv-app.smartv-nlf--poziom .smartv-nlf__row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; align-items: end; gap: 0.75rem !important; }
.smartv-app .smartv-nlf__btnwrap .smartv-btn { height: 48px !important; white-space: nowrap; }
@media (max-width: 720px) {
	.smartv-app .smartv-contact__grid { grid-template-columns: 1fr; }
	.smartv-app.smartv-nlf--poziom .smartv-nlf__row { grid-template-columns: 1fr; }
	.smartv-app .smartv-nlf__btnwrap .smartv-btn { width: 100%; justify-content: center; }
}
/* 1.27.1: formularze publiczne nie dziedziczą układu panelu (odstęp pod panelem, wyśrodkowanie, przycisk na całą szerokość). */
.smartv-app.smartv-contact, .smartv-app.smartv-nlf { padding: 0 !important; margin-inline: 0 !important; min-height: 0 !important; }
.smartv-app.smartv-nlf { max-width: none !important; }
.smartv-app.smartv-contact .smartv-form__footer, .smartv-app.smartv-nlf .smartv-form__footer { display: flex !important; justify-content: flex-start !important; }
.smartv-app.smartv-contact .smartv-form__footer .smartv-btn, .smartv-app.smartv-nlf .smartv-form__footer .smartv-btn { width: auto !important; min-height: 48px !important; padding-inline: 1.6rem !important; }
@media (max-width: 640px) {
	.smartv-app.smartv-contact .smartv-form__footer .smartv-btn, .smartv-app.smartv-nlf .smartv-form__footer .smartv-btn { width: 100% !important; justify-content: center; }
}
@media (max-width: 720px) {
	/* Poziomy newsletter na telefonie: najpierw zgody, potem przycisk. */
	.smartv-app.smartv-nlf--poziom .smartv-nlf__row { display: contents !important; }
	.smartv-app.smartv-nlf--poziom .smartv-nlf__consents { order: 5; }
	.smartv-app.smartv-nlf--poziom .smartv-nlf__btnwrap { order: 10; }
}
/* 1.27.3: CAPTCHA w formularzach publicznych bez rezerwowania miejsca – Turnstile w trybie niewidocznym nie zostawia dziury. */
.smartv-app.smartv-contact .smartv-captcha, .smartv-app.smartv-nlf .smartv-captcha { min-height: 0 !important; }

/* 1.28.1 – zgody: zaznacza tylko kwadracik (obszar dotyku 44 px), tekst zgody nie zaznacza; linki w treści działają. */
.smartv-app .smartv-check.smartv-check--consent { display: flex !important; align-items: flex-start !important; gap: 0.35rem !important; min-height: 0 !important; margin: 0 !important; cursor: default !important; }
.smartv-app .smartv-check--consent .smartv-check__box { display: inline-flex !important; align-items: center !important; justify-content: center !important; flex: 0 0 44px !important; width: 44px !important; height: 44px !important; min-height: 44px !important; margin: -10px 0 -10px -10px !important; padding: 0 !important; cursor: pointer !important; background: none !important; border: 0 !important; font-size: 0 !important; line-height: 0 !important; -webkit-tap-highlight-color: transparent; }
.smartv-app .smartv-check--consent .smartv-check__box input[type="checkbox"] { margin: 0 !important; }
.smartv-app .smartv-check--consent .smartv-check__text { flex: 1 1 auto; min-width: 0; padding-top: 1px; cursor: default; }
.smartv-app .smartv-check--consent .smartv-check__text a { cursor: pointer; }
.smartv-app.smartv-nlf--poziom .smartv-nlf__row--noname { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 640px) { .smartv-app.smartv-nlf--poziom .smartv-nlf__row--noname { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ pakiety (Zamówienia) */

.smartv-app .smartv-planbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin-bottom: clamp(1.25rem, 4vw, 2rem); }
.smartv-app .smartv-planbar__label { font-weight: 700; }
.smartv-app .smartv-planbar__seg { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; padding: 0.3rem; border: 1px solid var(--smartv-border); border-radius: 14px; background: var(--smartv-surface); }
.smartv-app .smartv-planbar__opt { position: relative; display: inline-flex; align-items: center; gap: 0.35rem; min-height: 40px; padding: 0 1rem; border-radius: 10px; font-weight: 700; cursor: pointer; color: inherit !important; text-decoration: none !important; opacity: 0.75; }
.smartv-app .smartv-planbar__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.smartv-app .smartv-planbar__opt:hover { opacity: 1; background: var(--smartv-surface-strong); }
.smartv-app .smartv-planbar__opt.is-on { opacity: 1; background: rgba(34, 197, 94, 0.12); box-shadow: inset 0 0 0 1px #22c55e; }
.smartv-app .smartv-planbar__opt:focus-within { outline: 2px solid #22c55e; outline-offset: 2px; }
.smartv-app .smartv-planbar__opt.is-off { opacity: 0.4; cursor: not-allowed; background: none; }
.smartv-app .smartv-planbar__opt small { font-weight: 400; font-size: 0.8em; opacity: 0.8; }
.smartv-app .smartv-planbar__note { flex-basis: 100%; margin: 0; }
.smartv-app .smartv-planbar__fixed { margin: 0; }
.smartv-app .smartv-summary__upgrade .smartv-summary__name { font-weight: 700; }
.smartv-app .smartv-offer-note { margin: 0.75rem 0 0; padding: 0.6rem 0.85rem; border: 1px dashed var(--smartv-border-strong); border-radius: 10px; }
.smartv-app .smartv-volume-hint { font-weight: 600; opacity: 1; }
.smartv-app .smartv-locked { display: inline-flex; gap: 0.4em; align-items: center; font-size: 0.9em; opacity: var(--smartv-muted-opacity); }

/* 1.30: Zespół → Jakość i funkcje poza pakietem. */
.smartv-app .smartv-upsell .smartv-section__body { display: grid; gap: 0.6rem; padding: 1rem 1.1rem; border: 1px dashed var(--smartv-border-strong); border-radius: 12px; }
.smartv-app .smartv-upsell p { margin: 0; }
.smartv-app .smartv-quality { display: grid; gap: 1rem; }
.smartv-app .smartv-quality__sum { display: grid; gap: 0.5rem; padding: 1rem 1.1rem; border: 1px solid var(--smartv-border); border-radius: 12px; }
.smartv-app .smartv-quality__sum p { margin: 0; }
.smartv-app .smartv-quality__pct { font-size: 1.1rem; }
.smartv-app .smartv-quality__pct strong { font-size: 2rem; margin-right: 0.25rem; }
.smartv-app .smartv-quality__keys { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.smartv-app .smartv-quality__keys li { padding: 0.15rem 0.6rem; border: 1px solid var(--smartv-border); border-radius: 999px; font-size: 0.85rem; }
.smartv-app .smartv-quality__remind { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: center; }
.smartv-app .smartv-quality__list { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.smartv-app .smartv-quality__item { padding: 0.75rem 0.9rem; border: 1px solid var(--smartv-border); border-left: 3px solid #d97706; border-radius: 10px; }
.smartv-app .smartv-quality__item.is-ok { border-left-color: #16a34a; }
.smartv-app .smartv-quality__head { display: flex; flex-wrap: wrap; gap: 0.35rem 0.7rem; align-items: center; }
.smartv-app .smartv-quality__head .smartv-btn { margin-left: auto; }
.smartv-app .smartv-quality__badge { font-size: 0.78rem; padding: 0.05rem 0.5rem; border-radius: 999px; border: 1px solid currentColor; opacity: 0.8; }
.smartv-app .smartv-quality__issues { margin: 0.45rem 0 0; padding-left: 1.1rem; font-size: 0.9rem; }
.smartv-app .smartv-quality__issues li.is-error { color: #b91c1c; }
.smartv-app .smartv-quality__issues li.is-info { opacity: var(--smartv-muted-opacity); }

/* 1.30: przycisk „Udostępnij” – menu na komputerze. */
.smartv-app .smartv-card__actions,
.smartv-app .smartv-link__actions { position: relative; }
.smartv-app .smartv-share-menu { position: absolute; z-index: 30; display: grid; min-width: 180px; padding: 0.3rem; background: var(--smartv-bg-solid, #fff); border: 1px solid var(--smartv-border-strong); border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); }
.smartv-app .smartv-share-menu__item { display: block; width: 100%; padding: 0.5rem 0.7rem; border: 0; border-radius: 7px; background: none; color: inherit; font: inherit; font-size: 0.92rem; text-align: left; text-decoration: none; cursor: pointer; }
.smartv-app .smartv-share-menu__item:hover,
.smartv-app .smartv-share-menu__item:focus-visible { background: var(--smartv-hover, rgba(127, 127, 127, 0.12)); outline: none; }
/* 1.30: przełącznik zespołu z trzema widokami w jednym rzędzie. */
.smartv-app .smartv-seg { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
@media (max-width: 480px) {
	.smartv-app a.smartv-seg__item { gap: 0.3rem; padding: 0 0.35rem; font-size: 0.8125rem; }
	.smartv-app a.smartv-seg__item svg { display: none; }
}
.smartv-app .smartv-planbar__upnote { flex-basis: 100%; margin: 0; padding: 0.6rem 0.85rem; border-left: 3px solid var(--smartv-warn); background: var(--smartv-surface); border-radius: 6px; font-size: 0.92rem; }
.smartv-app .smartv-summary__uplist { margin: 0.4rem 0 0; padding: 0; list-style: none; font-size: 0.9rem; }
.smartv-app .smartv-summary__uplist li { display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.25rem 0; border-top: 1px dashed var(--smartv-border); }
.smartv-app .smartv-summary__uplist small { opacity: var(--smartv-muted-opacity); }
/* 1.31.3: nowe listy bez ozdobników motywu (strzałki przed elementami). */
.smartv-app .smartv-summary__uplist > li::before,
.smartv-app .smartv-quality__list > li::before,
.smartv-app .smartv-quality__keys > li::before,
.smartv-app .smartv-quality__issues > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-summary__uplist > li { text-align: left; }
.smartv-app .smartv-summary__uplist > li > span:first-child { flex: 1 1 auto; min-width: 0; }
.smartv-app .smartv-summary__uplist > li > span:last-child { flex: 0 0 auto; white-space: nowrap; }
.smartv-app .smartv-quality__issues { list-style: disc; }
/* Propozycja wyższego pakietu w podsumowaniu. */
.smartv-app .smartv-upsell-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; margin: 1rem 0 0; padding: 0.75rem 0.9rem; border: 1px solid rgba(34, 197, 94, 0.45); border-radius: 12px; background: rgba(34, 197, 94, 0.07); }
.smartv-app .smartv-upsell-box p { margin: 0; flex: 1 1 260px; }
.smartv-app .smartv-planbar__head { display: grid; gap: 0.15rem; flex-basis: 100%; }
.smartv-app .smartv-planbar__label { font-size: 1.05rem; }
.smartv-app .smartv-planbar__head .smartv-hint { margin: 0; }

/* 1.31.5: podsumowanie zamówienia – karty wizytówek, wyróżniona dopłata, wyraźna suma. */
.smartv-app .smartv-sum { display: grid; gap: 0.9rem; }
.smartv-app .smartv-sum p { margin: 0; }
.smartv-app .smartv-sum__plan { display: inline-flex; justify-self: start; gap: 0.3rem; padding: 0.25rem 0.75rem; border-radius: 999px; background: rgba(34, 197, 94, 0.12); box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.55); font-size: 0.9rem; }
.smartv-app .smartv-sum__title { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-sum__cards { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.smartv-app .smartv-sum__cards > li::before,
.smartv-app .smartv-sum__uplist > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-sum__card { display: grid; gap: 0.3rem; padding: 0.7rem 0.9rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); text-align: left; }
.smartv-app .smartv-sum__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.25rem 0.75rem; }
.smartv-app .smartv-sum__head > span:last-child:not(.smartv-sum__tag) { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.smartv-app .smartv-sum__tag { font-size: 0.75rem; padding: 0.05rem 0.55rem; border: 1px solid var(--smartv-border-strong); border-radius: 999px; opacity: 0.85; }
.smartv-app .smartv-sum__row { display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.9rem; }
.smartv-app .smartv-sum__row > span:first-child { min-width: 0; opacity: 0.85; }
.smartv-app .smartv-sum__row > span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.smartv-app .smartv-sum__row small,
.smartv-app .smartv-sum__uplist small { opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-sum__row--disc { color: #22c55e; }
.smartv-app .smartv-sum__upgrade { display: grid; gap: 0.45rem; padding: 0.75rem 0.9rem; border: 1px solid rgba(245, 158, 11, 0.55); border-left: 4px solid #f59e0b; border-radius: 12px; background: rgba(245, 158, 11, 0.08); text-align: left; }
.smartv-app .smartv-sum__note { font-size: 0.85rem; opacity: 0.85; }
.smartv-app .smartv-sum__uplist { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; }
.smartv-app .smartv-sum__uplist li { display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.3rem 0; border-top: 1px dashed rgba(245, 158, 11, 0.4); text-align: left; }
.smartv-app .smartv-sum__uplist li > span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.smartv-app .smartv-sum__costs { display: grid; gap: 0.35rem; margin: 0; padding: 0.25rem 0 0; }
.smartv-app .smartv-sum__costs > div { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.95rem; }
.smartv-app .smartv-sum__costs dt { margin: 0; opacity: 0.85; font-weight: 400; }
.smartv-app .smartv-sum__costs dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.smartv-app .smartv-sum__costs-disc dt,
.smartv-app .smartv-sum__costs-disc dd { color: #22c55e; opacity: 1; }
.smartv-app .smartv-sum__total { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 0.15rem 1rem; padding: 0.9rem 1rem; border-radius: 14px;
	border: 2px solid transparent;
	background: linear-gradient(var(--smartv-bg-solid, #fff), var(--smartv-bg-solid, #fff)) padding-box, linear-gradient(90deg, var(--smartv-grad-1, #2dd4bf), var(--smartv-grad-2, #8b5cf6)) border-box; }
.smartv-app .smartv-sum__total-label { font-weight: 700; font-size: 1.05rem; }
.smartv-app .smartv-sum__total-amount { font-size: 1.6rem; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.smartv-app .smartv-sum__total-amount small { font-size: 0.85rem; font-weight: 500; opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-sum__total-net { grid-column: 1 / -1; text-align: right; font-size: 0.875rem; opacity: var(--smartv-muted-opacity); font-variant-numeric: tabular-nums; }
@media (max-width: 480px) {
	.smartv-app .smartv-sum__total { grid-template-columns: 1fr; }
	.smartv-app .smartv-sum__total-amount, .smartv-app .smartv-sum__total-net { text-align: left; }
}
.smartv-app .smartv-sum__head strong { font-weight: 700; }
.smartv-app .smartv-summary .smartv-volume-hint,
.smartv-app .smartv-summary .smartv-code-ok,
.smartv-app .smartv-summary > .smartv-hint,
.smartv-app .smartv-summary [data-smartv-code-error] { margin: 0.75rem 0 0; }
.smartv-app .smartv-summary .smartv-volume-hint { padding: 0.5rem 0.8rem; border-radius: 10px; background: rgba(34, 197, 94, 0.08); color: inherit; }

/* 1.32: wersje kontaktu i dopiski do notatki – stały układ: opis po lewej, przyciski po prawej (telefon: pod spodem). */
.smartv-app .smartv-versions__list,
.smartv-app .smartv-addons__list { display: grid; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.smartv-app .smartv-versions__list > li::before,
.smartv-app .smartv-addons__list > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-versions__item,
.smartv-app .smartv-addons__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.6rem 1rem; padding: 0.75rem 0.9rem; border: 1px solid var(--smartv-border); border-radius: 12px; background: var(--smartv-surface); text-align: left; }
.smartv-app .smartv-versions__item.is-live,
.smartv-app .smartv-addons__item.is-live { border-color: rgba(34, 197, 94, 0.6); box-shadow: inset 3px 0 0 #22c55e; }
.smartv-app .smartv-versions__main,
.smartv-app .smartv-addons__main { display: grid; gap: 0.2rem; min-width: 0; }
.smartv-app .smartv-versions__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.6rem; }
.smartv-app .smartv-versions__main .smartv-hint,
.smartv-app .smartv-addons__main .smartv-hint { margin: 0; }
.smartv-app .smartv-versions__actions,
.smartv-app .smartv-addons__actions { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 0.4rem; }
.smartv-app .smartv-versions__actions .smartv-inline-form,
.smartv-app .smartv-addons__actions .smartv-inline-form { margin: 0; }
.smartv-app .smartv-versions__actions .smartv-btn,
.smartv-app .smartv-addons__actions .smartv-btn { white-space: nowrap; }
@media (max-width: 640px) {
	.smartv-app .smartv-versions__item,
	.smartv-app .smartv-addons__item { grid-template-columns: 1fr; }
	.smartv-app .smartv-versions__actions,
	.smartv-app .smartv-addons__actions { display: grid; grid-template-columns: 1fr 1fr; }
	/* Cztery przyciski – dwa rzędy po dwa; trzy – pierwszy na całą szerokość; jeden – na całą szerokość. */
	.smartv-app .smartv-versions__actions > :first-child:nth-last-child(3) { grid-column: 1 / -1; }
	.smartv-app .smartv-versions__actions > :only-child { grid-column: 1 / -1; }
	.smartv-app .smartv-versions__custom { grid-template-columns: 1fr; }
	.smartv-app .smartv-versions__actions .smartv-btn,
	.smartv-app .smartv-addons__actions .smartv-btn,
	.smartv-app .smartv-versions__actions .smartv-inline-form,
	.smartv-app .smartv-addons__actions .smartv-inline-form { width: 100%; }
}
.smartv-app .smartv-versions__badge { font-size: 0.75rem; padding: 0.05rem 0.55rem; border-radius: 999px; background: rgba(34, 197, 94, 0.15); color: #16a34a; font-weight: 700; }
.smartv-app[data-smartv-scheme="dark"] .smartv-versions__badge { color: #4ade80; }
.smartv-app .smartv-versions__badge--wait { background: rgba(245, 158, 11, 0.15); color: #b45309; }
.smartv-app .smartv-addons__form { display: grid; gap: 0.6rem; }
.smartv-app .smartv-tpl-extras { margin-top: 0.75rem; }
.smartv-app .smartv-card__version { margin: 0.35rem 0 0; }
.smartv-app .smartv-card__version .smartv-card__vrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; font-size: 0.875rem; }
.smartv-app .smartv-card__version .smartv-select { flex: 0 1 auto; width: auto !important; max-width: 100%; }
.smartv-app .smartv-card__version .smartv-input { min-height: 36px; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: 0.875rem; }
/* 1.32: Zespół → Szablon. */
.smartv-app .smartv-tpl > .smartv-hint { margin: 0 0 1rem; }
.smartv-app .smartv-tpl__modes { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin-bottom: 0.75rem; }
.smartv-app .smartv-tpl__field.is-forced .smartv-section__body { border-left: 3px solid #22c55e; padding-left: 0.85rem; }
@media (max-width: 480px) {
	.smartv-app .smartv-seg { grid-auto-flow: row; grid-template-columns: 1fr 1fr; }
}
/* Formularze przycisków w wierszach wersji i dopisków – zwykłe bloki (nie „contents”), żeby siatka działała. */
.smartv-app .smartv-versions__actions > .smartv-inline-form,
.smartv-app .smartv-addons__actions > .smartv-inline-form { display: block !important; }
/* Kontrola jakości: opis po lewej, „Edytuj” zawsze po prawej. */
.smartv-app .smartv-quality__head { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.smartv-app .smartv-quality__head .smartv-btn { margin-left: 0 !important; }
.smartv-app .smartv-quality__who { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.7rem; min-width: 0; }

/* „Na termin” – panel pod wersją (na całą szerokość wiersza). */
.smartv-app .smartv-versions__sched { grid-column: 1 / -1; padding-top: 0.75rem; border-top: 1px dashed var(--smartv-border); }
.smartv-app .smartv-versions__sched form { display: grid; gap: 0.5rem; }
.smartv-app .smartv-versions__sched p { margin: 0; }
.smartv-app .smartv-versions__sched-title { font-weight: 600; font-size: 0.9rem; }
.smartv-app .smartv-versions__presets { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-versions__custom { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 0.5rem; }
.smartv-app .smartv-versions__custom .smartv-field { margin: 0; }
@media (max-width: 640px) {
	.smartv-app .smartv-versions__custom { grid-template-columns: 1fr; }
	.smartv-app .smartv-versions__custom .smartv-btn { width: 100%; }
	.smartv-app .smartv-versions__presets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.smartv-app .smartv-versions__presets .smartv-btn { width: 100%; padding-left: 0.4rem !important; padding-right: 0.4rem !important; white-space: normal; }
}

/* 1.32: kalendarz odporny na style przycisków motywu (np. Elementor: duże odstępy, wielkie litery, ramki). */
body .smartv-dp__pop { width: 300px !important; max-width: calc(100vw - 2rem) !important; font-size: 14px !important; line-height: 1.3 !important; text-transform: none !important; letter-spacing: normal !important; }
body .smartv-dp__pop .smartv-dp__grid { display: grid !important; grid-template-columns: repeat(7, minmax(0, 1fr)) !important; gap: 2px !important; }
body .smartv-dp__pop button,
body .smartv-dp__pop .smartv-dp__day,
body .smartv-dp__pop .smartv-dp__nav,
body .smartv-dp__pop .smartv-dp__link { margin: 0 !important; min-width: 0 !important; max-width: none !important; min-height: 0 !important; border: 0 !important; box-shadow: none; text-transform: none !important; letter-spacing: normal !important; white-space: nowrap !important; font-size: 14px !important; font-family: inherit !important; line-height: 1 !important; background-image: none; transform: none !important; }
body .smartv-dp__pop .smartv-dp__day { display: flex !important; align-items: center; justify-content: center; width: 100% !important; height: 34px !important; padding: 0 !important; background-color: transparent; }
body .smartv-dp__pop .smartv-dp__day.is-today { box-shadow: inset 0 0 0 1px rgba(127, 127, 127, 0.6) !important; }
body .smartv-dp__pop .smartv-dp__day.is-sel { background: #22c55e !important; color: #fff !important; }
body .smartv-dp__pop .smartv-dp__nav { display: inline-flex !important; align-items: center; justify-content: center; width: 32px !important; height: 32px !important; padding: 0 !important; font-size: 20px !important; background-color: transparent; }
body .smartv-dp__pop .smartv-dp__link { width: auto !important; height: auto !important; padding: 0.35rem 0.5rem !important; background-color: transparent; }
body .smartv-dp__pop .smartv-dp__dow { font-size: 11px !important; padding: 0.25rem 0 !important; }

/* ---- Okienko (dialog) – historia zmian w zespole ---- */
.smartv-app dialog.smartv-dialog {
	width: min(760px, calc(100vw - 2rem)) !important;
	max-width: none !important;
	max-height: min(84vh, 760px) !important;
	margin: auto !important;
	padding: 0 !important;
	border: 1px solid var(--smartv-border, rgba(128,128,128,.3)) !important;
	border-radius: 16px !important;
	background: var(--smartv-bg-solid, #111214) !important;
	color: var(--smartv-fg-solid, #f2f2f2) !important;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55) !important;
	overflow: hidden !important;
}
.smartv-app dialog.smartv-dialog[open] { display: flex !important; flex-direction: column !important; }
.smartv-app dialog.smartv-dialog::backdrop { background: rgba(0, 0, 0, 0.7); }
.smartv-app .smartv-dialog__head { display: flex !important; align-items: center !important; gap: .75rem; padding: .85rem 1rem .85rem 1.2rem !important; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.25)); }
.smartv-app .smartv-dialog__title { flex: 1 1 auto; min-width: 0; margin: 0 !important; font-size: 1.05rem !important; font-weight: 700 !important; color: inherit !important; }
.smartv-app .smartv-dialog__close { flex: 0 0 auto; width: 2.4rem !important; height: 2.4rem !important; min-height: 0 !important; padding: 0 !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)) !important; border-radius: 999px !important; background: transparent !important; color: inherit !important; font-size: 1.4rem !important; line-height: 1 !important; cursor: pointer; box-shadow: none !important; }
.smartv-app .smartv-dialog__close:hover, .smartv-app .smartv-dialog__close:focus-visible { background: rgba(128, 128, 128, .18) !important; }
.smartv-app .smartv-dialog__search { display: block !important; width: calc(100% - 2.4rem) !important; margin: .8rem 1.2rem .2rem !important; box-sizing: border-box !important; }
.smartv-app .smartv-dialog__body { flex: 1 1 auto; min-height: 0; overflow-y: auto !important; overscroll-behavior: contain; padding: .2rem 1.2rem .6rem !important; }
.smartv-app .smartv-dialog__foot { padding: .6rem 1.2rem calc(.8rem + env(safe-area-inset-bottom, 0px)) !important; border-top: 1px solid var(--smartv-border, rgba(128,128,128,.25)); }
.smartv-app .smartv-dialog__foot:has(> [hidden]:only-child) { display: none !important; }
.smartv-app .smartv-dialog [hidden] { display: none !important; }
.smartv-app .smartv-dialog.is-loading .smartv-dialog__body { opacity: .55; }
.smartv-app .smartv-dialog .smartv-team__log td:first-child { width: 9.5rem; }
@media (max-width: 640px) {
	.smartv-app dialog.smartv-dialog { width: 100vw !important; max-height: 100dvh !important; height: 100dvh !important; border-radius: 0 !important; border: 0 !important; }
	.smartv-app .smartv-dialog__head { padding-top: calc(.85rem + env(safe-area-inset-top, 0px)) !important; }
	.smartv-app .smartv-dialog .smartv-team__log td:first-child { width: auto; }
}
body.smartv-dialog-open { overflow: hidden !important; }
@media (min-width: 641px) { .smartv-app button[data-smartv-dialog-open] { display: inline-flex !important; width: auto !important; max-width: max-content !important; align-self: flex-start !important; } }
.smartv-app .smartv-dialog .smartv-team__log, .smartv-app .smartv-dialog .smartv-team__log tr { border: 0 !important; background: transparent !important; }
.smartv-app .smartv-dialog .smartv-team__log td { border: 0 !important; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.25)) !important; background: transparent !important; color: inherit !important; }
@media (max-width: 640px) { .smartv-app .smartv-dialog .smartv-team__log td { border-bottom: 0 !important; } .smartv-app .smartv-dialog .smartv-team__log tr { display: block; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.25)) !important; } }

/* ---- 1.33: import pracowników z pliku ---- */
.smartv-app .smartv-header__btns { display: flex !important; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 640px) { .smartv-app .smartv-header__btns { display: grid !important; grid-template-columns: 1fr 1fr; } .smartv-app .smartv-header__btns .smartv-btn { justify-content: center; text-align: center; } }
.smartv-app .smartv-imp__chips { display: flex !important; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem !important; padding: 0 !important; list-style: none !important; }
.smartv-app .smartv-imp__chips li { margin: 0 !important; padding: .45rem .8rem !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); border-radius: 999px; font-size: .9rem; }
.smartv-app .smartv-imp__chips li::before, .smartv-app .smartv-imp__cols li::before, .smartv-app .smartv-imp__known li::before, .smartv-app .smartv-imp__problems li::before { content: none !important; display: none !important; }
.smartv-app .smartv-imp__chips li.is-new { border-color: rgba(34,197,94,.55); background: rgba(34,197,94,.1); }
.smartv-app .smartv-imp__chips li.is-update { border-color: rgba(59,130,246,.55); background: rgba(59,130,246,.1); }
.smartv-app .smartv-imp__chips li.is-error { border-color: rgba(239,68,68,.55); background: rgba(239,68,68,.1); }
.smartv-app .smartv-imp__hdr { margin-bottom: .8rem !important; }
.smartv-app .smartv-imp__cols { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .6rem; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.smartv-app .smartv-imp__col { display: grid !important; gap: .4rem; margin: 0 !important; padding: .7rem .8rem !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); border-radius: 12px; text-align: left !important; }
.smartv-app .smartv-imp__col.is-on { border-color: rgba(34,197,94,.55); }
.smartv-app .smartv-imp__colname { display: grid; gap: .1rem; min-width: 0; }
.smartv-app .smartv-imp__colname strong, .smartv-app .smartv-imp__colname span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.smartv-app .smartv-imp__col .smartv-select { width: 100% !important; }
.smartv-app .smartv-imp__opts { display: grid !important; gap: .8rem; }
.smartv-app .smartv-imp__opts .smartv-check { align-items: flex-start !important; }
.smartv-app .smartv-imp__tablewrap { max-height: 70vh; overflow: auto; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); border-radius: 12px; }
.smartv-app .smartv-imp__table { width: 100%; border-collapse: collapse !important; font-size: .875rem; margin: 0 !important; border: 0 !important; }
.smartv-app .smartv-imp__table th, .smartv-app .smartv-imp__table td { padding: .55rem .7rem !important; border: 0 !important; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.2)) !important; text-align: left !important; vertical-align: top; background: transparent !important; color: inherit !important; }
.smartv-app .smartv-imp__table thead th { position: sticky; top: 0; z-index: 1; background: var(--smartv-bg-solid, #fff) !important; font-weight: 700; white-space: nowrap; }
.smartv-app .smartv-imp__table td:first-child { opacity: .7; white-space: nowrap; }
.smartv-app .smartv-imp__badge { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); }
.smartv-app .smartv-imp__table tr.is-new .smartv-imp__badge { background: rgba(34,197,94,.15); border-color: rgba(34,197,94,.5); }
.smartv-app .smartv-imp__table tr.is-update .smartv-imp__badge { background: rgba(59,130,246,.15); border-color: rgba(59,130,246,.5); }
.smartv-app .smartv-imp__table tr.is-error .smartv-imp__badge, .smartv-app .smartv-imp__table tr.is-over .smartv-imp__badge { background: rgba(239,68,68,.15); border-color: rgba(239,68,68,.5); }
.smartv-app .smartv-imp__table tr.is-error td, .smartv-app .smartv-imp__table tr.is-over td { background: rgba(239,68,68,.05) !important; }
.smartv-app .smartv-imp__table small { opacity: .8; }
.smartv-app .smartv-imp__actions { display: flex !important; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.smartv-app .smartv-imp__upload { display: grid !important; gap: .8rem; max-width: 520px; }
.smartv-app .smartv-imp__upload .smartv-btn { justify-self: start; }
.smartv-app .smartv-imp__tpl { display: flex !important; flex-wrap: wrap; gap: .6rem; }
.smartv-app .smartv-imp__known { display: flex !important; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 1rem !important; padding: 0 !important; list-style: none !important; }
.smartv-app .smartv-imp__known li { margin: 0 !important; padding: .25rem .6rem !important; border-radius: 8px; background: rgba(128,128,128,.12); font-size: .85rem; }
.smartv-app .smartv-imp__problems { margin: .4rem 0 0 !important; padding: 0 !important; list-style: none !important; display: grid; gap: .35rem; }
.smartv-app .smartv-imp__problems li { margin: 0 !important; padding: .5rem .7rem !important; border-left: 3px solid rgba(239,68,68,.7); background: rgba(239,68,68,.06); border-radius: 6px; }
.smartv-app .smartv-imp__h { margin: 1.2rem 0 .3rem !important; font-size: 1rem !important; }
@media (max-width: 640px) {
	.smartv-app .smartv-imp__tablewrap { max-height: none; border: 0; }
	.smartv-app .smartv-imp__table thead { display: none; }
	.smartv-app .smartv-imp__table tr { display: block; padding: .6rem 0; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.25)); }
	.smartv-app .smartv-imp__table td { display: block; padding: .1rem 0 !important; border: 0 !important; }
	.smartv-app .smartv-imp__table td:empty { display: none; }
	.smartv-app .smartv-imp__table td:first-child::before { content: "Wiersz "; }
	.smartv-app .smartv-imp__actions .smartv-btn, .smartv-app .smartv-imp__upload .smartv-btn { width: 100%; justify-content: center; }
}
/* Sekcja tuż pod nagłówkiem – bez drugiej kreski. */
.smartv-app .smartv-header + .smartv-section, .smartv-app .smartv-header + form > .smartv-section:first-of-type { border-top: 0 !important; padding-top: 0 !important; }
.smartv-app .smartv-imp__table th, .smartv-app .smartv-imp__table td { word-break: normal !important; overflow-wrap: break-word !important; hyphens: none !important; }
.smartv-app .smartv-imp__table td:last-child { width: 38%; }
.smartv-app .smartv-imp__contact { overflow-wrap: anywhere !important; }
@media (max-width: 640px) {
	.smartv-app .smartv-header__btns { grid-template-columns: 1fr !important; }
	.smartv-app .smartv-header__btns .smartv-btn--primary { order: -1; }
}
/* ---- 1.33: historia zmian wizytówki ---- */
.smartv-app .smartv-chist__list { margin: 0 !important; padding: 0 !important; list-style: none !important; display: grid; gap: 0; }
.smartv-app .smartv-chist__list > li::before, .smartv-app .smartv-chist__changes > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-chist__item { margin: 0 !important; padding: .9rem 0 !important; border-bottom: 1px solid var(--smartv-border, rgba(128,128,128,.25)); }
.smartv-app .smartv-chist__item:last-child { border-bottom: 0; }
.smartv-app .smartv-chist__meta { margin: 0 0 .35rem !important; font-size: .875rem; }
.smartv-app .smartv-chist__changes { margin: 0 0 .5rem !important; padding: 0 0 0 1rem !important; list-style: disc !important; font-size: .9rem; display: grid; gap: .15rem; }
.smartv-app .smartv-chist__changes > li { margin: 0 !important; padding: 0 !important; overflow-wrap: anywhere; }
.smartv-app .smartv-chist__restore { margin: 0 !important; }
.smartv-app button[data-smartv-dialog-open].smartv-btn--sm { width: auto; }

/* ---- 1.34: pasek przycisków listy wizytówek ---- */
.smartv-app .smartv-toolbar { display: flex !important; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 !important; }
.smartv-app .smartv-toolbar > .smartv-btn, .smartv-app .smartv-toolbar__form > .smartv-btn { display: inline-flex !important; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; white-space: nowrap; }
.smartv-app .smartv-toolbar__form { display: contents !important; margin: 0 !important; }
.smartv-app .smartv-toolbar .smartv-btn.is-locked { opacity: .75; }
.smartv-app .smartv-toolbar .smartv-btn.is-locked:hover { opacity: 1; }
@media (max-width: 640px) {
	.smartv-app .smartv-toolbar { display: grid !important; grid-template-columns: 1fr 1fr; }
	.smartv-app .smartv-toolbar > .smartv-btn--primary { grid-column: 1 / -1; }
	.smartv-app .smartv-toolbar .smartv-btn { width: 100%; white-space: normal; text-align: center; padding-left: .6rem !important; padding-right: .6rem !important; }
}
.smartv-app .smartv-header__bar > .smartv-count { margin: 0 !important; }
.smartv-app .smartv-imp__more { margin-top: 1rem; }
.smartv-app .smartv-imp__more > summary { cursor: pointer; font-weight: 600; }
.smartv-app .smartv-imp__more[open] > summary { margin-bottom: .6rem; }
.smartv-app .smartv-teamadv { display: grid !important; gap: .7rem; justify-items: start; margin-top: 1rem; padding: 1.1rem 1.2rem !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); border-radius: 14px; }
.smartv-app .smartv-teamadv__title { margin: 0 !important; font-size: 1.05rem !important; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.smartv-app .smartv-teamadv__badge { font-size: .8rem; font-weight: 500; padding: .15rem .6rem; border-radius: 999px; background: rgba(245,158,11,.15); border: 1px solid rgba(245,158,11,.5); }
.smartv-app .smartv-teamadv__list { margin: 0 !important; padding: 0 0 0 1.1rem !important; display: grid; gap: .3rem; list-style: disc !important; }
.smartv-app .smartv-teamadv__list > li { margin: 0 !important; padding: 0 !important; }
.smartv-app .smartv-teamadv__list > li::before { content: none !important; display: none !important; }
@media (max-width: 640px) { .smartv-app .smartv-teamadv .smartv-btn { width: 100%; justify-content: center; } }
.smartv-app .smartv-locked-note .smartv-btn { margin-left: .5rem; vertical-align: middle; }
@media (max-width: 640px) { .smartv-app .smartv-locked-note .smartv-btn { display: flex !important; margin: .6rem 0 0; width: 100%; justify-content: center; } }
/* 1.34: link VCF i przyciski w jednej linii, ta sama wysokość. */
.smartv-app .smartv-link { align-items: center !important; }
.smartv-app .smartv-link__url { display: flex !important; align-items: center; min-height: var(--smartv-control-h, 46px); box-sizing: border-box !important; margin: 0 !important; padding-top: .45rem !important; padding-bottom: .45rem !important; }
.smartv-app .smartv-link__actions { align-items: center; margin: 0 !important; }
.smartv-app .smartv-link__actions > .smartv-btn { margin: 0 !important; min-height: var(--smartv-control-h, 46px); }
@media (min-width: 768px) { .smartv-app .smartv-link__actions { flex-wrap: nowrap !important; } }
/* 1.34: oś etapów – kreska dokładnie przez środek kropek (niezależnie od box-sizing motywu). */
.smartv-app .smartv-stages .smartv-stages__dot { box-sizing: border-box !important; width: 16px !important; height: 16px !important; padding: 0 !important; left: 0 !important; }
.smartv-app .smartv-stages .smartv-stages__item::after { left: 7px !important; top: calc(0.2rem + 16px) !important; height: calc(100% - 16px) !important; box-sizing: border-box !important; }
/* 1.34: przyciski podglądu w stałych rzędach (równe kolumny, bez przeskakiwania). */
.smartv-vbar--grid { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0.4rem; max-width: 560px; width: 100%; margin: 0 auto; }
.smartv-vbar--grid > .smartv-vbtn { width: 100% !important; min-width: 0 !important; padding-left: 0.3rem !important; padding-right: 0.3rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; justify-content: center; }
.smartv-vbar--tabs { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); max-width: 280px; width: 100%; margin: 0 auto; gap: 0.4rem; }
.smartv-app .smartv-tstats__dept { display: inline-flex !important; align-items: center; gap: .5rem; }
.smartv-app .smartv-tstats__lbl { font-weight: 600; font-size: .9rem !important; white-space: nowrap; }
.smartv-app .smartv-quality__rules { margin: .4rem 0 .8rem !important; }
.smartv-app .smartv-quality__rules > summary { cursor: pointer; font-weight: 600; }
.smartv-app .smartv-quality__rules dl { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1rem; margin: .8rem 0 .4rem !important; }
.smartv-app .smartv-quality__rules dt { font-weight: 600; margin: 0 !important; }
.smartv-app .smartv-quality__rules dd { margin: 0 !important; }
@media (max-width: 640px) { .smartv-app .smartv-quality__rules dl { grid-template-columns: 1fr; gap: .1rem; } .smartv-app .smartv-quality__rules dd { margin-bottom: .5rem !important; } }
/* ---- 1.34: filtry listy i przypinanie ---- */
.smartv-app .smartv-cardsearch { display: grid !important; gap: .7rem; margin: 0 0 1.5rem !important; padding: 1rem !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.3)); border-radius: 14px; }
.smartv-app .smartv-cardsearch__row { display: flex; gap: .5rem; }
.smartv-app .smartv-cardsearch__row input[type="search"] { flex: 1 1 auto; min-width: 0; }
.smartv-app .smartv-cardsearch__filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .6rem; }
.smartv-app .smartv-cardsearch__f { display: grid !important; gap: .25rem; margin: 0 !important; font-size: .8125rem !important; }
.smartv-app .smartv-cardsearch__f > span:first-child { opacity: .75; font-weight: 600; }
.smartv-app .smartv-cardsearch__f .smartv-select { width: 100% !important; }
.smartv-app .smartv-cardsearch__info { margin: 0 !important; font-size: .875rem; }
.smartv-app .smartv-chipform { display: contents !important; margin: 0 !important; }
.smartv-app .smartv-chip.is-on { border-color: #22c55e !important; background: rgba(34,197,94,.12) !important; }
.smartv-app .smartv-card.is-pinned { box-shadow: inset 3px 0 0 #22c55e; }
.smartv-app .smartv-pinbadge { margin: 0 0 .25rem !important; display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 700; background: rgba(34,197,94,.14); border: 1px solid rgba(34,197,94,.5); width: max-content; }
@media (max-width: 640px) { .smartv-app .smartv-cardsearch__filters { grid-template-columns: 1fr 1fr; } .smartv-app .smartv-cardsearch { padding: .8rem !important; } }
@media (max-width: 380px) { .smartv-app .smartv-cardsearch__filters { grid-template-columns: 1fr; } }
/* ---- 1.34: numer kierunkowy kraju przy telefonach ---- */
.smartv-app .smartv-ccwrap { position: relative; display: flex !important; align-items: stretch; width: 100%; min-width: 0; }
.smartv-app .smartv-ccwrap > input { flex: 1 1 auto; min-width: 0; border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.smartv-app .smartv-cc__cc { flex: 0 0 auto; display: inline-flex !important; align-items: center; gap: .3rem; margin: 0 !important; padding: 0 .6rem !important; min-height: var(--smartv-control-h, 46px); border: 1px solid var(--smartv-border-strong, rgba(128,128,128,.45)) !important; border-right: 0 !important; border-radius: var(--smartv-radius, 10px) 0 0 var(--smartv-radius, 10px) !important; background: var(--smartv-surface, rgba(128,128,128,.08)) !important; color: inherit !important; font: inherit !important; font-size: .9rem !important; cursor: pointer; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; white-space: nowrap; }
.smartv-app .smartv-cc__cc:hover, .smartv-app .smartv-cc__cc:focus-visible { background: rgba(128,128,128,.18) !important; }
.smartv-app .smartv-cc__flag { font-size: 1.1rem; line-height: 1; }
.smartv-app .smartv-cc__caret { font-size: .7rem; opacity: .6; }
.smartv-app .smartv-cc__pop { position: absolute; z-index: 60; top: calc(100% + 4px); left: 0; width: min(320px, 90vw); padding: .5rem !important; border: 1px solid var(--smartv-border-strong, rgba(128,128,128,.45)); border-radius: 12px; background: var(--smartv-bg-solid, #fff) !important; color: var(--smartv-fg-solid, inherit) !important; box-shadow: 0 16px 40px rgba(0,0,0,.25); }
.smartv-app .smartv-cc__q { width: 100% !important; margin: 0 0 .4rem !important; box-sizing: border-box !important; }
.smartv-app .smartv-cc__list { max-height: 260px; overflow-y: auto; margin: 0 !important; padding: 0 !important; list-style: none !important; overscroll-behavior: contain; }
.smartv-app .smartv-cc__list > li { margin: 0 !important; padding: 0 !important; }
.smartv-app .smartv-cc__list > li::before { content: none !important; display: none !important; }
.smartv-app .smartv-cc__opt { display: grid !important; grid-template-columns: 1.6rem 1fr auto; align-items: center; gap: .4rem; width: 100% !important; margin: 0 !important; padding: .45rem .5rem !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: inherit !important; font: inherit !important; font-size: .9rem !important; text-align: left !important; cursor: pointer; min-height: 0 !important; box-shadow: none !important; text-transform: none !important; }
.smartv-app .smartv-cc__opt:hover, .smartv-app .smartv-cc__opt:focus-visible { background: rgba(128,128,128,.15) !important; }
.smartv-app .smartv-cc__opt.is-on { background: rgba(34,197,94,.14) !important; }
.smartv-app .smartv-cc__num { opacity: .7; font-variant-numeric: tabular-nums; }
.smartv-app .smartv-cc__sep { height: 1px; margin: .3rem 0 !important; background: var(--smartv-border, rgba(128,128,128,.25)); }
.smartv-app .smartv-cc__none { padding: .5rem !important; opacity: .7; }
/* 1.34: nagłówek listy – licznik nad paskiem przycisków (bez łamania „4 wizytówki”). */
.smartv-app .smartv-header__bar { flex-direction: column !important; align-items: flex-start !important; justify-content: flex-start !important; gap: .75rem !important; }
.smartv-app .smartv-header__bar > .smartv-count { white-space: nowrap; }
.smartv-app .smartv-header__bar > .smartv-toolbar { width: 100%; }
.smartv-app .smartv-cardsearch__row > .smartv-btn { flex: 0 0 auto; white-space: nowrap; }
/* 1.34: stały układ – osoba po lewej, przycisk zawsze po prawej (bez przeskakiwania pod tekst). */
.smartv-app .smartv-cardteam__row { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .5rem .75rem; }
.smartv-app .smartv-cardteam__info { margin: 0 !important; min-width: 0; overflow-wrap: anywhere; }
.smartv-app .smartv-cardteam__btns { display: inline-flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
@media (max-width: 420px) { .smartv-app .smartv-cardteam__row { grid-template-columns: 1fr; } .smartv-app .smartv-cardteam__btns { justify-content: flex-start; } }
/* 1.34: przyciski karty w równej siatce 2 kolumn. */
.smartv-app .smartv-card .smartv-card__actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: .5rem; }
.smartv-app .smartv-card .smartv-card__actions > .smartv-inline-form { display: block !important; }
/* 1.34: wiersz ustawienia – opis po lewej, przycisk zawsze po prawej (na telefonie pod spodem, na całą szerokość). */
.smartv-app .smartv-setrow { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .6rem 1.25rem; margin: 0 0 1rem !important; padding: .9rem 1rem !important; border: 1px solid var(--smartv-border, rgba(128,128,128,.25)); border-radius: 12px; }
.smartv-app .smartv-setrow > .smartv-btn { white-space: nowrap; }
@media (max-width: 640px) { .smartv-app .smartv-setrow { grid-template-columns: 1fr; } .smartv-app .smartv-setrow > .smartv-btn { width: 100%; justify-content: center; } }
.smartv-app .smartv-addline { display: grid; gap: .4rem; justify-items: start; margin-top: .75rem; }
.smartv-app .smartv-addline > .smartv-hint { margin: 0 !important; }
/* 1.34: przyciski w sekcjach nie rozciągają się na całą szerokość/wysokość (komputer). */
@media (min-width: 641px) {
	.smartv-app .smartv-section__body > .smartv-btn, .smartv-app .smartv-section__body > form > .smartv-btn, .smartv-app .smartv-section__body > p > .smartv-btn:only-child { justify-self: start; align-self: start; width: auto !important; }
}
/* 1.34.2: lista krajów – zwykłe wiersze oddzielone cienką kreską (bez obramowań przycisków z motywu). */
.smartv-app .smartv-cc__list { overflow-x: hidden !important; }
.smartv-app .smartv-cc__list > li + li { border-top: 1px solid var(--smartv-border, rgba(128,128,128,.22)) !important; }
.smartv-app .smartv-cc__list > li.smartv-cc__sep { border-top: 0 !important; height: 2px; background: var(--smartv-border-strong, rgba(128,128,128,.4)); margin: 0 !important; }
.smartv-app .smartv-cc__list > li.smartv-cc__sep + li { border-top: 0 !important; }
.smartv-app button.smartv-cc__opt { box-sizing: border-box !important; max-width: 100% !important; min-width: 0 !important; border: 0 !important; border-image: none !important; outline: 0; box-shadow: none !important; background-image: none !important; border-radius: 6px !important; transform: none !important; }
.smartv-app button.smartv-cc__opt::before, .smartv-app button.smartv-cc__opt::after { content: none !important; display: none !important; }
.smartv-app button.smartv-cc__opt:focus-visible { outline: 2px solid var(--smartv-grad-1, #2dd4bf) !important; outline-offset: -2px; }
/* 1.34.2: przypięta wizytówka – tylko znaczek „Przypięta”, bez paska z boku. */
.smartv-app .smartv-card.is-pinned { box-shadow: none !important; }
/* 1.34.2: komunikaty nad tytułem strony. */
.smartv-app .smartv-nav + .smartv-validity, .smartv-app .smartv-nav + .smartv-attention, .smartv-app .smartv-nav ~ .smartv-attention { margin-top: 1.25rem !important; }
.smartv-app .smartv-attention + .smartv-header, .smartv-app .smartv-validity + .smartv-header { margin-top: 1.25rem; }
/* 1.34.2: Statystyki – własny okres: pełne daty w polach. */
.smartv-app .smartv-tstats__custom .smartv-field { flex: 0 0 12.5rem !important; width: 12.5rem !important; max-width: 100%; display: grid !important; }
.smartv-app .smartv-tstats__custom .smartv-dp { display: flex !important; width: 100% !important; }
.smartv-app .smartv-tstats__custom .smartv-dp__input, .smartv-app .smartv-tstats__custom input { width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; }
.smartv-app .smartv-dp { box-sizing: border-box; }
@media (max-width: 480px) { .smartv-app .smartv-tstats__custom .smartv-field { flex: 1 1 100% !important; width: 100% !important; } }
.smartv-app .smartv-chist__note { margin: .2rem 0 0 !important; font-size: .85rem; opacity: .75; }

/* 1.35.1: znaczek „Przypięta” nad datą ważności (w bloku stanu), bez dużego odstępu pod nim. */
.smartv-app .smartv-card__state .smartv-pinbadge { margin: 0 0 .1rem !important; line-height: 1.4; justify-self: start; }
.smartv-app .smartv-card__info > .smartv-item__name { margin-top: 0 !important; }
/* 1.35.2: „Pobierz VCF” – liczba w kółku zamiast „(ZIP, 2)”; przyciski w pasku zawsze równej wysokości. */
.smartv-app .smartv-btn__count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; border-radius: 999px; font-size: .75rem; font-weight: 700; line-height: 1; background: rgba(128,128,128,.22); }
@media (max-width: 640px) {
	.smartv-app .smartv-toolbar { align-items: stretch !important; }
	.smartv-app .smartv-toolbar .smartv-btn { white-space: nowrap !important; height: 100%; min-height: 48px; font-size: .95rem; }
}
.smartv-app .smartv-toolbar .smartv-btn__count { height: 1.25rem; min-width: 1.25rem; margin: -.2rem 0; }
@media (max-width: 370px) {
	.smartv-app .smartv-toolbar .smartv-btn { white-space: normal !important; font-size: .9rem; }
}
.smartv-app .smartv-toolbar { align-items: stretch !important; }

/* Kalkulator ceny [smartv_kalkulator] (1.36). */
.smartv-app.smartv-calc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1rem, 3vw, 2rem); align-items: start; }
.smartv-app .smartv-calc__form { display: grid; gap: 1.1rem; }
.smartv-app .smartv-calc__form .smartv-planbar__seg { justify-self: start; }
.smartv-app .smartv-calc__row { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; }
.smartv-app .smartv-calc__result { padding: clamp(1rem, 3vw, 1.4rem); border: 1px solid var(--smartv-border); border-radius: 16px; background: var(--smartv-surface); }
.smartv-app .smartv-calc__renew { margin: 0; font-size: 0.95rem; }
.smartv-app .smartv-calc__renew small { opacity: var(--smartv-muted-opacity); }
.smartv-app .smartv-calc__result .smartv-hint, .smartv-app .smartv-calc__result .smartv-offer-note { margin: 0; }
.smartv-app .smartv-calc__cta { margin: 0.25rem 0 0; }
/* Suma w kalkulatorze zawsze jedna pod drugą (kolumna wyniku bywa wąska). */
.smartv-app.smartv-calc .smartv-sum__total { grid-template-columns: minmax(0, 1fr); }
.smartv-app.smartv-calc .smartv-sum__total-amount, .smartv-app.smartv-calc .smartv-sum__total-net { text-align: left; }
.smartv-app .smartv-calc__cta .smartv-btn { width: 100%; justify-content: center; }
@media (max-width: 760px) {
	.smartv-app.smartv-calc { grid-template-columns: minmax(0, 1fr); }
}

/* Zamówienie: gotowy projekt karty klienta (1.38) – druga kolumna obok uwag i logo. */
.smartv-app .smartv-oc__brief-col { display: grid; gap: 0.75rem; align-content: start; min-width: 0; }
.smartv-app .smartv-oc__brief-col[hidden] { display: none; }
@media (min-width: 900px) {
	.smartv-app .smartv-oc__brief:not([hidden]) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 1.25rem; }
	.smartv-app .smartv-oc__brief > .smartv-brief-info { grid-column: 1 / -1; }
}
.smartv-app .smartv-project { padding: 0.85rem; border: 1px dashed var(--smartv-border-strong); border-radius: var(--smartv-radius); }
.smartv-app .smartv-project__help { font-size: 0.875rem; }
.smartv-app .smartv-project__help summary { cursor: pointer; font-weight: 600; }
.smartv-app .smartv-project__help ul { margin: 0.4rem 0 0; padding-left: 1.1rem; display: grid; gap: 0.2rem; }
.smartv-app .smartv-project__files { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
.smartv-app .smartv-project__files .smartv-field { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); align-items: center; gap: 0.5rem; }
.smartv-app .smartv-project__preview:not([hidden]) { display: grid; gap: 0.6rem; }
.smartv-app .smartv-project__tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.smartv-app .smartv-project__tabs .smartv-btn { width: auto !important; }
.smartv-app .smartv-project__tabs .smartv-btn.is-active { background: rgba(34, 197, 94, 0.16) !important; border-color: #22c55e !important; box-shadow: inset 0 0 0 1px #22c55e !important; color: inherit !important; }
.smartv-app .smartv-project__stage { position: relative; }
.smartv-app .smartv-project__stage canvas { display: block; width: 100%; height: auto; max-height: 70vh; object-fit: contain; border-radius: 3.7% / 5.9%; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18); touch-action: none; cursor: grab; }
.smartv-app .smartv-project__qr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
.smartv-app .smartv-project__qr input[type="range"] { width: 100%; }
.smartv-app .smartv-project__colors { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.smartv-app .smartv-project__color { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.9rem; }
.smartv-app .smartv-project__color input[type="color"] { width: 2.4rem; height: 2rem; padding: 0; border: 1px solid var(--smartv-border-strong); border-radius: 6px; background: none; }
.smartv-app .smartv-project__warn:not([hidden]) { margin: 0; padding: 0.5rem 0.75rem; border-left: 3px solid var(--smartv-warn, #f59e0b); border-radius: 6px; background: rgba(245, 158, 11, 0.1); font-size: 0.875rem; }
.smartv-app .smartv-sum__gift-plan { margin: 0.5rem 0 0; padding: 0.6rem 0.85rem; border-left: 3px solid #22c55e; border-radius: 6px; background: rgba(34, 197, 94, 0.08); font-size: 0.9rem; }

/* Suwak (np. wielkość kodu QR) – własny wygląd, widoczny w każdym motywie i w trybie ciemnym. */
.smartv-app input[type="range"].smartv-range { -webkit-appearance: none; appearance: none; width: 100%; height: 26px; margin: 0; padding: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; cursor: pointer; }
.smartv-app input[type="range"].smartv-range::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: var(--smartv-border-strong, rgba(127, 127, 127, 0.45)); }
.smartv-app input[type="range"].smartv-range::-moz-range-track { height: 6px; border-radius: 999px; background: var(--smartv-border-strong, rgba(127, 127, 127, 0.45)); }
.smartv-app input[type="range"].smartv-range::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; margin-top: -7px; border: 2px solid #fff; border-radius: 50%; background: #22c55e; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); }
.smartv-app input[type="range"].smartv-range::-moz-range-thumb { width: 18px; height: 18px; border: 2px solid #fff; border-radius: 50%; background: #22c55e; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); }
.smartv-app .smartv-project__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1rem; }
.smartv-app .smartv-project__mark .smartv-field__label { flex-basis: 100%; }

/* 1.39: ustawienia zamrożone po obniżeniu pakietu */
.smartv-app .smartv-freeze { margin: 0 0 var(--kf-gap, 16px); }
.smartv-app .smartv-freeze .smartv-freeze__act { margin: 10px 0 0; }
.smartv-app .smartv-team__frozen { color: #b45309; }

/* 1.40.3: kalkulator – „Projekt wizytówki: w cenie”. */
.smartv-app .smartv-sum__costs-free dd { color: #22c55e; font-weight: 600; }
