/*
 * Publiczne formularze dla klientów końcowych (bez logowania): żądania RODO,
 * zgłoszenia sygnalistów, e-egzamin AML. Layouty: wwwFormsBase*, wwwFormsBaseRODO*,
 * wwwFormsBaseTestAML (body.md-public). Plik ładuje też layouts/admin (glob css/md),
 * dlatego wszystko jest zawężone do .md-public.
 */

.md-public {
	--pf-primary: #2152FF;
	--pf-primary-hover: #1a41cc;
	--pf-primary-active: #173aba;
	--pf-primary-soft: #e8eeff;
	--pf-primary-ring: rgba(33, 82, 255, .18);
	--pf-text: #344767;
	--pf-muted: #67748e;
	--pf-subtle: #7b809a;
	--pf-border: #e5e7eb;
	--pf-input-border: #d2d6da;
	--pf-canvas: #f0f2f5;
	--pf-success: #1e7e34;
	--pf-success-soft: #e7f5ea;
	--pf-danger: #c62828;
	--pf-danger-soft: #fdecea;
	--pf-warning: #9a6200;
	--pf-warning-soft: #fff5e0;
	--plan-color: #2152FF;
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background-color: var(--pf-canvas);
	color: var(--pf-text);
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.55;
	letter-spacing: normal;
	-webkit-font-smoothing: antialiased;
}

.md-public a { color: var(--pf-primary); }
.md-public a:hover { color: var(--pf-primary-hover); }

.md-public .pf-ico {
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	vertical-align: -0.25em;
}

/* Pasek górny z nazwą firmy */
.md-public .pf-topbar {
	background-color: #fff;
	border-bottom: 1px solid var(--pf-border);
}
.md-public .pf-topbar-inner {
	max-width: 892px;
	margin: 0 auto;
	padding: .875rem 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.md-public .pf-brand {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 0;
}
.md-public .pf-brand-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: .625rem;
	background-color: var(--pf-primary-soft);
	color: var(--pf-primary);
	flex-shrink: 0;
}
.md-public .pf-brand-mark .pf-ico { width: 1.375rem; height: 1.375rem; }
.md-public .pf-brand-name {
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--pf-text);
	overflow-wrap: anywhere;
}
.md-public .pf-brand-caption {
	font-size: .8125rem;
	color: var(--pf-subtle);
	line-height: 1.3;
}
.md-public .pf-brand-logo {
	height: 2rem;
	width: auto;
	display: block;
}

/* Kolumna treści */
.md-public .pf-main {
	flex: 1 0 auto;
	width: 100%;
	max-width: 892px;
	margin: 0 auto;
	padding: 2rem 1rem 1.5rem;
}
.md-public .pf-hero { margin-bottom: 1.5rem; }
.md-public .pf-title {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--pf-text);
	margin: 0 0 .5rem;
}
.md-public .pf-lead {
	font-size: .9375rem;
	color: var(--pf-muted);
	margin: 0;
	max-width: 44rem;
}

/* Karty-sekcje */
.md-public .pf-card {
	background-color: #fff;
	border: 1px solid var(--pf-border);
	border-radius: .75rem;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
	margin-bottom: 1.25rem;
}
.md-public .pf-card > .card-header {
	background: transparent;
	border-bottom: 0;
	padding: 1.25rem 1.5rem 0;
}
.md-public .pf-card > .card-body { padding: 1.25rem 1.5rem 1.5rem; }
.md-public .pf-card > .card-header.pf-card-header-solo { padding-bottom: 1.25rem; }
.md-public .pf-card-title {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--pf-text);
	margin: 0;
}
.md-public .pf-card-title .pf-ico { color: var(--pf-primary); }
.md-public .pf-card-subtitle {
	font-size: .875rem;
	color: var(--pf-muted);
	margin: .25rem 0 0;
}

/* Pola formularza */
.md-public .pf-field + .pf-field { margin-top: 1.125rem; }
.md-public .pf-main .form-label,
.md-public .pf-label {
	display: block;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pf-text);
	margin: 0 0 .375rem;
}
.md-public .pf-req {
	color: var(--pf-danger);
	margin-left: .125rem;
	font-weight: 700;
}
.md-public .pf-optional {
	font-weight: 400;
	color: var(--pf-subtle);
	font-size: .8125rem;
	margin-left: .25rem;
}
.md-public .pf-main .form-control,
.md-public .pf-main .form-select {
	display: block;
	width: 100%;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--pf-text);
	background-color: #fff;
	border: 1px solid var(--pf-input-border);
	border-radius: .5rem;
	padding: .625rem .875rem;
	min-height: 2.75rem;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.md-public .pf-main .form-select {
	padding-right: 2.5rem;
	background-position: right .875rem center;
	appearance: none;
}
.md-public .pf-main textarea.form-control { min-height: 8.5rem; resize: vertical; }
.md-public .pf-main .form-control:focus,
.md-public .pf-main .form-select:focus {
	outline: 0;
	border-color: var(--pf-primary);
	box-shadow: 0 0 0 3px var(--pf-primary-ring);
}
.md-public .pf-main .form-control.is-invalid,
.md-public .pf-main .form-select.is-invalid {
	border-color: var(--pf-danger);
	background-image: none;
}
.md-public .pf-hint {
	font-size: .8125rem;
	color: var(--pf-subtle);
	margin-top: .375rem;
}
.md-public .pf-error {
	display: flex;
	align-items: flex-start;
	gap: .375rem;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--pf-danger);
	margin-top: .375rem;
}
.md-public .pf-error .pf-ico { width: 1rem; height: 1rem; margin-top: .125rem; }
.md-public .pf-legend-req {
	font-size: .8125rem;
	color: var(--pf-subtle);
	margin: 0 0 1rem;
}

/* Wybór jednej/wielu opcji jako czytelne kafelki */
.md-public .pf-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .625rem;
}
.md-public .pf-choices-inline {
	display: flex;
	flex-wrap: wrap;
	gap: .625rem;
}
.md-public .pf-choices-stack {
	display: grid;
	grid-template-columns: 1fr;
	gap: .625rem;
}
.md-public .pf-choice {
	display: flex;
	align-items: flex-start;
	gap: .625rem;
	margin: 0;
	padding: .75rem .875rem;
	border: 1px solid var(--pf-input-border);
	border-radius: .5rem;
	background-color: #fff;
	font-size: .9375rem;
	color: var(--pf-text);
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}
.md-public .pf-choice:hover { border-color: var(--pf-primary); }
.md-public .pf-choice:has(input:checked) {
	border-color: var(--pf-primary);
	background-color: var(--pf-primary-soft);
}
.md-public .pf-choice:has(input:focus-visible) { box-shadow: 0 0 0 3px var(--pf-primary-ring); }
.md-public .pf-check-input {
	position: static !important;
	appearance: auto;
	-webkit-appearance: auto;
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	margin: .1875rem 0 0;
	accent-color: var(--pf-primary);
	cursor: pointer;
	opacity: 1;
	float: none;
}

/* Zgoda / klauzula */
.md-public .pf-consent {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: 1rem;
	border-radius: .5rem;
	background-color: #f8f9fa;
	border: 1px solid var(--pf-border);
	font-size: .875rem;
	color: var(--pf-text);
	line-height: 1.55;
}
.md-public .pf-consent label { margin: 0; cursor: pointer; font-weight: 400; font-size: inherit; color: var(--pf-text); }

/* Proste zabezpieczenie antyspamowe (suma a+b) */
.md-public .pf-captcha {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem .75rem;
}
.md-public .pf-captcha-question {
	font-size: .9375rem;
	color: var(--pf-text);
	white-space: nowrap;
}
.md-public .pf-captcha-question strong { font-variant-numeric: tabular-nums; }
.md-public .pf-main .pf-captcha .form-control { width: 6.5rem; text-align: center; }

/* Stopka formularza z przyciskiem */
.md-public .pf-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
}
.md-public .pf-actions-note {
	font-size: .8125rem;
	color: var(--pf-subtle);
	margin: 0;
	flex: 1 1 16rem;
}
.md-public .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	font-weight: 600;
	font-size: .9375rem;
	text-transform: none;
	letter-spacing: normal;
	border-radius: .5rem;
	padding: .75rem 1.375rem;
	margin: 0;
	box-shadow: none;
}
.md-public .btn .pf-ico { width: 1.125rem; height: 1.125rem; }
.md-public .btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--pf-primary);
	--bs-btn-border-color: var(--pf-primary);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--pf-primary-hover);
	--bs-btn-hover-border-color: var(--pf-primary-hover);
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--pf-primary-active);
	--bs-btn-active-border-color: var(--pf-primary-active);
	--bs-btn-focus-shadow-rgb: 33, 82, 255;
	color: #fff;
	background-color: var(--pf-primary);
	border: 1px solid var(--pf-primary);
	background-image: none;
}
.md-public .btn-primary:hover,
.md-public .btn-primary:focus { color: #fff; background-color: var(--pf-primary-hover); border-color: var(--pf-primary-hover); }
.md-public .btn-outline-secondary {
	color: var(--pf-text);
	background-color: #fff;
	border: 1px solid var(--pf-input-border);
}
.md-public .btn-outline-secondary:hover { color: var(--pf-text); background-color: #f8f9fa; border-color: #b9bec5; }

/* Komunikaty (karta z ikoną) */
.md-public .pf-result {
	text-align: center;
	padding: 2.5rem 1.5rem;
}
.md-public .pf-result-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	margin-bottom: 1rem;
	background-color: var(--pf-success-soft);
	color: var(--pf-success);
}
.md-public .pf-result-icon .pf-ico { width: 2.25rem; height: 2.25rem; }
.md-public .pf-result-danger .pf-result-icon { background-color: var(--pf-danger-soft); color: var(--pf-danger); }
.md-public .pf-result-warning .pf-result-icon { background-color: var(--pf-warning-soft); color: var(--pf-warning); }
.md-public .pf-result-info .pf-result-icon { background-color: var(--pf-primary-soft); color: var(--pf-primary); }
.md-public .pf-result-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--pf-text);
	margin: 0 0 .5rem;
}
.md-public .pf-result-text {
	font-size: .9375rem;
	color: var(--pf-muted);
	margin: 0 auto;
	max-width: 36rem;
}
.md-public .pf-result-text + .pf-result-text { margin-top: .5rem; }
.md-public .pf-result-actions {
	margin-top: 1.5rem;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: .75rem;
}

/* Ramka informacyjna w treści karty */
.md-public .pf-note {
	display: flex;
	align-items: flex-start;
	gap: .625rem;
	padding: .875rem 1rem;
	border-radius: .5rem;
	background-color: var(--pf-primary-soft);
	color: var(--pf-text);
	font-size: .875rem;
	line-height: 1.55;
}
.md-public .pf-note > .pf-ico { color: var(--pf-primary); margin-top: .0625rem; }
.md-public .pf-note-warning { background-color: var(--pf-warning-soft); }
.md-public .pf-note-warning > .pf-ico { color: var(--pf-warning); }
.md-public .pf-note-danger { background-color: var(--pf-danger-soft); }
.md-public .pf-note-danger > .pf-ico { color: var(--pf-danger); }

/* Lista danych kontaktowych (inne kanały zgłoszenia) */
.md-public .pf-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}
.md-public .pf-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: .625rem;
	font-size: .9375rem;
}
.md-public .pf-contact-list .pf-ico { color: var(--pf-subtle); margin-top: .125rem; }
.md-public .pf-contact-label { color: var(--pf-subtle); margin-right: .25rem; }

/* Linki do dokumentów */
.md-public .pf-doc-link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: .9375rem;
	font-weight: 500;
	text-decoration: none;
}
.md-public .pf-doc-link:hover { text-decoration: underline; }

/* Stopka strony */
.md-public .pf-footer {
	flex-shrink: 0;
	width: calc(100% - 2rem);
	max-width: 860px;
	margin: 0 auto;
	padding: 1.25rem 0 2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .75rem;
	font-size: .8125rem;
	color: var(--pf-subtle);
	border-top: 1px solid #dde1e6;
}
.md-public .pf-footer p { margin: 0; font-size: inherit; color: inherit; }
.md-public .pf-footer-logos {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.md-public .pf-footer-logos img {
	height: 1.25rem;
	width: auto;
	display: block;
	opacity: .85;
}

/* e-Egzamin AML */
.md-public .pf-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .25rem .75rem;
}
.md-public .pf-price-label { font-size: .875rem; color: var(--pf-muted); width: 100%; }
.md-public .pf-price-value { font-size: 1.5rem; font-weight: 700; color: var(--pf-text); }
.md-public .pf-price-gross { font-size: .875rem; color: var(--pf-subtle); }
.md-public .pf-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .75rem;
}
.md-public .pf-steps li {
	display: flex;
	align-items: center;
	gap: .625rem;
	font-size: .875rem;
	color: var(--pf-text);
	padding: .75rem .875rem;
	border-radius: .5rem;
	background-color: #f8f9fa;
	border: 1px solid var(--pf-border);
}
.md-public .pf-steps .pf-ico { color: var(--pf-primary); }
.md-public .pf-video {
	position: relative;
	padding-top: 56.25%;
	border-radius: .5rem;
	overflow: hidden;
	background-color: #0f172a;
}
.md-public .pf-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.md-public .pf-question-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .75rem;
	margin-bottom: 1rem;
}
.md-public .pf-question-no {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pf-muted);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.md-public .pf-progress {
	height: .375rem;
	border-radius: 1rem;
	background-color: #e9ecef;
	overflow: hidden;
	margin-bottom: 1.25rem;
}
.md-public .pf-progress-bar {
	display: block;
	height: 100%;
	background-color: var(--pf-primary);
	border-radius: 1rem;
}
.md-public .pf-timer {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	padding: .375rem .75rem;
	border-radius: 2rem;
	background-color: var(--pf-warning-soft);
	color: var(--pf-warning);
	font-size: .875rem;
	font-weight: 600;
}
.md-public .pf-timer #time { font-variant-numeric: tabular-nums; }
.md-public .pf-question-text {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--pf-text);
	margin: 0 0 1rem;
}
.md-public .pf-score {
	font-size: 2.75rem;
	font-weight: 700;
	line-height: 1;
	color: var(--pf-text);
	margin: .25rem 0 .5rem;
}
.md-public .pf-answer-item + .pf-answer-item {
	border-top: 1px solid var(--pf-border);
	margin-top: 1rem;
	padding-top: 1rem;
}
.md-public .pf-answer-head {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .375rem;
	font-weight: 600;
	font-size: .9375rem;
}
.md-public .pf-badge {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	padding: .125rem .5rem;
	border-radius: 1rem;
	font-size: .75rem;
	font-weight: 700;
}
.md-public .pf-badge-ok { background-color: var(--pf-success-soft); color: var(--pf-success); }
.md-public .pf-badge-bad { background-color: var(--pf-danger-soft); color: var(--pf-danger); }
.md-public .pf-answer-q { margin: 0 0 .5rem; font-size: .9375rem; }
.md-public .pf-answer-options {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .25rem;
}
.md-public .pf-answer-options li {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	font-size: .875rem;
}
.md-public .pf-answer-options .pf-ico { width: 1.125rem; height: 1.125rem; color: var(--pf-subtle); }
.md-public .pf-answer-correct { color: var(--pf-success); }
.md-public .pf-answer-wrong { color: var(--pf-danger); text-decoration: line-through; opacity: .75; }
.md-public .pf-link-btn {
	background: none;
	border: 0;
	padding: 0;
	color: var(--pf-primary);
	font-weight: 600;
	font-size: .875rem;
	cursor: pointer;
	text-decoration: none;
}

.md-public .pf-divider {
	border: 0;
	border-top: 1px solid var(--pf-border);
	margin: 1.25rem 0;
	opacity: 1;
}

/* Telefon: jedna kolumna, pełnej szerokości przycisk */
@media (max-width: 575.98px) {
	.md-public .pf-main { padding: 1.25rem .75rem 1rem; }
	.md-public .pf-topbar-inner { padding: .75rem; }
	.md-public .pf-title { font-size: 1.25rem; }
	.md-public .pf-card > .card-header { padding: 1rem 1rem 0; }
	.md-public .pf-card > .card-header.pf-card-header-solo { padding-bottom: 1rem; }
	.md-public .pf-card > .card-body { padding: 1rem 1rem 1.25rem; }
	.md-public .pf-choices,
	.md-public .pf-steps { grid-template-columns: 1fr; }
	.md-public .pf-actions { flex-direction: column-reverse; align-items: stretch; }
	.md-public .pf-actions .btn { width: 100%; }
	.md-public .pf-actions-note { flex: none; }
	.md-public .pf-result { padding: 2rem 1rem; }
	.md-public .pf-footer { width: calc(100% - 1.5rem); padding: 1rem 0 1.5rem; }
}

img[src^="/branding/logo/"], img[src*="/branding/logo/"] { width: auto !important; max-width: 100%; max-height: 64px; object-fit: contain; }
