/**
 * Lost & Found Pets — front-end styles.
 *
 * Fully self-contained and scoped under `.lfp` so it stays readable on ANY
 * theme (light or dark). All colours are set explicitly — we never inherit the
 * theme's text colour, which previously caused white-on-white text.
 *
 * Brand colours are read from --lfp-brand / --lfp-accent. These are injected
 * inline from the admin settings; the values below are safe fallbacks.
 */

/* -------------------------------------------------------------------------
 * Design tokens (scoped to the plugin wrapper)
 * ---------------------------------------------------------------------- */
.lfp {
	--lfp-brand: #1f6feb;
	--lfp-brand-ink: #ffffff;
	--lfp-accent: #16a34a;
	--lfp-accent-ink: #ffffff;

	--lfp-bg: #ffffff;
	--lfp-surface: #ffffff;
	--lfp-surface-2: #f6f7f9;
	--lfp-fg: #14181f;
	--lfp-muted: #5b6472;
	--lfp-border: #e3e6ea;
	--lfp-ring: rgba(31, 111, 235, 0.35);

	--lfp-warning-bg: #fff7ed;
	--lfp-warning-fg: #9a3412;
	--lfp-warning-bd: #fed7aa;
	--lfp-success-bg: #ecfdf5;
	--lfp-success-fg: #065f46;
	--lfp-error-bg: #fef2f2;
	--lfp-error-fg: #991b1b;

	--lfp-radius: 14px;
	--lfp-radius-sm: 9px;
	--lfp-shadow: 0 1px 2px rgba(16, 24, 40, 0.06), 0 8px 24px rgba(16, 24, 40, 0.08);
	--lfp-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.08);

	color: var(--lfp-fg);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}

.lfp *,
.lfp *::before,
.lfp *::after {
	box-sizing: border-box;
}

/* Force readable text colours regardless of theme defaults. */
.lfp,
.lfp p,
.lfp li,
.lfp dt,
.lfp dd,
.lfp label,
.lfp legend,
.lfp h1,
.lfp h2,
.lfp h3,
.lfp h4 {
	color: var(--lfp-fg);
}

.lfp h1,
.lfp h2,
.lfp h3,
.lfp h4 {
	line-height: 1.25;
	margin: 0 0 0.5rem;
	font-weight: 700;
	text-wrap: balance;
}

.lfp h2 { font-size: clamp(1.35rem, 1.1rem + 1.2vw, 1.85rem); }
.lfp h3 { font-size: 1.2rem; }
.lfp a { color: var(--lfp-brand); }

.lfp-muted { color: var(--lfp-muted); }

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Honeypot: visually hidden but not display:none (so bots still fill it). */
.lfp-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

/* -------------------------------------------------------------------------
 * Buttons
 * ---------------------------------------------------------------------- */
.lfp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.7rem 1.25rem;
	border-radius: var(--lfp-radius-sm);
	border: 1px solid transparent;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.05s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
	min-height: 44px; /* comfortable tap target */
}

.lfp-btn:hover { box-shadow: var(--lfp-shadow-sm); }
.lfp-btn:active { transform: translateY(1px); }
.lfp-btn:focus-visible { outline: 3px solid var(--lfp-ring); outline-offset: 2px; }

.lfp-btn--primary { background: var(--lfp-brand); color: var(--lfp-brand-ink); }
.lfp-btn--primary:hover { filter: brightness(0.95); }

.lfp-btn--accent { background: var(--lfp-accent); color: var(--lfp-accent-ink); }
.lfp-btn--accent:hover { filter: brightness(0.95); }

.lfp-btn--ghost {
	background: var(--lfp-surface);
	border-color: var(--lfp-border);
	color: var(--lfp-fg);
}
.lfp-btn--ghost:hover { background: var(--lfp-surface-2); }

.lfp-btn--sm { padding: 0.45rem 0.8rem; min-height: 38px; font-size: 0.9rem; }
.lfp-btn[disabled] { opacity: 0.6; cursor: not-allowed; }

/* -------------------------------------------------------------------------
 * Badges
 * ---------------------------------------------------------------------- */
.lfp-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: #fff;
	background: var(--lfp-brand);
	white-space: nowrap;
}
.lfp-badge.is-lost,
.lfp-badge.is-missing { background: #dc2626; }
.lfp-badge.is-found,
.lfp-badge.is-reunited { background: var(--lfp-accent); }
.lfp-badge.is-sighting { background: #d97706; }
.lfp-badge.is-archived,
.lfp-badge.is-expired,
.lfp-badge.is-draft { background: #6b7280; }
/* "New" badge — highlights reports added in the last 24 hours. */
.lfp-badge.is-new {
	background: #dc2626;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
/* Reunited / found badge — extra clarity that the pet is safely home. */
.lfp-badge__icon { flex-shrink: 0; }
.lfp-badge--resolved {
	background: #15803d;
	color: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* -------------------------------------------------------------------------
 * Card grid (listings)
 * ---------------------------------------------------------------------- */
.lfp-grid-wrap {
	max-width: var(--lfp-grid-max-width, none);
}
.lfp-grid-wrap__heading { margin-bottom: 1rem; }

.lfp-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 560px) {
	.lfp-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
	.lfp-cards { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
}
.lfp-grid-wrap--custom .lfp-cards:not(.lfp-cards--slider) {
	grid-template-columns: repeat(var(--lfp-grid-columns, 3), minmax(0, 1fr));
}
@media (max-width: 559px) {
	.lfp-grid-wrap--custom .lfp-cards:not(.lfp-cards--slider) {
		grid-template-columns: 1fr;
	}
}

.lfp-card {
	background: var(--lfp-surface);
	color: var(--lfp-fg);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	overflow: hidden;
	box-shadow: var(--lfp-shadow-sm);
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.lfp-card--report:hover {
	box-shadow: var(--lfp-shadow);
	transform: translateY(-2px);
}

.lfp-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}
.lfp-card__link:focus-visible {
	outline: 3px solid var(--lfp-ring);
	outline-offset: -3px;
}

.lfp-card__media { position: relative; }
.lfp-card__img {
	width: 100%;
	/* Use a proportional ratio so the image height tracks the card width.
	   A fixed height made wide cards crop the pet into a short letterbox. */
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	object-position: center;
	display: block;
	background: var(--lfp-surface-2);
}
.lfp-card__img--empty {
	display: grid;
	place-items: center;
	background:
		repeating-linear-gradient(45deg, var(--lfp-surface-2), var(--lfp-surface-2) 12px, #eef0f3 12px, #eef0f3 24px);
}
.lfp-card__media .lfp-badge {
	position: absolute;
	top: 0.7rem;
	left: 0.7rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
.lfp-card__media .lfp-badge--new {
	left: auto;
	right: 0.7rem;
}

.lfp-card__body { padding: 1rem; display: flex; flex-direction: column; gap: 0.3rem; }
.lfp-card__title { font-size: 1.1rem; margin: 0; }
.lfp-card__meta { margin: 0; color: var(--lfp-muted); font-size: 0.92rem; }

/* Resolved (found / reunited) cards: subtle "safely home" tint. */
.lfp-card--resolved { border-color: rgba(21, 128, 61, 0.4); }
.lfp-card--resolved .lfp-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(21, 128, 61, 0.12);
	pointer-events: none;
}

/* Compact grid (e.g. "Recently found pets") — smaller cards so resolved
   reports don't dominate the page. More per row, tighter imagery + text. */
.lfp-cards--compact {
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
}
@media (min-width: 560px) {
	.lfp-cards--compact { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 960px) {
	.lfp-cards--compact { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
}
.lfp-cards--compact .lfp-card__img { aspect-ratio: 1 / 1; }
.lfp-cards--compact .lfp-card__body { padding: 0.6rem 0.7rem; gap: 0.15rem; }
.lfp-cards--compact .lfp-card__title { font-size: 0.92rem; line-height: 1.3; }
.lfp-cards--compact .lfp-card__meta { font-size: 0.8rem; }
.lfp-cards--compact .lfp-card__media .lfp-badge {
	top: 0.45rem;
	left: 0.45rem;
	padding: 0.15rem 0.5rem;
	font-size: 0.68rem;
}

/* Empty state */
.lfp-empty {
	border: 1px dashed var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface-2);
	color: var(--lfp-muted);
	padding: 2rem 1rem;
	text-align: center;
}
.lfp-empty p { margin: 0; color: var(--lfp-muted); }

/* -------------------------------------------------------------------------
 * Sliding gallery (used by the "Recent reports" shortcode)
 * ---------------------------------------------------------------------- */
.lfp-grid-wrap--slider .lfp-grid-wrap__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}
.lfp-grid-wrap--slider .lfp-grid-wrap__heading { margin: 0; }

.lfp-slider__nav { display: flex; gap: 0.5rem; flex: 0 0 auto; }
.lfp-slider__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	border: 1px solid var(--lfp-border);
	background: var(--lfp-surface);
	color: var(--lfp-fg);
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}
.lfp-slider__btn:hover { background: var(--lfp-surface-2); box-shadow: var(--lfp-shadow-sm); }
.lfp-slider__btn:focus-visible { outline: 3px solid var(--lfp-ring); outline-offset: 2px; }
.lfp-slider__btn[disabled] { opacity: 0.35; cursor: default; }

/* The track: a single horizontal scroller with snap points, replacing the
 * multi-row grid. Override the grid display rules from .lfp-cards. */
.lfp-cards--slider {
	display: flex;
	grid-template-columns: none;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	padding: 0.25rem 0.25rem 1rem;
	margin: 0 -0.25rem;
	scrollbar-width: thin;
}
.lfp-cards--slider::-webkit-scrollbar { height: 8px; }
.lfp-cards--slider::-webkit-scrollbar-thumb { background: var(--lfp-border); border-radius: 999px; }
.lfp-cards--slider .lfp-card {
	flex: 0 0 auto;
	width: min(78%, calc((100% - ((var(--lfp-slider-visible, 1) - 1) * 1rem)) / var(--lfp-slider-visible, 1)));
	max-width: 300px;
	scroll-snap-align: start;
}
@media (min-width: 560px) {
	.lfp-cards--slider .lfp-card {
		width: min(46%, calc((100% - ((var(--lfp-slider-visible, 2) - 1) * 1rem)) / var(--lfp-slider-visible, 2)));
	}
}
@media (min-width: 960px) {
	.lfp-cards--slider .lfp-card {
		width: min(30%, calc((100% - ((var(--lfp-slider-visible, 3) - 1) * 1rem)) / var(--lfp-slider-visible, 3)));
	}
}
.lfp-grid-wrap--custom .lfp-cards--slider .lfp-card {
	max-width: none;
}

/* -------------------------------------------------------------------------
 * Forms (shared)
 * ---------------------------------------------------------------------- */
.lfp-form-wrap,
.lfp-form { width: 100%; }

.lfp-form {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.lfp-form label {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	font-weight: 600;
	font-size: 0.95rem;
}

.lfp-form input[type="text"],
.lfp-form input[type="email"],
.lfp-form input[type="tel"],
.lfp-form input[type="password"],
.lfp-form input[type="search"],
.lfp-form input[type="date"],
.lfp-form input[type="time"],
.lfp-form input[type="number"],
.lfp-form select,
.lfp-form textarea {
	width: 100%;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-surface);
	color: var(--lfp-fg);
	font: inherit;
	font-weight: 400;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	min-height: 44px;
}
.lfp-form textarea { min-height: 110px; resize: vertical; }

.lfp-form input::placeholder,
.lfp-form textarea::placeholder { color: var(--lfp-muted); opacity: 1; }

.lfp-form input:focus,
.lfp-form select:focus,
.lfp-form textarea:focus {
	outline: none;
	border-color: var(--lfp-brand);
	box-shadow: 0 0 0 3px var(--lfp-ring);
}

/* Two-column responsive field grid */
.lfp-form .lfp-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 640px) {
	.lfp-form .lfp-grid { grid-template-columns: repeat(2, 1fr); }
	.lfp-form .lfp-grid .lfp-col-2 { grid-column: 1 / -1; }
}

/* Consent checkboxes.
 * Scoped under .lfp and forced to flex so the checkbox sits inline, to the
 * left of its label text, even when a theme sets `label { display: block }`. */
.lfp-consents { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.25rem; }
.lfp .lfp-consent,
.lfp-consent {
	display: flex;
	flex-direction: row;
	align-items: flex-start !important;
	gap: 0.65rem;
	font-weight: 500;
	font-size: 0.92rem;
	line-height: 1.45;
	padding: 0.8rem 0.9rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	cursor: pointer;
}
.lfp .lfp-consent input[type="checkbox"],
.lfp-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	accent-color: var(--lfp-brand);
}
.lfp .lfp-consent span,
.lfp-consent span { flex: 1 1 auto; color: var(--lfp-fg); }
.lfp-consent:has(input:checked) { border-color: var(--lfp-brand); background: color-mix(in srgb, var(--lfp-brand) 7%, var(--lfp-surface)); }

/* Field label wrapper used by the submission form */
.lfp-field { display: flex; flex-direction: column; gap: 0.35rem; font-weight: 600; font-size: 0.95rem; }
.lfp-field__label { font-weight: 600; }
.lfp-input-action {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.5rem;
	align-items: center;
}
.lfp-input-action > input { width: 100%; min-width: 0; }
.lfp-input-action > .lfp-btn { white-space: nowrap; }
@media (max-width: 420px) {
	.lfp-input-action { grid-template-columns: 1fr; }
	.lfp-input-action > .lfp-btn { width: 100%; }
}


/* Grouped marketing / notification preferences inside a form */
.lfp-prefs-group {
	margin: 0;
	padding: 1rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface-2);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.lfp-prefs-group > legend,
.lfp-prefs-group > .lfp-prefs-group__title {
	font-size: 1rem;
	font-weight: 700;
	padding: 0;
	margin: 0 0 0.25rem;
}
.lfp-prefs-group__hint { margin: 0; font-size: 0.85rem; color: var(--lfp-muted); }

/* Invalid field highlight (set by step validation) */
.lfp-invalid,
.lfp-form input.lfp-invalid,
.lfp-form select.lfp-invalid,
.lfp-form textarea.lfp-invalid {
	border-color: #dc2626 !important;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.18) !important;
}

/* Copy button feedback */
.lfp-copied { background: var(--lfp-success-bg) !important; color: var(--lfp-success-fg) !important; border-color: var(--lfp-success-fg) !important; }

/* AJAX inline message under sighting/follow forms */
.lfp-message { margin: 0; font-size: 0.92rem; font-weight: 600; }
.lfp-message:empty { display: none; }
.lfp-message--ok { color: var(--lfp-success-fg); }
.lfp-message--error { color: var(--lfp-error-fg); }

/* Reader "follow this pet" panel on the single page */
.lfp-follow {
	margin-top: 0.5rem;
	padding: 1.25rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
}
.lfp-follow h3 { margin-top: 0; }
.lfp-follow__row { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-end; }
.lfp-follow__row .lfp-field { flex: 1 1 220px; }
@media (max-width: 560px) {
	.lfp-follow__row .lfp-btn { width: 100%; }
}

/* File upload */
.lfp-upload {
	display: block;
	border: 2px dashed var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface-2);
	padding: 1.5rem 1rem;
	text-align: center;
	font-weight: 600;
	color: var(--lfp-fg);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.lfp-upload:hover { border-color: var(--lfp-brand); }
.lfp-upload input[type="file"] { margin-top: 0.75rem; width: 100%; }

.lfp-previews {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
	gap: 0.6rem;
	margin-top: 0.75rem;
}
.lfp-previews img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--lfp-radius-sm);
	border: 1px solid var(--lfp-border);
}

/* -------------------------------------------------------------------------
 * Panel card (form container header)
 * ---------------------------------------------------------------------- */
.lfp-card--panel {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
@media (min-width: 640px) {
	.lfp-card--panel { padding: 1.75rem; }
}
.lfp-panel__head { display: flex; flex-direction: column; gap: 0.35rem; }
.lfp-panel__title { margin: 0; }
.lfp-panel__sub { margin: 0; color: var(--lfp-muted); font-size: 0.95rem; }

/* -------------------------------------------------------------------------
 * Multi-step submission form
 * ---------------------------------------------------------------------- */
.lfp-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	list-style: none;
	margin: 0;
	padding: 0 0 0.25rem;
	overflow: hidden;
}
.lfp-steps::-webkit-scrollbar { height: 4px; }
.lfp-steps::-webkit-scrollbar-thumb { background: var(--lfp-border); border-radius: 999px; }
.lfp-steps__item {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex: 0 0 auto;
	padding: 0.4rem 0.75rem 0.4rem 0.4rem;
	border-radius: 999px;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	color: var(--lfp-muted);
	font-size: 0.82rem;
	font-weight: 600;
	white-space: nowrap;
	cursor: default;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.lfp-steps__num {
	display: grid;
	place-items: center;
	width: 1.4rem;
	height: 1.4rem;
	flex: 0 0 auto;
	border-radius: 999px;
	background: var(--lfp-surface);
	border: 1px solid var(--lfp-border);
	color: var(--lfp-muted);
	font-size: 0.78rem;
}
/* The rail scrolls horizontally, so labels can always show. */
.lfp-steps__label { display: inline; }
.lfp-steps__item.is-active {
	background: var(--lfp-brand);
	border-color: var(--lfp-brand);
	color: var(--lfp-brand-ink);
}
.lfp-steps__item.is-active .lfp-steps__num {
	background: rgba(255, 255, 255, 0.25);
	border-color: transparent;
	color: var(--lfp-brand-ink);
}
.lfp-steps__item.is-done {
	background: var(--lfp-success-bg);
	border-color: var(--lfp-success-bg);
	color: var(--lfp-success-fg);
	cursor: pointer;
}
.lfp-steps__item.is-done .lfp-steps__num {
	background: var(--lfp-success-fg);
	border-color: transparent;
	color: #fff;
}

.lfp-step-count {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lfp-muted);
}

/* PROGRESSIVE ENHANCEMENT — the form must NEVER render blank.
 *
 * By default (JavaScript disabled, blocked, still loading, or failing to run)
 * every step is shown stacked, so the entire form is visible and submittable
 * as one long page. The step rail and progress counter are hidden because they
 * only make sense in wizard mode.
 *
 * Only once the wizard script actually executes does it add `.lfp-has-js` to
 * the <form>, at which point we collapse to a single visible step and reveal
 * the rail / Back / Continue controls. Because the class is added FROM the
 * script (not inline), a script that fails to load leaves the full form
 * visible instead of an empty shell. */
.lfp-step { display: block; }
.lfp-step + .lfp-step {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px dashed var(--lfp-border);
}

.lfp-steps,
.lfp-step-count { display: none; }

.lfp-has-js .lfp-steps { display: flex; }
.lfp-has-js .lfp-step-count { display: block; }
.lfp-has-js .lfp-step {
	display: none;
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.lfp-has-js .lfp-step.is-active { display: block; animation: lfp-fade 0.25s ease; }
@keyframes lfp-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.lfp-step fieldset,
.lfp-fieldset { border: 0; margin: 0; padding: 0; }
.lfp-step legend,
.lfp-fieldset legend {
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	padding: 0;
	color: var(--lfp-fg);
}

/* Radio cards (report type chooser) */
.lfp-radio-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
}
@media (min-width: 560px) {
	.lfp-radio-cards { grid-template-columns: repeat(3, 1fr); }
}
.lfp-radio-cards label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 1rem;
	border: 2px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface);
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.lfp-radio-cards label:hover { border-color: var(--lfp-brand); }
.lfp-radio-cards input[type="radio"] { width: 1.2rem; height: 1.2rem; accent-color: var(--lfp-brand); }
.lfp-radio-cards input[type="radio"]:checked + span { color: var(--lfp-brand); }
.lfp-radio-cards label:has(input:checked) {
	border-color: var(--lfp-brand);
	background: color-mix(in srgb, var(--lfp-brand) 8%, #fff);
}

/* Step navigation */
.lfp-form-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	margin-top: 0.5rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--lfp-border);
}
.lfp-form-nav [data-lfp-next],
.lfp-form-nav [data-lfp-submit] { margin-left: auto; }

/* No-JS fallback: the wizard Back/Continue buttons are useless without the
 * script, so hide them and always expose the real Submit button. */
.lfp-form-nav [data-lfp-prev],
.lfp-form-nav [data-lfp-next] { display: none; }
.lfp-form-nav [data-lfp-submit] { display: inline-flex; }

/* JS (wizard) mode: the script manages each button's visibility via the
 * [hidden] attribute; the !important rule guarantees it always wins. */
.lfp-has-js .lfp-form-nav [data-lfp-prev],
.lfp-has-js .lfp-form-nav [data-lfp-next],
.lfp-has-js .lfp-form-nav [data-lfp-submit] { display: inline-flex; }
.lfp-has-js .lfp-form-nav [hidden] { display: none !important; }

@media (max-width: 480px) {
	.lfp-form-nav {
		gap: 0.5rem;
		align-items: stretch;
	}
	.lfp-form-nav .lfp-btn { flex: 1 1 100%; justify-content: center; }
	.lfp-form-nav [data-lfp-next],
	.lfp-form-nav [data-lfp-submit] { order: 1; margin-left: 0; }
	.lfp-form-nav [data-lfp-prev] { order: 2; }
}

/* -------------------------------------------------------------------------
 * Card container used by auth gate (and reusable panels)
 * ---------------------------------------------------------------------- */
.lfp-authgate { display: grid; place-items: center; padding: 1rem 0; }
.lfp-authgate .lfp-card {
	width: 100%;
	max-width: 460px;
	padding: 1.75rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.lfp-authgate .lfp-card > p { color: var(--lfp-muted); margin: 0; }
.lfp-authgate__login { font-size: 0.92rem; color: var(--lfp-muted); text-align: center; margin: 0; }

/* -------------------------------------------------------------------------
 * Search
 * ---------------------------------------------------------------------- */
.lfp-search__form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
	padding: clamp(1rem, 2vw, 1.25rem);
	background: linear-gradient(180deg, color-mix(in srgb, var(--lfp-surface-2) 92%, white), var(--lfp-surface-2));
	border: 1px solid var(--lfp-border);
	border-radius: calc(var(--lfp-radius) + 4px);
	box-shadow: var(--lfp-shadow-sm);
	margin: 0 auto 1.75rem;
	max-width: 920px;
}
.lfp-search__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.lfp-search__label {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--lfp-muted);
	letter-spacing: 0.01em;
}
.lfp-search__form input,
.lfp-search__form select {
	width: 100%;
	padding: 0.78rem 0.85rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-surface);
	color: var(--lfp-fg);
	font: inherit;
	min-height: 48px;
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}
.lfp-search__form input:focus,
.lfp-search__form select:focus {
	outline: none;
	border-color: var(--lfp-brand);
	box-shadow: 0 0 0 3px var(--lfp-ring);
}
.lfp-search__submit {
	min-height: 48px;
	width: 100%;
	justify-content: center;
}
@media (min-width: 760px) {
	.lfp-search__form {
		grid-template-columns: minmax(260px, 2fr) minmax(150px, 1fr) minmax(150px, 1fr) auto;
		align-items: end;
	}
	.lfp-search__submit { width: auto; min-width: 116px; }
}

/* -------------------------------------------------------------------------
 * Resident dashboard
 * ---------------------------------------------------------------------- */
.lfp-dashboard { display: flex; flex-direction: column; gap: 2rem; }
.lfp-dashboard__header h2 { margin-bottom: 0.5rem; }

.lfp-report-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.lfp-report-list__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1rem;
	background: var(--lfp-surface);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	box-shadow: var(--lfp-shadow-sm);
}
.lfp-report-list__main { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; font-weight: 600; }
.lfp-report-list__main a { color: var(--lfp-fg); text-decoration: none; }
.lfp-report-list__main a:hover { color: var(--lfp-brand); text-decoration: underline; }
.lfp-report-list__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.lfp-dashboard__prefs form {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.25rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	max-width: 640px;
}
.lfp-dashboard__prefs .lfp-btn { align-self: flex-start; }

/* -------------------------------------------------------------------------
 * Alerts
 * ---------------------------------------------------------------------- */
.lfp-alert {
	padding: 0.85rem 1rem;
	border-radius: var(--lfp-radius-sm);
	border: 1px solid transparent;
	font-size: 0.95rem;
	margin: 0;
}
.lfp-alert--warning { background: var(--lfp-warning-bg); color: var(--lfp-warning-fg); border-color: var(--lfp-warning-bd); }
.lfp-alert--success { background: var(--lfp-success-bg); color: var(--lfp-success-fg); }
.lfp-alert--error { background: var(--lfp-error-bg); color: var(--lfp-error-fg); }

/* Notices (legacy class) */
.lfp-notice { padding: 0.85rem 1rem; border-radius: var(--lfp-radius-sm); margin-bottom: 1rem; }
.lfp-notice--success { background: var(--lfp-success-bg); color: var(--lfp-success-fg); }
.lfp-notice--error { background: var(--lfp-error-bg); color: var(--lfp-error-fg); }

/* -------------------------------------------------------------------------
 * Single pet page
 * ---------------------------------------------------------------------- */
.lfp-single {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 880px) {
	.lfp-single { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; }
}

.lfp-single__media { position: relative; }
.lfp-single__photo {
	width: 100%;
	border-radius: var(--lfp-radius);
	display: block;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--lfp-surface-2);
}
.lfp-single__photo--empty {
	background:
		repeating-linear-gradient(45deg, var(--lfp-surface-2), var(--lfp-surface-2) 14px, #eef0f3 14px, #eef0f3 28px);
}
.lfp-single__media .lfp-badge {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	font-size: 0.85rem;
	padding: 0.35rem 0.85rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.lfp-single__body { display: flex; flex-direction: column; gap: 1.25rem; }

/* Facts list */
.lfp-facts {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	overflow: hidden;
	background: var(--lfp-surface);
}
.lfp-facts__row {
	display: grid;
	grid-template-columns: 38% 1fr;
	gap: 0.5rem;
	padding: 0.7rem 1rem;
	border-bottom: 1px solid var(--lfp-border);
}
.lfp-facts__row:last-child { border-bottom: 0; }
.lfp-facts__row:nth-child(odd) { background: var(--lfp-surface-2); }
.lfp-facts dt { margin: 0; font-weight: 700; color: var(--lfp-muted); font-size: 0.9rem; }
.lfp-facts dd { margin: 0; color: var(--lfp-fg); }

.lfp-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.lfp-actions .lfp-btn { flex: 1 1 auto; }
@media (min-width: 560px) { .lfp-actions .lfp-btn { flex: 0 0 auto; } }

.lfp-contact-result {
	padding: 1rem;
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-success-bg);
	color: var(--lfp-success-fg);
	border: 1px solid #a7f3d0;
}

/* Share */
.lfp-share {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
}
.lfp-share__label {
	font-weight: 700;
	color: var(--lfp-fg);
	font-size: 0.95rem;
}
/* Responsive grid: auto-fits as many equal buttons per row as will fit,
   wrapping cleanly on narrow/mobile screens. */
.lfp-share__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.6rem;
}
.lfp-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.6rem 0.9rem;
	border-radius: var(--lfp-radius-sm);
	border: 1px solid transparent;
	background: var(--lfp-surface);
	color: #fff;
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.1;
	cursor: pointer;
	min-height: 44px;
	transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}
.lfp-share__btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
}
.lfp-share__btn:active { transform: translateY(0); box-shadow: none; }
.lfp-share__btn:focus-visible { outline: 2px solid var(--lfp-fg); outline-offset: 2px; }
.lfp-share__icon { flex: 0 0 auto; width: 18px; height: 18px; }
.lfp-share__text { white-space: nowrap; }

/* Brand colours — every network gets a solid, legible background. */
.lfp-share__btn--facebook { background: #1877f2; }
.lfp-share__btn--whatsapp { background: #25d366; }
.lfp-share__btn--twitter,
.lfp-share__btn--x { background: #000; }
.lfp-share__btn--messenger { background: #0084ff; }
.lfp-share__btn--email { background: #5b6470; }
.lfp-share__btn--nextdoor { background: #00b246; }
/* The copy-link button stays a neutral outline so it reads as a utility. */
.lfp-share__btn--copy {
	background: var(--lfp-surface);
	color: var(--lfp-fg);
	border-color: var(--lfp-border);
}
.lfp-share__btn--copy:hover { background: var(--lfp-surface-2); filter: none; }
.lfp-share__encourage {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--lfp-fg);
}

/* Paid reach upsell (Group 1 / Group 2) */
.lfp-upsell {
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface);
}
.lfp-upsell__title { margin: 0 0 0.25rem; font-size: 1.05rem; }
.lfp-upsell__lead { margin: 0 0 0.9rem; color: var(--lfp-muted); font-size: 0.92rem; }
.lfp-upsell__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0.75rem;
}
.lfp-upsell__option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-surface-2);
}
.lfp-upsell__info { display: flex; flex-direction: column; gap: 0.15rem; }
.lfp-upsell__name { font-weight: 700; }
.lfp-upsell__price { color: var(--lfp-muted); font-size: 0.9rem; }
.lfp-upsell__note { margin: 0.9rem 0 0; font-size: 0.8rem; color: var(--lfp-muted); }

.lfp-disclaimer {
	font-size: 0.85rem;
	color: var(--lfp-muted);
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	padding: 0.85rem 1rem;
	margin: 0;
}

.lfp-sighting {
	margin-top: 0.5rem;
	padding: 1.25rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
}
.lfp-sighting h3 { margin-top: 0; }

/* -------------------------------------------------------------------------
 * Maps
 * ---------------------------------------------------------------------- */
.lfp-map {
	width: 100%;
	border-radius: var(--lfp-radius);
	overflow: hidden;
	border: 1px solid var(--lfp-border);
	background: var(--lfp-surface-2);
}
.lfp-map--single { height: 280px; }
.lfp-map--full { height: min(70vh, 560px); }

/* Location picker (drop a pin on the submit form) */
.lfp-locpick { display: flex; flex-direction: column; gap: 0.6rem; }
.lfp-locpick__heading { font-size: 1rem; }
.lfp-locpick__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.5rem;
}
.lfp-locpick__search { position: relative; flex: 1 1 240px; min-width: 0; }
.lfp-form .lfp-locpick__search input { width: 100%; }
.lfp-locpick__results {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 30;
	margin: 0;
	padding: 0.25rem;
	list-style: none;
	background: var(--lfp-surface);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	box-shadow: var(--lfp-shadow);
	max-height: 240px;
	overflow-y: auto;
}
.lfp-locpick__result {
	padding: 0.55rem 0.6rem;
	border-radius: var(--lfp-radius-sm);
	font-size: 0.88rem;
	font-weight: 400;
	color: var(--lfp-fg);
	cursor: pointer;
	line-height: 1.35;
}
.lfp-locpick__result:hover,
.lfp-locpick__result:focus { background: var(--lfp-surface-2); }
.lfp-locpick__status {
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--lfp-muted);
	margin: 0;
}
.lfp-locpick__status--error { color: var(--lfp-error-fg); font-weight: 600; }
.lfp-locpick__map {
	height: 340px;
	cursor: crosshair;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
}
.lfp-locpick__details { margin-top: 0.4rem; }
@media (max-width: 540px) {
	.lfp-locpick__bar .lfp-btn { flex: 1 1 auto; }
	.lfp-locpick__map { height: 280px; }
}

/* "Last seen area" block on the single pet page */
.lfp-map-section { display: flex; flex-direction: column; gap: 0.5rem; }
.lfp-map-section__title { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--lfp-fg); }
.lfp-map-section__note { margin: 0; font-size: 0.85rem; color: var(--lfp-muted); }

.lfp-map-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1rem;
	padding: 0.6rem 0.9rem;
	margin-bottom: 0.75rem;
	background: var(--lfp-surface);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--lfp-fg);
}
.lfp-dot { width: 0.85rem; height: 0.85rem; border-radius: 999px; display: inline-block; margin-right: 0.1rem; }
.lfp-dot--red { background: #dc2626; }
.lfp-dot--amber { background: #d97706; }
.lfp-dot--green { background: var(--lfp-accent); }
.lfp-dot--blue { background: #2563eb; }

/* Rich map popup (lost/found ring areas) */
.lfp-mappop-wrap .leaflet-popup-content-wrapper {
	border-radius: var(--lfp-radius);
	padding: 0;
	overflow: hidden;
	box-shadow: var(--lfp-shadow);
}
.lfp-mappop-wrap .leaflet-popup-content { margin: 0; width: auto !important; }
.lfp-mappop { width: 240px; max-width: 100%; }
.lfp-mappop__img {
	display: block;
	width: 100%;
	height: 140px;
	object-fit: cover;
	background: var(--lfp-surface-2);
}
.lfp-mappop__body { padding: 0.75rem 0.85rem 0.85rem; }
.lfp-mappop__badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	margin-bottom: 0.4rem;
}
.lfp-mappop__badge--red { background: #dc2626; }
.lfp-mappop__badge--green { background: var(--lfp-accent); }
.lfp-mappop__badge--blue { background: #2563eb; }
.lfp-mappop__title {
	margin: 0 0 0.15rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--lfp-fg);
	line-height: 1.25;
}
.lfp-mappop__meta { margin: 0 0 0.5rem; font-size: 0.85rem; color: var(--lfp-muted); }
.lfp-mappop__area { margin: 0 0 0.6rem; font-size: 0.9rem; color: var(--lfp-fg); line-height: 1.35; }
.lfp-mappop__area-label {
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--lfp-muted);
	margin-bottom: 0.1rem;
}
.lfp-mappop__link {
	display: inline-block;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--lfp-brand);
	text-decoration: none;
}
.lfp-mappop__link:hover { text-decoration: underline; }

/* -------------------------------------------------------------------------
 * Sponsors
 * ---------------------------------------------------------------------- */
.lfp-sponsors { margin: 1.5rem 0; }
.lfp-sponsors__label {
	display: block;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--lfp-muted);
	margin-bottom: 0.6rem;
}
.lfp-sponsors__grid { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.lfp-sponsor {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	text-decoration: none;
	color: var(--lfp-fg);
	padding: 0.5rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-surface);
}
.lfp-sponsor__logo { max-height: 56px; width: auto; }

.lfp-advertise-wrap { width: 100%; }
.lfp-advertise { max-width: 760px; margin: 0 auto; }
.lfp-advertise__card { display: flex; flex-direction: column; gap: 1.25rem; }
.lfp-advertise__head { display: flex; flex-direction: column; gap: 0.4rem; }
.lfp-advertise--promo {
	text-align: center;
	padding: 1.5rem;
	background: var(--lfp-surface-2);
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius);
}

/* Required-field marker */
.lfp-req { color: #dc2626; font-weight: 700; }

/* Full-width button (used on the advertiser enquiry form) */
.lfp-btn--block { width: 100%; justify-content: center; }

/* -------------------------------------------------------------------------
 * Field labels, help text and tooltips (report form)
 * ---------------------------------------------------------------------- */
.lfp-label {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 600;
	font-size: 0.95rem;
	margin-bottom: 0.35rem;
}
.lfp-help { font-size: 0.85rem; color: var(--lfp-muted); margin: 0.15rem 0 0.6rem; line-height: 1.5; }
.lfp-help--muted { font-size: 0.8rem; }

/* Tooltip: an accessible "?" affordance. The hint shows on hover/focus and is
 * always present for screen readers via aria-label on the trigger. */
.lfp-tip {
	display: inline-flex;
	position: relative;
	align-items: center;
	justify-content: center;
	width: 1.15rem;
	height: 1.15rem;
	flex: 0 0 auto;
	border-radius: 999px;
	border: 1px solid var(--lfp-border);
	background: var(--lfp-surface-2);
	color: var(--lfp-muted);
	font-size: 0.72rem;
	font-weight: 700;
	cursor: help;
}
.lfp-tip__text {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: 240px;
	padding: 0.5rem 0.7rem;
	background: var(--lfp-fg);
	color: var(--lfp-surface);
	border-radius: var(--lfp-radius-sm);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
	box-shadow: var(--lfp-shadow);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease;
	z-index: 20;
	pointer-events: none;
}
.lfp-tip:hover .lfp-tip__text,
.lfp-tip:focus-visible .lfp-tip__text,
.lfp-tip:focus .lfp-tip__text { opacity: 1; visibility: visible; }
@media (max-width: 520px) {
	.lfp-tip__text { left: auto; right: 0; transform: none; }
}

/* -------------------------------------------------------------------------
 * Checkbox group (temperament / safety warnings)
 * ---------------------------------------------------------------------- */
.lfp-checkgroup {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5rem;
}
@media (min-width: 560px) {
	.lfp-checkgroup { grid-template-columns: repeat(2, 1fr); }
}
.lfp-checkitem {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: 0.65rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--lfp-border);
	border-radius: var(--lfp-radius-sm);
	background: var(--lfp-surface);
	font-size: 0.92rem;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.lfp-checkitem:hover { border-color: var(--lfp-brand); }
.lfp-checkitem input[type="checkbox"] {
	display: inline-block;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.1rem;
	accent-color: var(--lfp-brand);
	flex: 0 0 auto;
}
.lfp-checkitem span {
	display: inline-block !important;
	flex: 1 1 auto;
	line-height: 1.45;
}
.lfp-checkitem:has(input:checked) {
	border-color: var(--lfp-brand);
	background: color-mix(in srgb, var(--lfp-brand) 8%, var(--lfp-surface));
}

/* Contextual hint that swaps between Lost / Found wording */
.lfp-type-hint {
	font-size: 0.88rem;
	color: var(--lfp-muted);
	margin: 0.25rem 0 0;
}

/* Inline form (e.g. resend verification button inside an alert) */
.lfp-inline-form { margin: 0.6rem 0 0; }

/* Informational notice box (e.g. "you'll receive report emails" on submit) */
.lfp-notice-box {
	margin: 0.25rem 0 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--lfp-border);
	border-left: 4px solid var(--lfp-brand);
	border-radius: var(--lfp-radius-sm);
	background: color-mix(in srgb, var(--lfp-brand) 6%, var(--lfp-surface));
}
.lfp-notice-box p { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--lfp-fg); }

/* "What signing up means" explainer list inside the auth gate. */
.lfp-signup-points {
	margin: 0.5rem 0 0;
	padding-left: 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.lfp-signup-points li { font-size: 0.88rem; line-height: 1.5; color: var(--lfp-fg); }

/* Friendly empty state shown when no pets are currently missing. */
.lfp-map-empty {
	text-align: center;
	padding: 2.5rem 1.5rem;
	border: 1px dashed var(--lfp-border);
	border-radius: var(--lfp-radius);
	background: var(--lfp-surface-2);
}
.lfp-map-empty p { margin: 0; font-size: 1.05rem; color: var(--lfp-fg); }

/* -------------------------------------------------------------------------
 * Dark-theme friendliness: if the host page is dark, keep our surfaces light
 * so content is always legible. Users can override via brand settings.
 * ---------------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
	.lfp {
		--lfp-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 8px 24px rgba(0, 0, 0, 0.45);
	}
}

/* Robust custom pin for the report form location picker. This avoids relying
 * on Leaflet's default marker image assets, which can fail to resolve on some
 * WordPress installs/CDN/cache setups. */
.lfp-locpick-pin {
	background: transparent;
	border: 0;
}
.lfp-locpick-pin__dot {
	display: block;
	width: 26px;
	height: 26px;
	border-radius: 50% 50% 50% 0;
	background: var(--lfp-brand, #1f6feb);
	border: 3px solid #fff;
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.35);
	transform: rotate(-45deg);
	position: relative;
}
.lfp-locpick-pin__dot::after {
	content: '';
	position: absolute;
	inset: 6px;
	border-radius: 50%;
	background: #fff;
	opacity: 0.95;
}
.lfp-locpick__map.leaflet-container {
	min-height: 280px;
}

/* v2.5.2 map hardening: make every Leaflet surface visibly sized and interactive. */
.lfp-map.leaflet-container,
.lfp-locpick__map.leaflet-container {
	min-height: 280px;
	z-index: 1;
	touch-action: pan-x pan-y;
}
.lfp-locpick__map,
.lfp-map[data-lfp-location-picker] {
	min-height: 320px;
	position: relative;
}
.lfp .leaflet-control-zoom a {
	min-width: 34px;
	min-height: 34px;
	line-height: 34px;
	font-size: 20px;
}

.lfp-report-list__item.is-closed {
	background: color-mix(in srgb, var(--lfp-surface) 86%, #16a34a 14%);
	border-color: color-mix(in srgb, var(--lfp-border) 75%, #16a34a 25%);
}
.lfp-report-list__actions--disabled {
	align-items: center;
	color: var(--lfp-muted);
	font-size: 0.9rem;
}
.lfp-completed-note {
	display: inline-flex;
	align-items: center;
	min-height: 2.15rem;
	padding: 0 0.25rem;
}

.lfp-field__help { margin: 0.25rem 0 0.55rem; color: var(--lfp-muted); font-size: 0.9rem; line-height: 1.45; }


/* -------------------------------------------------------------------------
 * v2.5.8 UI refinements: softer report form panel and clearer blue steps
 * ---------------------------------------------------------------------- */
.lfp-form-wrap .lfp-card--panel,
.lfp-submit-success .lfp-card--panel {
	background: linear-gradient(180deg, color-mix(in srgb, var(--lfp-surface-2) 94%, #ffffff), var(--lfp-surface-2));
	border-color: var(--lfp-border);
	box-shadow: var(--lfp-shadow-sm);
}

.lfp-form-wrap .lfp-step input,
.lfp-form-wrap .lfp-step select,
.lfp-form-wrap .lfp-step textarea,
.lfp-form-wrap .lfp-upload,
.lfp-form-wrap .lfp-checkitem,
.lfp-form-wrap .lfp-radio-cards label {
	background: #ffffff;
}

.lfp-form-wrap .lfp-steps__item {
	background: color-mix(in srgb, var(--lfp-brand) 9%, #ffffff);
	border-color: color-mix(in srgb, var(--lfp-brand) 22%, var(--lfp-border));
	color: color-mix(in srgb, var(--lfp-brand) 75%, #111827);
}

.lfp-form-wrap .lfp-steps__num {
	background: #ffffff;
	border-color: color-mix(in srgb, var(--lfp-brand) 22%, var(--lfp-border));
	color: color-mix(in srgb, var(--lfp-brand) 75%, #111827);
}

.lfp-form-wrap .lfp-steps__item.is-active {
	background: var(--lfp-brand);
	border-color: var(--lfp-brand);
	color: var(--lfp-brand-ink);
}

.lfp-form-wrap .lfp-steps__item.is-active .lfp-steps__num {
	background: rgba(255,255,255,0.28);
	border-color: rgba(255,255,255,0.45);
	color: var(--lfp-brand-ink);
}

.lfp-form-wrap .lfp-steps__item.is-done {
	background: color-mix(in srgb, var(--lfp-brand) 14%, #ffffff);
	border-color: color-mix(in srgb, var(--lfp-brand) 35%, var(--lfp-border));
	color: color-mix(in srgb, var(--lfp-brand) 84%, #111827);
}

.lfp-form-wrap .lfp-steps__item.is-done .lfp-steps__num {
	background: var(--lfp-brand);
	border-color: var(--lfp-brand);
	color: var(--lfp-brand-ink);
}

.lfp-form-wrap .lfp-checkitem {
	min-height: 58px;
}

.lfp-form-wrap .lfp-checkitem input[type="checkbox"] {
	margin-top: 0.2rem;
}

.lfp-form-wrap .lfp-checkitem span {
	align-self: center;
}

.lfp-search__form {
	grid-template-columns: 1fr;
	align-items: stretch;
	max-width: 980px;
}

@media (min-width: 760px) {
	.lfp-search__form {
		grid-template-columns: minmax(280px, 2fr) minmax(160px, 1fr) minmax(190px, 1fr) auto;
	}
}

.lfp-search__submit {
	padding-left: 1.4rem;
	padding-right: 1.4rem;
}

/* v2.5.9: date/time quick actions and privacy note refinements */
.lfp-input-action {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.lfp-input-action > input {
	flex: 1 1 12rem;
	min-width: 10rem;
}
.lfp-input-action > .lfp-btn {
	flex: 0 0 auto;
}
.lfp-privacy-note {
	margin: 0.75rem 0 1rem;
}
.lfp-privacy-note p + p {
	margin-top: 0.35rem;
}
@media (max-width: 520px) {
	.lfp-input-action > input { flex-basis: 100%; }
	.lfp-input-action > .lfp-btn { flex: 1 1 auto; justify-content: center; }
}

/* v2.6.0 mobile tooltip and readability fixes */
@media (max-width: 720px) {
	.lfp-tip__text {
		position: fixed;
		left: 1rem;
		right: 1rem;
		bottom: 1rem;
		top: auto;
		width: auto;
		max-width: none;
		transform: none;
		z-index: 99999;
		font-size: 0.9rem;
		line-height: 1.45;
	}
}

.lfp-warning-list { display: block; }
.lfp-warning-list strong { display: block; margin-bottom: 0.45rem; }
.lfp-warning-list ul {
	margin: 0;
	padding-left: 1.25rem;
	display: grid;
	gap: 0.25rem;
}
.lfp-warning-list li { line-height: 1.45; }

.lfp-share__btn,
.lfp-share__btn:visited,
.lfp-share__btn:hover,
.lfp-share__btn:focus,
.lfp-share__btn .lfp-share__text,
.lfp-share__btn .lfp-share__icon {
	color: #fff !important;
}
.lfp-share__btn--copy,
.lfp-share__btn--copy:visited,
.lfp-share__btn--copy:hover,
.lfp-share__btn--copy:focus {
	background: #0f172a;
	border-color: #0f172a;
	color: #fff !important;
}

.lfp-input-action input[placeholder="dd/mm/yyyy"] {
	min-width: 10.5rem;
}

/* v2.6.1 public pet page layout + private owner management */
.lfp-single {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
	gap: 1.25rem;
	align-items: start;
}
.lfp-single__media { grid-column: 1; grid-row: 1; }
.lfp-single__body { grid-column: 1 / -1; display: contents; }
.lfp-single__body > .lfp-facts,
.lfp-single__body > .lfp-alert,
.lfp-single__body > .lfp-actions,
.lfp-single__body > .lfp-contact-result,
.lfp-single__body > .lfp-upsell,
.lfp-single__body > .lfp-disclaimer,
.lfp-single__body > .lfp-sighting-form-anchor,
.lfp-single__body > .lfp-follow {
	grid-column: 1;
}
.lfp-single__body > .lfp-map-section {
	grid-column: 2;
	grid-row: 1 / span 5;
	position: sticky;
	top: 1rem;
}
.lfp-single__body > .lfp-share {
	grid-column: 1 / -1;
	order: 99;
}
.lfp-map--single,
.lfp-map--manage,
.lfp-locpick--sighting .lfp-locpick__map {
	min-height: 360px;
}
.lfp-single__body .lfp-share { margin-top: 1rem; }
.lfp-manage {
	grid-column: 1 / -1;
	background: #f8fafc;
	border: 1px solid #dbe3ef;
	border-radius: 18px;
	padding: 1rem;
	margin-bottom: 1.25rem;
}
.lfp-manage__head,
.lfp-manage__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: start;
}
.lfp-manage__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.lfp-manage__mapwrap,
.lfp-manage__sightings { margin-top: 1rem; }
.lfp-eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; font-weight: 800; color: #2563eb; margin: 0 0 .25rem; }
.lfp-sighting-list { display: grid; gap: .75rem; }
.lfp-sighting-item { background: #fff; border: 1px solid #dbe3ef; border-radius: 14px; padding: .9rem; }
.lfp-private-contact { margin: .5rem 0 0; padding-left: 1.1rem; }
.lfp-locpick--sighting { margin: 1rem 0; }
@media (max-width: 900px) {
	.lfp-single { display: block; }
	.lfp-single__body { display: block; }
	.lfp-single__body > .lfp-map-section { position: static; }
	.lfp-manage__head,
	.lfp-manage__grid { grid-template-columns: 1fr; }
}

/* v2.6.2 owner boost panel */
.lfp-boost-panel {
  border: 1px solid rgba(31,111,235,.18);
  background: linear-gradient(180deg, rgba(239,246,255,.96), rgba(255,255,255,.98));
}
.lfp-free-included {
  margin: .85rem 0 1rem;
  padding: .75rem .9rem;
  border-radius: 14px;
  background: #ecfdf5;
  border: 1px solid rgba(22,163,74,.25);
  color: #14532d;
}
.lfp-boost-destinations {
  margin: .75rem 0;
  padding: .75rem .85rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.lfp-boost-destinations ul {
  margin: .45rem 0 0 1.1rem;
  padding: 0;
}
.lfp-boost-destinations li {
  margin: .25rem 0;
}

/* v2.6.3 owner access, control centre, timeline and poster */
.lfp-dashboard-summary,
.lfp-manage-overview {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .85rem;
	margin: 1rem 0 1.25rem;
}
.lfp-stat-card {
	background: linear-gradient(180deg, rgba(239,246,255,.96), rgba(255,255,255,.98));
	border: 1px solid rgba(147,197,253,.65);
	border-radius: 18px;
	padding: 1rem;
	box-shadow: 0 10px 30px rgba(15,23,42,.06);
}
.lfp-stat-card strong {
	display: block;
	font-size: clamp(1.3rem, 3vw, 1.9rem);
	line-height: 1.05;
	color: #0f172a;
	word-break: break-word;
}
.lfp-stat-card span {
	display: block;
	margin-top: .3rem;
	color: #475569;
	font-size: .88rem;
	font-weight: 700;
}
.lfp-inline-prefs {
	display: grid;
	gap: .65rem;
}
.lfp-manage__poster,
.lfp-manage__timeline {
	margin-top: 1rem;
}
.lfp-timeline {
	list-style: none;
	padding: 0;
	margin: .5rem 0 0;
	display: grid;
	gap: .65rem;
}
.lfp-timeline li {
	position: relative;
	padding: .85rem 1rem .85rem 2.25rem;
	border: 1px solid rgba(203,213,225,.85);
	border-radius: 14px;
	background: #fff;
}
.lfp-timeline li::before {
	content: '';
	position: absolute;
	left: .85rem;
	top: 1rem;
	width: .7rem;
	height: .7rem;
	border-radius: 50%;
	background: #2563eb;
	box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
.lfp-timeline span {
	display: block;
	color: #64748b;
	font-size: .84rem;
	margin-top: .15rem;
}
.lfp-print-poster { display: none; }
@media (max-width: 780px) {
	.lfp-dashboard-summary,
	.lfp-manage-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
	body * { visibility: hidden !important; }
	.lfp-print-poster,
	.lfp-print-poster * { visibility: visible !important; }
	.lfp-print-poster {
		display: block !important;
		position: fixed;
		inset: 0;
		padding: 24px;
		background: #fff;
		color: #111827;
		text-align: center;
	}
	.lfp-print-poster h1 { font-size: 56px; margin: 0 0 10px; }
	.lfp-print-poster h2 { font-size: 44px; margin: 0 0 18px; }
	.lfp-print-poster img { max-width: 82%; max-height: 48vh; object-fit: contain; margin: 0 auto 18px; }
	.lfp-print-url { font-size: 18px; font-weight: 800; overflow-wrap: anywhere; }
}

/* -------------------------------------------------------------------------
 * v2.6.4 public pet profile: single-column order and sighting form polish
 * ---------------------------------------------------------------------- */
.lfp-single {
	display: flex !important;
	flex-direction: column !important;
	gap: 1.1rem !important;
	align-items: stretch !important;
}
.lfp-single__media { order: 1 !important; width: 100%; }
.lfp-single__body { display: contents !important; }
.lfp-single__body > .lfp-map-section {
	order: 2 !important;
	position: static !important;
	width: 100%;
}
.lfp-single__body > .lfp-facts { order: 3 !important; }
.lfp-single__body > .lfp-alert { order: 4 !important; }
.lfp-single__body > .lfp-disclaimer { order: 5 !important; }
.lfp-single__body > .lfp-actions { order: 6 !important; }
.lfp-single__body > .lfp-contact-result { order: 7 !important; }
.lfp-single__body > .lfp-upsell,
.lfp-single__body > .lfp-boost-panel { order: 8 !important; }
.lfp-single__body > .lfp-sighting-form-anchor { order: 9 !important; }
.lfp-single__body > .lfp-follow { order: 10 !important; }
.lfp-single__body > .lfp-share { order: 99 !important; }
.lfp-single .lfp-map-section + .lfp-facts { margin-top: 0; }
.lfp-map--single { min-height: 360px; height: 380px; }

.lfp-actions {
	align-items: center;
	gap: 0.6rem;
}
.lfp-actions .lfp-btn {
	flex: 0 1 auto;
	min-height: 44px;
	padding: 0.65rem 1rem;
	line-height: 1.1;
	white-space: nowrap;
	text-align: center;
	color: inherit;
}
.lfp-actions .lfp-btn--primary,
.lfp-actions .lfp-btn--accent,
.lfp .lfp-btn--accent,
.lfp .lfp-btn--accent:visited,
.lfp .lfp-btn--accent:hover,
.lfp .lfp-btn--accent:focus {
	color: #ffffff !important;
}

.lfp-sighting-form-anchor { scroll-margin-top: 1.25rem; }
.lfp-sighting {
	margin-top: 0;
	padding: clamp(1rem, 2vw, 1.35rem);
	background: #f8fafc;
	border-color: #dbe3ef;
}
.lfp-sighting .lfp-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.lfp-sighting .lfp-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
}
@media (min-width: 760px) {
	.lfp-sighting .lfp-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.lfp-sighting .lfp-grid .lfp-col-2,
	.lfp-sighting .lfp-grid > .lfp-field:first-child {
		grid-column: 1 / -1;
	}
}
.lfp-sighting .lfp-field { min-width: 0; }
.lfp-sighting .lfp-input-action {
	align-items: stretch;
	gap: 0.45rem;
}
.lfp-sighting .lfp-input-action > input {
	flex: 1 1 100%;
	min-width: 0;
}
.lfp-sighting .lfp-input-action > .lfp-btn {
	flex: 1 1 auto;
	min-height: 38px;
	padding-left: 0.7rem;
	padding-right: 0.7rem;
	white-space: nowrap;
}
.lfp-sighting .lfp-locpick__bar {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.55rem;
}
@media (min-width: 700px) {
	.lfp-sighting .lfp-locpick__bar {
		grid-template-columns: minmax(0, 1fr) auto auto;
		align-items: stretch;
	}
}
.lfp-sighting .lfp-locpick__search { min-width: 0; }
.lfp-sighting .lfp-locpick__search input { width: 100%; }
.lfp-sighting .lfp-locpick__map { min-height: 340px; height: 360px; }
.lfp-sighting > .lfp-form > .lfp-btn--accent {
	align-self: flex-start;
	color: #ffffff !important;
}

@media (max-width: 560px) {
	.lfp-actions { flex-direction: column; align-items: stretch; }
	.lfp-actions .lfp-btn { width: 100%; }
	.lfp-map--single { height: 320px; min-height: 320px; }
	.lfp-sighting .lfp-locpick__map { height: 300px; min-height: 300px; }
	.lfp-sighting > .lfp-form > .lfp-btn--accent { width: 100%; }
}

/* -------------------------------------------------------------------------
 * v2.6.5 clean pet profile shell, mockup-matched layout and sighting form
 * ---------------------------------------------------------------------- */
body.lfp-clean-page {
	margin: 0;
	background: #f8fafc;
	color: #0f172a;
}
.lfp-clean-page__wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(1rem, 2.5vw, 2rem);
}
.lfp-clean-page .lfp {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
.lfp-clean-page .lfp-pet-profile {
	background: #ffffff;
	border: 1px solid #dbe3ef;
	border-radius: 22px;
	box-shadow: 0 18px 60px rgba(15, 23, 42, .08);
	padding: clamp(1rem, 2.2vw, 2rem);
}
.lfp-pet-profile.lfp-single {
	display: flex !important;
	flex-direction: column !important;
	gap: 1.25rem !important;
}
.lfp-pet-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	border-radius: 18px;
	overflow: hidden;
	border: 1px solid #dbe3ef;
	background: #eef4fb;
}
.lfp-pet-hero .lfp-single__media,
.lfp-pet-hero .lfp-map-section {
	min-height: clamp(280px, 35vw, 390px);
}
.lfp-pet-hero .lfp-single__photo,
.lfp-pet-hero .lfp-map--single {
	border: 0;
	border-radius: 0;
	width: 100%;
	height: 100%;
	min-height: clamp(280px, 35vw, 390px);
	aspect-ratio: auto;
}
.lfp-pet-hero .lfp-map-section {
	position: relative !important;
	display: block;
	order: initial !important;
}
.lfp-pet-hero .lfp-map-section__card {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 401;
	display: grid;
	gap: .2rem;
	max-width: min(240px, calc(100% - 2rem));
	padding: .9rem 1rem;
	border-radius: 14px;
	background: rgba(255,255,255,.94);
	box-shadow: 0 12px 30px rgba(15,23,42,.14);
	border: 1px solid rgba(203,213,225,.9);
}
.lfp-pet-hero .lfp-map-section__card strong { font-size: .95rem; }
.lfp-pet-hero .lfp-map-section__card span { font-size: .9rem; color: #334155; }
.lfp-pet-main {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
}
.lfp-pet-heading h1 {
	font-size: clamp(1.7rem, 3vw, 2.6rem);
	margin: .15rem 0 .7rem;
	color: #172033;
}
.lfp-pet-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem 1.3rem;
	color: #334155;
	font-weight: 600;
}
.lfp-pet-meta span {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
}
.lfp-pet-meta span::before {
	content: '';
	width: .45rem;
	height: .45rem;
	border-radius: 50%;
	background: #2563eb;
	box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.lfp-pet-description {
	padding: .95rem 1rem;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #f8fafc;
}
.lfp-pet-description p { margin: 0; }
.lfp-pet-profile .lfp-facts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: .65rem .8rem;
	border-radius: 16px;
	background: #fff;
}
.lfp-pet-profile .lfp-facts__row {
	grid-template-columns: minmax(110px, .55fr) minmax(0, 1fr);
	border: 0;
	background: transparent !important;
	padding: .45rem .5rem;
}
.lfp-pet-profile .lfp-facts dt {
	color: #0f172a;
	font-weight: 800;
}
.lfp-pet-profile .lfp-facts dd { color: #334155; }
.lfp-pet-profile .lfp-warning-list {
	padding: 1rem 1.15rem;
	border-radius: 16px;
	background: #fff7ed;
	border: 1px solid #fed7aa;
	color: #7c2d12;
}
.lfp-pet-profile .lfp-warning-list strong {
	display: block;
	margin-bottom: .55rem;
	color: #c2410c;
}
.lfp-pet-profile .lfp-warning-list ul {
	margin: 0;
	padding-left: 1.2rem;
	display: grid;
	gap: .25rem;
}
.lfp-pet-profile .lfp-disclaimer {
	background: #f1f5f9;
	border-color: #dbe3ef;
	color: #334155;
}
.lfp-pet-profile .lfp-actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .9rem;
}
.lfp-pet-profile .lfp-actions .lfp-btn {
	width: 100%;
	min-height: 54px;
	border-radius: 12px;
	font-weight: 800;
	white-space: normal;
	line-height: 1.15;
}
.lfp-pet-profile .lfp-actions .lfp-btn--primary,
.lfp-pet-profile .lfp-actions .lfp-btn--accent {
	background: linear-gradient(180deg, #1f6feb, #0f5ed7);
	color: #fff !important;
}
.lfp-pet-profile .lfp-actions .lfp-btn--ghost {
	background: #fff;
	border-color: #cbd5e1;
	color: #0f172a !important;
}
.lfp-privacy-note {
	padding: .85rem 1rem;
	border-radius: 14px;
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	color: #1e3a8a;
	text-align: center;
	font-weight: 600;
}

/* Sighting form layout */
.lfp-sighting {
	padding: clamp(1rem, 2vw, 1.5rem) !important;
	background: #f8fafc !important;
	border: 1px solid #dbe3ef !important;
	border-radius: 18px !important;
	box-shadow: none;
}
.lfp-sighting h3 {
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	margin: 0 0 .25rem;
}
.lfp-sighting__intro {
	margin: 0 0 1rem;
	color: #64748b;
}
.lfp-sighting__form { gap: 1rem; }
.lfp-sighting-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem 1.25rem;
}
.lfp-sighting-grid .lfp-field--full {
	grid-column: 1 / -1;
}
.lfp-sighting .lfp-field__label {
	font-weight: 800;
	font-size: .92rem;
	color: #0f172a;
	margin-bottom: .35rem;
}
.lfp-sighting input,
.lfp-sighting textarea {
	border-radius: 10px !important;
	border: 1px solid #cbd5e1 !important;
	background: #fff !important;
	min-height: 48px;
	box-shadow: none !important;
}
.lfp-date-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .65rem;
	align-items: stretch;
}
.lfp-date-row .lfp-btn,
.lfp-time-buttons .lfp-btn {
	background: #fff;
	border-color: #cbd5e1;
	color: #0f172a;
	min-height: 42px;
}
.lfp-time-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-top: .65rem;
}
.lfp-map-toggle {
	display: flex;
	align-items: center;
	gap: .85rem;
	width: 100%;
	padding: 1rem 1.1rem;
	border-radius: 16px;
	border: 1px solid #dbe3ef;
	background: #fff;
	color: #0f172a;
	text-align: left;
	cursor: pointer;
}
.lfp-map-toggle:hover,
.lfp-map-toggle.is-open {
	border-color: #93c5fd;
	box-shadow: 0 8px 22px rgba(37,99,235,.08);
}
.lfp-map-toggle__icon {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 999px;
	background: #eff6ff;
	color: #2563eb;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 900;
	flex: 0 0 auto;
}
.lfp-map-toggle small {
	display: block;
	margin-top: .15rem;
	color: #64748b;
	font-weight: 500;
}
.lfp-locpick__panel {
	display: grid;
	gap: .8rem;
}
.lfp-sighting .lfp-locpick__bar {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: .65rem;
	align-items: stretch;
}
.lfp-sighting .lfp-locpick__map {
	height: 420px !important;
	min-height: 420px !important;
}
.lfp-sighting__submit {
	width: 100%;
	min-height: 56px;
	font-size: 1.05rem;
	font-weight: 900;
	border-radius: 12px;
	background: linear-gradient(180deg, #16a34a, #07923f) !important;
	color: #fff !important;
}
.lfp-pet-profile .lfp-share {
	background: #f8fafc;
	border-color: #dbe3ef;
	padding: 1.25rem;
	border-radius: 18px;
}
.lfp-pet-profile .lfp-share__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.lfp-pet-profile .lfp-share__btn {
	min-height: 52px;
	border-radius: 12px;
	color: #fff !important;
}
.lfp-pet-profile .lfp-share__btn--copy {
	background: #fff;
	border-color: #cbd5e1;
	color: #0f172a !important;
}
.lfp-pet-profile .lfp-share__btn--copy .lfp-share__text,
.lfp-pet-profile .lfp-share__btn--copy .lfp-share__icon {
	color: #0f172a !important;
}
@media (max-width: 760px) {
	.lfp-clean-page__wrap { padding: .75rem; }
	.lfp-clean-page .lfp-pet-profile { border-radius: 16px; padding: .85rem; }
	.lfp-pet-hero { grid-template-columns: 1fr; }
	.lfp-pet-profile .lfp-facts { grid-template-columns: 1fr; }
	.lfp-pet-profile .lfp-actions { grid-template-columns: 1fr; }
	.lfp-sighting-grid { grid-template-columns: 1fr; }
	.lfp-date-row { grid-template-columns: 1fr; }
	.lfp-sighting .lfp-locpick__bar { grid-template-columns: 1fr !important; }
	.lfp-sighting .lfp-locpick__map { height: 320px !important; min-height: 320px !important; }
	.lfp-pet-profile .lfp-share__grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
 * v2.6.6: pet shell keeps theme header/footer, sighting map disclosure,
 * aligned action buttons and tighter sighting form layout.
 * ---------------------------------------------------------------------- */
.lfp-clean-page.lfp-clean-page__wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(1rem, 2.5vw, 2rem);
	background: transparent;
}
.lfp-clean-page .lfp-pet-profile {
	max-width: 100%;
}
.lfp-pet-profile .lfp-actions {
	align-items: stretch !important;
}
.lfp-pet-profile .lfp-actions .lfp-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: .9rem 1rem !important;
	min-height: 54px !important;
	height: auto !important;
	box-sizing: border-box !important;
}
.lfp-locpick__panel[hidden],
.lfp-sighting .lfp-locpick__panel[hidden] {
	display: none !important;
}
.lfp-sighting .lfp-locpick__panel:not([hidden]) {
	display: grid !important;
}
.lfp-sighting .lfp-sighting-grid {
	align-items: start;
}
.lfp-sighting .lfp-field {
	min-width: 0;
}
.lfp-sighting .lfp-field--date .lfp-date-row {
	grid-template-columns: minmax(0, 1fr) 110px;
	align-items: stretch;
}
.lfp-sighting .lfp-field--time input[type="time"] {
	width: 100%;
}
.lfp-sighting .lfp-time-buttons .lfp-btn,
.lfp-sighting .lfp-date-row .lfp-btn,
.lfp-sighting .lfp-locpick__bar .lfp-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	white-space: nowrap;
}
.lfp-sighting .lfp-locpick {
	margin-top: .25rem;
}
.lfp-map-toggle {
	min-height: 74px;
}
@media (max-width: 760px) {
	.lfp-clean-page.lfp-clean-page__wrap {
		padding: .75rem;
	}
	.lfp-sighting .lfp-field--date .lfp-date-row {
		grid-template-columns: 1fr;
	}
	.lfp-pet-profile .lfp-actions {
		grid-template-columns: 1fr !important;
	}
}

/* -------------------------------------------------------------------------
 * v2.6.7: unified front-end button system and action/share sizing audit
 * ---------------------------------------------------------------------- */
.lfp {
	--lfp-btn-height: 52px;
	--lfp-btn-sm-height: 42px;
	--lfp-btn-radius: 12px;
}

.lfp .lfp-btn,
.lfp a.lfp-btn,
.lfp button.lfp-btn,
.lfp input[type="submit"].lfp-btn,
.lfp .lfp-share__btn,
.lfp button.lfp-share__btn,
.lfp a.lfp-share__btn,
.lfp .lfp-map-toggle {
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: .5rem !important;
	min-height: var(--lfp-btn-height) !important;
	height: var(--lfp-btn-height) !important;
	padding: 0 1rem !important;
	border-radius: var(--lfp-btn-radius) !important;
	font-size: .95rem !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-align: center !important;
	text-decoration: none !important;
	vertical-align: middle !important;
	white-space: nowrap !important;
	max-width: 100% !important;
}

.lfp .lfp-btn--sm,
.lfp button.lfp-btn--sm,
.lfp a.lfp-btn--sm,
.lfp .lfp-time-buttons .lfp-btn,
.lfp .lfp-date-row .lfp-btn,
.lfp .lfp-input-action > .lfp-btn,
.lfp .lfp-locpick__bar .lfp-btn {
	min-height: var(--lfp-btn-sm-height) !important;
	height: var(--lfp-btn-sm-height) !important;
	padding: 0 .85rem !important;
	font-size: .86rem !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
}

.lfp .lfp-btn--primary,
.lfp .lfp-btn--primary:visited,
.lfp .lfp-btn--primary:hover,
.lfp .lfp-btn--primary:focus,
.lfp .lfp-btn--accent,
.lfp .lfp-btn--accent:visited,
.lfp .lfp-btn--accent:hover,
.lfp .lfp-btn--accent:focus {
	color: #ffffff !important;
}

.lfp .lfp-btn--ghost,
.lfp .lfp-btn--ghost:visited,
.lfp .lfp-btn--ghost:hover,
.lfp .lfp-btn--ghost:focus {
	color: #0f172a !important;
}

/* Main public pet action buttons: always equal width and equal height. */
.lfp-pet-profile .lfp-actions,
.lfp-single .lfp-actions,
.lfp .lfp-actions {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: .9rem !important;
	align-items: stretch !important;
}

.lfp-pet-profile .lfp-actions .lfp-btn,
.lfp-single .lfp-actions .lfp-btn,
.lfp .lfp-actions .lfp-btn {
	width: 100% !important;
	min-width: 0 !important;
	min-height: var(--lfp-btn-height) !important;
	height: var(--lfp-btn-height) !important;
	padding: 0 1rem !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

/* Share buttons: same size regardless of network, icon, text or button type. */
.lfp .lfp-share__grid,
.lfp-pet-profile .lfp-share__grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)) !important;
	gap: .75rem !important;
	align-items: stretch !important;
}

.lfp .lfp-share__btn,
.lfp-pet-profile .lfp-share__btn {
	width: 100% !important;
	min-width: 0 !important;
	min-height: var(--lfp-btn-height) !important;
	height: var(--lfp-btn-height) !important;
	padding: 0 1rem !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	color: #ffffff !important;
}

.lfp .lfp-share__btn .lfp-share__text,
.lfp .lfp-share__btn .lfp-share__icon,
.lfp-pet-profile .lfp-share__btn .lfp-share__text,
.lfp-pet-profile .lfp-share__btn .lfp-share__icon {
	color: inherit !important;
	line-height: 1 !important;
}

.lfp .lfp-share__btn--copy,
.lfp-pet-profile .lfp-share__btn--copy {
	background: #ffffff !important;
	border-color: #cbd5e1 !important;
	color: #0f172a !important;
}

/* Form navigation and submit buttons: visually aligned across the report flow. */
.lfp .lfp-form-nav {
	display: flex !important;
	gap: .75rem !important;
	align-items: stretch !important;
}
.lfp .lfp-form-nav .lfp-btn {
	min-height: var(--lfp-btn-height) !important;
	height: var(--lfp-btn-height) !important;
}

/* Search form button alignment. */
.lfp .lfp-search__submit {
	min-height: var(--lfp-btn-height) !important;
	height: var(--lfp-btn-height) !important;
}

/* Sighting form: tidy quick buttons and map disclosure button. */
.lfp-sighting .lfp-time-buttons {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: .6rem !important;
	align-items: stretch !important;
}
.lfp-sighting .lfp-time-buttons .lfp-btn {
	flex: 0 0 auto !important;
}
.lfp .lfp-map-toggle {
	justify-content: flex-start !important;
	height: auto !important;
	min-height: 74px !important;
	padding: 1rem 1.1rem !important;
	line-height: 1.25 !important;
	white-space: normal !important;
}

/* Safer, cleaner alert block presentation. */
.lfp-pet-profile .lfp-disclaimer,
.lfp .lfp-disclaimer {
	display: block !important;
	padding: 1rem 1.1rem !important;
	line-height: 1.45 !important;
	text-align: left !important;
}
.lfp-pet-profile .lfp-disclaimer::before,
.lfp .lfp-disclaimer::before {
	content: 'Safety first';
	display: block;
	font-weight: 900;
	margin-bottom: .25rem;
	color: #1e3a8a;
}

/* Dashboard/control centre buttons should align neatly without becoming huge. */
.lfp-dashboard .lfp-btn--sm,
.lfp-manage .lfp-btn--sm,
.lfp-card .lfp-btn--sm {
	min-height: var(--lfp-btn-sm-height) !important;
	height: var(--lfp-btn-sm-height) !important;
}

@media (max-width: 760px) {
	.lfp-pet-profile .lfp-actions,
	.lfp-single .lfp-actions,
	.lfp .lfp-actions,
	.lfp .lfp-form-nav {
		grid-template-columns: 1fr !important;
		flex-direction: column !important;
	}
	.lfp .lfp-actions .lfp-btn,
	.lfp .lfp-form-nav .lfp-btn,
	.lfp .lfp-share__btn {
		width: 100% !important;
	}
	.lfp .lfp-share__grid,
	.lfp-pet-profile .lfp-share__grid {
		grid-template-columns: 1fr !important;
	}
	.lfp-sighting .lfp-time-buttons .lfp-btn {
		flex: 1 1 calc(33.333% - .6rem) !important;
		min-width: 0 !important;
	}
}

@media (max-width: 420px) {
	.lfp-sighting .lfp-time-buttons .lfp-btn,
	.lfp .lfp-date-row .lfp-btn {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
}

/* v2.6.8 polish: search bar, inline auth, owner buttons, poster */
.lfp-search__form{
	display:grid !important;
	grid-template-columns:minmax(220px,1.6fr) minmax(150px,.8fr) minmax(150px,.8fr) auto !important;
	gap:.8rem !important;
	align-items:end !important;
	background:#f8fafc !important;
	border:1px solid #dbe5f0 !important;
	border-radius:18px !important;
	padding:1rem !important;
}
.lfp-search__field{min-width:0 !important;}
.lfp-search__form input,.lfp-search__form select{height:52px !important;border-radius:12px !important;background:#fff !important;}
.lfp-search__submit{height:52px !important;min-height:52px !important;padding:0 1.35rem !important;border-radius:12px !important;align-self:end !important;}
@media(max-width:860px){.lfp-search__form{grid-template-columns:1fr !important}.lfp-search__submit{width:100% !important}}

.lfp-auth-inline{display:block;padding:.25rem 0;}
.lfp-auth-inline p{margin:.2rem 0 .85rem;}
.lfp-auth-inline__actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem;}
.lfp-inline-register{margin-top:.85rem;background:#fff;border:1px solid #dbe5f0;border-radius:14px;padding:1rem;display:grid;gap:.75rem;}
.lfp-inline-register[hidden]{display:none !important;}

.lfp-manage-public-link{margin:.5rem 0 1rem;}
.lfp-manage .lfp-actions{grid-template-columns:repeat(3,minmax(0,1fr)) !important;align-items:stretch !important;}
.lfp-manage .lfp-actions .lfp-btn{min-height:48px !important;height:48px !important;font-size:.92rem !important;padding:0 .8rem !important;white-space:normal !important;line-height:1.15 !important;}
@media(max-width:720px){.lfp-manage .lfp-actions{grid-template-columns:1fr !important}}

.lfp-boost-panel{margin:1rem 0;border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:1rem;}
.lfp-upsell__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;}
.lfp-upsell__option{background:#fff;border:1px solid #dbe5f0;border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.8rem;}
.lfp-upsell__info{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-weight:900;}
.lfp-upsell__price{color:#0f766e;white-space:nowrap;}
.lfp-boost-destinations ul{margin:.35rem 0 0 1.1rem;}
@media(max-width:720px){.lfp-upsell__options{grid-template-columns:1fr}}

.lfp-print-poster__header{display:flex;align-items:center;justify-content:center;gap:18px;border-bottom:6px solid #111827;padding-bottom:14px;margin-bottom:14px;}
.lfp-print-poster__logo{max-width:220px;max-height:90px;object-fit:contain;}
.lfp-print-poster__pet{display:block;max-width:82%;max-height:46vh;object-fit:contain;margin:0 auto 18px;border:5px solid #111827;border-radius:12px;}
.lfp-print-poster__qr{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px;}
.lfp-print-poster__qr img{width:150px;height:150px;}
.lfp-print-poster__footer{border-top:4px solid #111827;margin-top:18px;padding-top:10px;font-weight:900;text-align:center;}

@media print{
	.lfp-print-poster__header{display:flex !important;}
	.lfp-print-poster__logo{display:block !important;}
	.lfp-print-poster__pet{display:block !important;}
	.lfp-print-poster__qr{display:flex !important;}
	.lfp-print-poster__qr img{display:block !important;}
}

/* v2.6.9 mobile-friendly boost cards */
.lfp-boost-panel .lfp-upsell__options {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  width: 100% !important;
}
.lfp-boost-panel .lfp-boost-card,
.lfp-boost-panel .lfp-upsell__option {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: .85rem !important;
  overflow: hidden !important;
}
.lfp-boost-panel .lfp-upsell__info {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: .75rem !important;
  align-items: start !important;
  min-width: 0 !important;
}
.lfp-boost-panel .lfp-upsell__name {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
.lfp-boost-panel .lfp-upsell__price {
  white-space: nowrap !important;
}
.lfp-boost-panel .lfp-boost-destinations {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
}
.lfp-boost-reach {
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(14,165,233,.22);
  background: #f0f9ff;
  color: #075985;
  border-radius: 12px;
  padding: .7rem .85rem;
  font-weight: 800;
  line-height: 1.35;
}
.lfp-boost-card__button,
.lfp-boost-panel .lfp-btn {
  width: 100% !important;
  max-width: 100% !important;
  margin-top: auto !important;
  min-height: 52px !important;
  height: auto !important;
  white-space: normal !important;
  line-height: 1.2 !important;
  text-align: center !important;
}
@media (min-width: 992px) {
  .lfp-boost-panel .lfp-upsell__options {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
  }
}
@media (max-width: 520px) {
  .lfp-boost-panel {
    padding: .9rem !important;
  }
  .lfp-boost-panel .lfp-upsell__info {
    grid-template-columns: 1fr !important;
  }
  .lfp-boost-panel .lfp-upsell__price {
    justify-self: start !important;
  }
}

/* v2.7.0 owner-page, poster and sighting-form refinements */
.lfp-sighting-form-anchor[hidden]{display:none!important;}
.lfp-sighting-form-anchor.is-open{display:block!important;}
.lfp-sighting{padding:18px!important;}
.lfp-sighting .lfp-sighting__form{gap:12px!important;}
.lfp-sighting-grid{gap:12px 16px!important;}
.lfp-sighting .lfp-field{gap:5px!important;}
.lfp-sighting input,.lfp-sighting textarea,.lfp-sighting select{padding:10px 12px!important;min-height:44px!important;}
.lfp-sighting textarea{min-height:100px!important;}
.lfp-sighting .lfp-locpick{padding:12px!important;margin-top:4px!important;}
.lfp-sighting .lfp-map-toggle{min-height:58px!important;padding:10px 14px!important;}
.lfp-sighting .lfp-prefs-group{padding:12px!important;margin-top:8px!important;}
.lfp-sighting__submit{margin-top:8px!important;}

.lfp-manage{max-width:1100px;margin:0 auto;padding:24px!important;}
.lfp-manage .lfp-card{padding:20px!important;border-radius:16px!important;}
.lfp-manage-status-card{margin-top:18px!important;}
.lfp-status-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px!important;align-items:stretch!important;}
.lfp-status-actions .lfp-btn{height:auto!important;min-height:54px!important;width:100%!important;white-space:normal!important;line-height:1.2!important;padding:10px 14px!important;}
.lfp-manage__mapwrap,.lfp-manage__sightings,.lfp-manage__poster,.lfp-manage__timeline,.lfp-manage-preferences{margin-top:18px!important;}
.lfp-manage__mapwrap .lfp-map{height:420px!important;min-height:420px!important;}
.lfp-manage-preferences{margin-bottom:0!important;}
.lfp-manage .lfp-boost-panel{margin-top:18px!important;}
.lfp-manage .lfp-boost-panel .lfp-upsell__options{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.lfp-timeline li.is-failed{border-color:#fecaca!important;background:#fff7f7!important;}
@media(max-width:760px){
  .lfp-manage{padding:16px!important;}
  .lfp-status-actions{grid-template-columns:1fr!important;}
  .lfp-manage .lfp-boost-panel .lfp-upsell__options{grid-template-columns:1fr!important;}
  .lfp-manage__mapwrap .lfp-map{height:340px!important;min-height:340px!important;}
}

.lfp-search__form{align-items:end!important;}
.lfp-search__submit,.lfp .lfp-search__submit{height:52px!important;min-height:52px!important;padding:0 22px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}

.lfp-print-poster{display:none;}
@media print{
  @page{size:A4 portrait;margin:10mm;}
  html,body{background:#fff!important;width:210mm!important;height:297mm!important;overflow:hidden!important;}
  body *{visibility:hidden!important;}
  .lfp-print-poster,.lfp-print-poster *{visibility:visible!important;}
  .lfp-print-poster{display:flex!important;position:fixed!important;inset:0!important;width:auto!important;height:auto!important;box-sizing:border-box!important;padding:12mm!important;background:#fff!important;color:#111827!important;flex-direction:column!important;justify-content:flex-start!important;overflow:hidden!important;page-break-after:avoid!important;page-break-before:avoid!important;page-break-inside:avoid!important;font-family:Arial,sans-serif!important;}
  .lfp-print-poster__header{display:flex!important;align-items:center!important;justify-content:center!important;gap:16px!important;border-bottom:6px solid #111827!important;padding-bottom:10px!important;margin:0 0 10px!important;}
  .lfp-print-poster__logo{display:block!important;max-width:190px!important;max-height:74px!important;object-fit:contain!important;}
  .lfp-print-poster h1{font-size:58px!important;line-height:1!important;letter-spacing:.02em!important;margin:0!important;text-align:center!important;font-weight:900!important;}
  .lfp-print-poster h2{font-size:48px!important;line-height:1.05!important;margin:8px 0 10px!important;text-align:center!important;font-weight:900!important;}
  .lfp-print-poster__pet{display:block!important;width:auto!important;max-width:100%!important;max-height:118mm!important;object-fit:contain!important;margin:0 auto 10px!important;border:6px solid #111827!important;border-radius:12px!important;}
  .lfp-print-poster__details{font-size:26px!important;line-height:1.25!important;text-align:center!important;margin:0 0 8px!important;}
  .lfp-print-poster__details p{margin:4px 0!important;}
  .lfp-print-poster__qr{display:flex!important;align-items:center!important;justify-content:center!important;gap:18px!important;margin-top:8px!important;border-top:4px solid #111827!important;padding-top:8px!important;}
  .lfp-print-poster__qr img{display:block!important;width:42mm!important;height:42mm!important;}
  .lfp-print-poster__qr p{font-size:28px!important;line-height:1.15!important;margin:0!important;font-weight:800!important;max-width:110mm!important;}
  .lfp-print-poster__footer{margin-top:auto!important;border-top:4px solid #111827!important;padding-top:6px!important;text-align:center!important;font-size:22px!important;font-weight:900!important;}
  .lfp-print-poster + *{display:none!important;}
}

/* v2.7.1 owner/sighting polish */
.lfp-sighting-auth{margin:1rem 0;padding:1rem;border:1px solid var(--lfp-border,#dbe3ef);border-radius:14px;background:#fff}
.lfp-auth-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}
.lfp-form--compact{display:grid;gap:.75rem;margin-top:1rem;max-width:680px}
.lfp-form--compact label{display:grid;gap:.35rem;font-weight:600}
.lfp-privacy-note--sighting{margin-top:1rem}
.lfp-new-label{display:inline-flex;align-items:center;margin-left:.5rem;padding:.15rem .45rem;border-radius:999px;background:#e0f2fe;color:#075985;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em;vertical-align:middle}
@media (max-width: 640px){.lfp-sighting-auth{padding:.85rem}.lfp-auth-actions .lfp-btn,.lfp-form--compact .lfp-btn{width:100%}}

/* v2.7.3 high-visibility one-page missing pet poster */
.lfp-print-poster__name,
.lfp-print-poster__colour,
.lfp-print-poster__help,
.lfp-print-poster__lastseen { text-align: center; }
@media print{
  @page{size:A4 portrait;margin:8mm!important;}
  html,body{background:#fff!important;width:210mm!important;height:297mm!important;overflow:hidden!important;}
  body *{visibility:hidden!important;}
  .lfp-print-poster,.lfp-print-poster *{visibility:visible!important;}
  .lfp-print-poster{
    display:flex!important;position:fixed!important;inset:0!important;width:210mm!important;height:297mm!important;
    box-sizing:border-box!important;padding:8mm!important;background:#fff!important;color:#111827!important;
    flex-direction:column!important;justify-content:flex-start!important;overflow:hidden!important;
    page-break-after:avoid!important;page-break-before:avoid!important;page-break-inside:avoid!important;
    font-family:Arial,Helvetica,sans-serif!important;
  }
  .lfp-print-poster__header{
    display:flex!important;align-items:center!important;justify-content:center!important;gap:12mm!important;
    border-bottom:2.2mm solid #111827!important;padding-bottom:4mm!important;margin:0 0 4mm!important;
  }
  .lfp-print-poster__logo{display:block!important;max-width:42mm!important;max-height:22mm!important;object-fit:contain!important;}
  .lfp-print-poster h1{
    font-size:22mm!important;line-height:.9!important;letter-spacing:.02em!important;margin:0!important;text-align:center!important;
    font-weight:900!important;text-transform:uppercase!important;color:#d60000!important;
  }
  .lfp-print-poster__name,
  .lfp-print-poster h2{
    font-size:24mm!important;line-height:.95!important;margin:3mm 0 1mm!important;text-align:center!important;
    font-weight:900!important;text-transform:uppercase!important;color:#111827!important;
  }
  .lfp-print-poster__colour{
    font-size:11mm!important;line-height:1!important;margin:0 0 3mm!important;font-weight:900!important;text-transform:uppercase!important;
    color:#111827!important;
  }
  .lfp-print-poster__help{
    background:#d60000!important;color:#fff!important;text-transform:uppercase!important;font-weight:900!important;
    font-size:8.5mm!important;line-height:1!important;padding:3mm 4mm!important;margin:0 0 4mm!important;
  }
  .lfp-print-poster__pet{
    display:block!important;width:100%!important;max-width:100%!important;height:105mm!important;max-height:105mm!important;
    object-fit:cover!important;object-position:center!important;margin:0 auto 4mm!important;
    border:2.5mm solid #d60000!important;border-radius:4mm!important;box-sizing:border-box!important;
  }
  .lfp-print-poster__details{margin:0 0 4mm!important;text-align:center!important;}
  .lfp-print-poster__lastseen{
    display:block!important;border-top:1.5mm solid #111827!important;border-bottom:1.5mm solid #111827!important;
    padding:3mm 2mm!important;margin:0!important;text-align:center!important;
  }
  .lfp-print-poster__lastseen span{display:block!important;font-size:6mm!important;text-transform:uppercase!important;font-weight:900!important;letter-spacing:.04em!important;}
  .lfp-print-poster__lastseen strong{display:block!important;font-size:11mm!important;line-height:1.05!important;font-weight:900!important;margin-top:1mm!important;}
  .lfp-print-poster__lastseen em{display:block!important;font-style:normal!important;font-size:7mm!important;font-weight:800!important;margin-top:1mm!important;}
  .lfp-print-poster__qr{
    display:grid!important;grid-template-columns:48mm 1fr!important;align-items:center!important;justify-content:center!important;gap:8mm!important;
    background:#d60000!important;color:#fff!important;margin:0!important;padding:5mm!important;border-top:0!important;
  }
  .lfp-print-poster__qr img{display:block!important;width:48mm!important;height:48mm!important;background:#fff!important;padding:2mm!important;box-sizing:border-box!important;}
  .lfp-print-poster__qr p{font-size:8mm!important;line-height:1.1!important;margin:0!important;font-weight:900!important;text-transform:uppercase!important;color:#fff!important;max-width:none!important;}
  .lfp-print-poster__qr p strong{font-size:14mm!important;line-height:1!important;display:block!important;color:#fff!important;margin-bottom:2mm!important;}
  .lfp-print-poster__footer{
    margin-top:auto!important;background:#111827!important;color:#fff!important;border-top:0!important;padding:3mm!important;
    text-align:center!important;font-size:6mm!important;font-weight:900!important;text-transform:uppercase!important;
  }
  .lfp-print-poster + *{display:none!important;}
}


/* v2.7.5 poster fit/readability fix: force one A4 page and keep QR/footer visible */
@media print{
  @page{size:A4 portrait;margin:6mm!important;}
  html,body{background:#fff!important;width:210mm!important;height:297mm!important;overflow:hidden!important;margin:0!important;padding:0!important;}
  body *{visibility:hidden!important;}
  .lfp-print-poster,.lfp-print-poster *{visibility:visible!important;}
  .lfp-print-poster{
    display:flex!important;position:fixed!important;left:0!important;top:0!important;right:0!important;bottom:0!important;
    width:210mm!important;height:297mm!important;max-height:297mm!important;box-sizing:border-box!important;
    padding:7mm 9mm!important;background:#fff!important;color:#111827!important;flex-direction:column!important;
    justify-content:flex-start!important;overflow:hidden!important;page-break-inside:avoid!important;page-break-after:avoid!important;
    font-family:Arial,Helvetica,sans-serif!important;
  }
  .lfp-print-poster__header{
    display:grid!important;grid-template-columns:38mm 1fr!important;align-items:center!important;gap:6mm!important;
    border-bottom:1.6mm solid #111827!important;padding:0 0 3mm!important;margin:0 0 3mm!important;min-height:24mm!important;
  }
  .lfp-print-poster__logo{display:block!important;max-width:34mm!important;max-height:19mm!important;object-fit:contain!important;justify-self:center!important;}
  .lfp-print-poster h1{font-size:17mm!important;line-height:.9!important;letter-spacing:.02em!important;margin:0!important;text-align:center!important;font-weight:900!important;text-transform:uppercase!important;color:#d60000!important;}
  .lfp-print-poster__name,.lfp-print-poster h2{font-size:18mm!important;line-height:.92!important;margin:2mm 0 0!important;text-align:center!important;font-weight:900!important;text-transform:uppercase!important;color:#111827!important;}
  .lfp-print-poster__colour{font-size:8.5mm!important;line-height:1!important;margin:1mm 0 2mm!important;font-weight:900!important;text-transform:uppercase!important;color:#111827!important;}
  .lfp-print-poster__help{background:#d60000!important;color:#fff!important;text-transform:uppercase!important;font-weight:900!important;font-size:6.8mm!important;line-height:1!important;padding:2.2mm 3mm!important;margin:0 0 3mm!important;text-align:center!important;}
  .lfp-print-poster__pet{display:block!important;width:100%!important;max-width:100%!important;height:88mm!important;max-height:88mm!important;object-fit:cover!important;object-position:center!important;margin:0 auto 3mm!important;border:2mm solid #d60000!important;border-radius:3mm!important;box-sizing:border-box!important;}
  .lfp-print-poster__details{margin:0 0 3mm!important;text-align:center!important;}
  .lfp-print-poster__lastseen{display:block!important;border-top:1.2mm solid #111827!important;border-bottom:1.2mm solid #111827!important;padding:2mm!important;margin:0!important;text-align:center!important;}
  .lfp-print-poster__lastseen span{display:block!important;font-size:5mm!important;text-transform:uppercase!important;font-weight:900!important;letter-spacing:.04em!important;}
  .lfp-print-poster__lastseen strong{display:block!important;font-size:9mm!important;line-height:1.05!important;font-weight:900!important;margin-top:.5mm!important;}
  .lfp-print-poster__lastseen em{display:block!important;font-style:normal!important;font-size:5.5mm!important;font-weight:800!important;margin-top:.5mm!important;}
  .lfp-print-poster__qr{display:grid!important;grid-template-columns:38mm 1fr!important;align-items:center!important;gap:6mm!important;background:#d60000!important;color:#fff!important;margin:0!important;padding:3.5mm!important;border-top:0!important;min-height:45mm!important;box-sizing:border-box!important;}
  .lfp-print-poster__qr img{display:block!important;width:36mm!important;height:36mm!important;background:#fff!important;padding:1.5mm!important;box-sizing:border-box!important;}
  .lfp-print-poster__qr p{font-size:5.8mm!important;line-height:1.08!important;margin:0!important;font-weight:900!important;text-transform:uppercase!important;color:#fff!important;max-width:none!important;}
  .lfp-print-poster__qr p strong{font-size:10mm!important;line-height:1!important;display:block!important;color:#fff!important;margin-bottom:1.5mm!important;}
  .lfp-print-poster__footer{margin-top:2.5mm!important;background:#111827!important;color:#fff!important;border-top:0!important;padding:2.3mm!important;text-align:center!important;font-size:5mm!important;font-weight:900!important;text-transform:uppercase!important;}
  .lfp-print-poster + *{display:none!important;}
}


/* v2.7.6 public map and poster readability refinements */
@media print{
  .lfp-print-poster__colour{color:#111827!important;}
  .lfp-print-poster__help{color:#4b5563!important;background:transparent!important;}
  .lfp-print-poster__lastseen span{color:#111827!important;}
  .lfp-print-poster__qr p{color:#fff!important;}
}

/* v2.7.8 usability refinements */
.lfp-pin-required-note,
.lfp-sighting-simple-note{
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:14px;
  padding:14px 16px;
  margin:10px 0 14px;
}
.lfp-pin-required-note strong,
.lfp-sighting-simple-note strong{display:block;font-size:1rem;margin-bottom:4px;color:#0f172a;}
.lfp-pin-required-note p,
.lfp-sighting-simple-note p{margin:0;color:#1e3a8a;line-height:1.45;}
.lfp-field__help{display:block;margin:4px 0 8px;color:#475569;font-size:.92rem;line-height:1.4;}
.lfp-current-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,180px));gap:12px;margin:12px 0;}
.lfp-current-photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 8px 20px rgba(15,23,42,.08);}
.lfp-photo-update-form{display:grid;gap:12px;margin-top:12px;}
.lfp-upload--compact{padding:14px;border:1px dashed #93c5fd;background:#f8fbff;border-radius:14px;}
.lfp-boost-panel{
  position:relative;
  border:2px solid #2563eb!important;
  background:linear-gradient(135deg,#eff6ff 0%,#ffffff 50%,#ecfeff 100%)!important;
  box-shadow:0 20px 50px rgba(37,99,235,.16)!important;
  padding:22px!important;
}
.lfp-boost-panel:before{
  content:'Recommended';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#1d4ed8;
  color:#fff;
  border-radius:999px;
  padding:6px 12px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.lfp-boost-panel h3,
.lfp-boost-panel .lfp-upsell__title{font-size:1.35rem!important;color:#0f172a!important;margin-top:0!important;}
.lfp-boost-panel .lfp-upsell__option,
.lfp-boost-panel .lfp-boost-card{
  border:2px solid #bfdbfe!important;
  background:#fff!important;
  border-radius:18px!important;
  box-shadow:0 12px 30px rgba(15,23,42,.10)!important;
}
.lfp-boost-panel .lfp-upsell__price{font-size:1.4rem!important;color:#0f172a!important;font-weight:900!important;}
.lfp-boost-panel .lfp-boost-card__button,
.lfp-boost-panel .lfp-btn--accent{
  min-height:54px!important;
  font-size:1rem!important;
  font-weight:900!important;
  box-shadow:0 12px 24px rgba(37,99,235,.24)!important;
}
.lfp-sighting__form{padding:14px!important;}
@media (max-width:700px){
  .lfp-boost-panel{padding:16px!important;border-radius:18px!important;}
  .lfp-boost-panel .lfp-upsell__option,.lfp-boost-panel .lfp-boost-card{padding:16px!important;}
}


/* v2.8.0 poster layout: AI-free build, supports portrait and landscape uploaded photos */
@media print{
  @page{size:A4 portrait;margin:7mm!important;}
  html,body{width:210mm!important;height:297mm!important;overflow:hidden!important;background:#fff!important;}
  body *{visibility:hidden!important;}
  .lfp-print-poster,.lfp-print-poster *{visibility:visible!important;}
  .lfp-print-poster{
    position:fixed!important;inset:7mm!important;width:auto!important;height:auto!important;
    max-height:283mm!important;overflow:hidden!important;background:#fff!important;color:#111827!important;
    box-sizing:border-box!important;padding:0!important;border:0!important;box-shadow:none!important;
    display:flex!important;flex-direction:column!important;gap:2mm!important;font-family:Arial,Helvetica,sans-serif!important;
  }
  .lfp-print-poster__header{display:grid!important;grid-template-columns:38mm 1fr!important;align-items:center!important;gap:7mm!important;border-bottom:1.5mm solid #111827!important;padding-bottom:3mm!important;flex:0 0 auto!important;}
  .lfp-print-poster__logo{display:block!important;max-width:36mm!important;max-height:18mm!important;object-fit:contain!important;justify-self:center!important;}
  .lfp-print-poster h1{font-size:15.5mm!important;line-height:.9!important;letter-spacing:.03em!important;margin:0!important;text-align:center!important;font-weight:900!important;text-transform:uppercase!important;color:#d60000!important;}
  .lfp-print-poster__name,.lfp-print-poster h2{font-size:17mm!important;line-height:.9!important;margin:2mm 0 0!important;text-align:center!important;font-weight:900!important;text-transform:uppercase!important;color:#111827!important;flex:0 0 auto!important;}
  .lfp-print-poster__colour{font-size:8.2mm!important;line-height:1!important;margin:0!important;font-weight:900!important;text-transform:uppercase!important;color:#111827!important;text-align:center!important;flex:0 0 auto!important;}
  .lfp-print-poster__help{font-size:5.8mm!important;line-height:1!important;margin:1mm 0 1.5mm!important;font-weight:900!important;text-transform:uppercase!important;color:#374151!important;background:transparent!important;text-align:center!important;padding:0!important;flex:0 0 auto!important;}
  .lfp-print-poster__pet{display:block!important;width:100%!important;max-width:100%!important;height:92mm!important;max-height:92mm!important;object-fit:cover!important;object-position:center!important;margin:0 auto 2mm!important;border:1.8mm solid #d60000!important;border-radius:3mm!important;box-sizing:border-box!important;flex:0 0 auto!important;background:#fff!important;}
  .lfp-print-poster__pet--portrait{height:106mm!important;max-height:106mm!important;width:auto!important;max-width:100%!important;object-fit:contain!important;background:#fff!important;}
  .lfp-print-poster__details{margin:0!important;text-align:center!important;flex:0 0 auto!important;}
  .lfp-print-poster__lastseen{display:block!important;border-top:1.2mm solid #111827!important;border-bottom:1.2mm solid #111827!important;padding:1.8mm!important;margin:0!important;text-align:center!important;}
  .lfp-print-poster__lastseen span{display:block!important;font-size:4.4mm!important;text-transform:uppercase!important;font-weight:900!important;letter-spacing:.04em!important;color:#111827!important;}
  .lfp-print-poster__lastseen strong{display:block!important;font-size:7.7mm!important;line-height:1.05!important;font-weight:900!important;margin-top:.5mm!important;color:#111827!important;}
  .lfp-print-poster__lastseen em{display:block!important;font-style:normal!important;font-size:4.8mm!important;font-weight:900!important;margin-top:.2mm!important;color:#111827!important;}
  .lfp-print-poster__qr{display:grid!important;grid-template-columns:32mm 1fr!important;align-items:center!important;gap:6mm!important;background:#fff!important;color:#111827!important;margin:1.5mm 0 0!important;padding:0!important;min-height:34mm!important;box-sizing:border-box!important;flex:0 0 auto!important;}
  .lfp-print-poster__qr img{display:block!important;width:31mm!important;height:31mm!important;background:#fff!important;padding:0!important;box-sizing:border-box!important;}
  .lfp-print-poster__qr p{font-size:4.4mm!important;line-height:1.08!important;margin:0!important;font-weight:900!important;text-transform:uppercase!important;color:#374151!important;max-width:none!important;text-align:center!important;}
  .lfp-print-poster__qr p strong{font-size:8mm!important;line-height:1!important;display:block!important;color:#111827!important;margin-bottom:1.3mm!important;}
  .lfp-print-poster__footer{margin-top:auto!important;background:#111827!important;color:#fff!important;border-top:0!important;padding:2mm!important;text-align:center!important;font-size:4.4mm!important;font-weight:900!important;text-transform:uppercase!important;flex:0 0 auto!important;}
  .lfp-print-poster + *{display:none!important;}
}

/* Recent report card status text */
.lfp-card__status-text {
	margin: 0.2rem 0 0;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.9rem;
}
.lfp-card__status-text--missing {
	color: #dc2626;
}


/* v2.9.1: closeable map overlay and found report card status */
.lfp-pet-hero .lfp-map-section__card { padding-right: 2.35rem; }
.lfp-map-section__close {
	position: absolute;
	top: .35rem;
	right: .45rem;
	width: 1.7rem;
	height: 1.7rem;
	border: 0;
	border-radius: 999px;
	background: rgba(15, 23, 42, .08);
	color: #0f172a;
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.lfp-map-section__close:hover,
.lfp-map-section__close:focus { background: rgba(15, 23, 42, .16); outline: 2px solid rgba(31,111,235,.25); }
.lfp-card__status-text--found { color: var(--lfp-accent); }


/* v2.9.2 poster image fit: show the full uploaded photo, never crop, while keeping a single A4 page */
@media print{
  .lfp-print-poster{padding:6mm 8mm!important;}
  .lfp-print-poster__header{min-height:22mm!important;margin-bottom:2.5mm!important;padding-bottom:2.5mm!important;}
  .lfp-print-poster h1{font-size:16mm!important;}
  .lfp-print-poster__name,.lfp-print-poster h2{font-size:16.5mm!important;margin:1.5mm 0 0!important;}
  .lfp-print-poster__colour{font-size:7.5mm!important;margin:.5mm 0 1.5mm!important;}
  .lfp-print-poster__help{font-size:6mm!important;margin:0 0 2mm!important;padding:1.5mm 2mm!important;}
  .lfp-print-poster__pet{
    width:100%!important;
    height:105mm!important;
    max-height:105mm!important;
    object-fit:contain!important;
    object-position:center!important;
    background:#fff!important;
    margin:0 auto 2mm!important;
    border:2mm solid #d60000!important;
    border-radius:3mm!important;
  }
  .lfp-print-poster__details{margin:0 0 2mm!important;}
  .lfp-print-poster__lastseen{padding:1.5mm 2mm!important;}
  .lfp-print-poster__lastseen span{font-size:4.5mm!important;}
  .lfp-print-poster__lastseen strong{font-size:8mm!important;}
  .lfp-print-poster__lastseen em{font-size:5mm!important;}
  .lfp-print-poster__qr{grid-template-columns:34mm 1fr!important;gap:5mm!important;min-height:39mm!important;padding:3mm!important;}
  .lfp-print-poster__qr img{width:32mm!important;height:32mm!important;}
  .lfp-print-poster__qr p{font-size:5mm!important;}
  .lfp-print-poster__qr p strong{font-size:8.5mm!important;}
  .lfp-print-poster__footer{font-size:4.5mm!important;margin-top:2mm!important;padding:2mm!important;}
}


/* v2.9.3 poster photo frame: red border follows the actual image edges while preserving the full uploaded photo */
@media print{
  .lfp-print-poster__pet{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:108mm!important;
    object-fit:contain!important;
    object-position:center!important;
    background:#fff!important;
    margin:0 auto 2mm!important;
    border:2mm solid #d60000!important;
    border-radius:3mm!important;
    box-sizing:border-box!important;
  }
  .lfp-print-poster__pet--portrait{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:108mm!important;
  }
}

/* v2.9.4: ensure map overlay close state wins over positioned card styling */
.lfp-map-section__card[hidden], .lfp-map-section__card[aria-hidden="true"] { display: none !important; }

/* v2.9.5: public map overlay close and map autofit support */
.lfp-map-section__card.is-hidden { display: none !important; }
.lfp-map-section__close { position: absolute; z-index: 9999; pointer-events: auto; }
.lfp-map-section__card { pointer-events: auto; }


/* v2.9.6 fixes: claim form spacing and reliable public map rendering */
.lfp .lfp-claim { padding: 1.35rem !important; }
.lfp .lfp-claim-form { padding: 0 !important; gap: 1rem !important; }
.lfp .lfp-claim-form .lfp-sighting-grid { gap: 1rem !important; margin-bottom: 1rem !important; }
.lfp .lfp-claim-form .lfp-field { margin-bottom: 1rem !important; }
.lfp .lfp-claim-form .lfp-consent { margin: 1rem 0 !important; padding: .85rem 1rem !important; }
.lfp .lfp-map--full { min-height: 520px; background: #eef2f7; }
@media (max-width: 720px) {
  .lfp .lfp-claim { padding: 1rem !important; }
  .lfp .lfp-claim-form .lfp-sighting-grid { display: block !important; }
  .lfp .lfp-map--full { min-height: 420px; }
}


/* v2.10.3 found profile map and claim form tightening */
.lfp-claim {
	padding: clamp(0.9rem, 2vw, 1.25rem) !important;
}
.lfp-claim .lfp-form {
	gap: 0.75rem !important;
}
.lfp-claim .lfp-grid {
	gap: 0.7rem 0.9rem !important;
}
.lfp-claim .lfp-field,
.lfp-claim .lfp-form label {
	gap: 0.25rem !important;
}
.lfp-claim input[type="text"],
.lfp-claim input[type="email"],
.lfp-claim input[type="tel"],
.lfp-claim textarea {
	padding: 0.55rem 0.7rem !important;
	min-height: 40px !important;
}
.lfp-claim textarea {
	min-height: 86px !important;
}
.lfp-claim .lfp-consent {
	margin: 0.1rem 0 !important;
}

/* v2.10.8 found-pet pre-check */
.lfp-found-review {
	margin-top: 18px;
}
.lfp-found-review__filter {
	max-width: 360px;
	margin: 14px 0;
}
.lfp-found-review__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 12px;
	max-height: 430px;
	overflow: auto;
	padding: 2px 2px 6px;
}
.lfp-found-review__item {
	display: grid;
	grid-template-columns: 82px 1fr;
	gap: 12px;
	align-items: start;
	padding: 12px;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 14px;
	background: #fff;
}
.lfp-found-review__media {
	display: block;
}
.lfp-found-review__img {
	display: block;
	width: 82px;
	height: 82px;
	object-fit: cover;
	border-radius: 12px;
	background: #eef2f7;
}
.lfp-found-review__title {
	margin: 0 0 4px;
	font-size: 1rem;
	line-height: 1.25;
}
.lfp-found-review__title a {
	color: inherit;
	text-decoration: none;
}
.lfp-found-review__meta,
.lfp-found-review__loc,
.lfp-found-review__none,
.lfp-found-review__continue {
	margin: 0 0 8px;
}
.lfp-found-review__meta,
.lfp-found-review__loc {
	font-size: 0.92rem;
	color: #475569;
}
@media (max-width: 520px) {
	.lfp-found-review__item {
		grid-template-columns: 72px 1fr;
		gap: 10px;
	}
	.lfp-found-review__img {
		width: 72px;
		height: 72px;
	}
}

/* v2.10.9 claim form compacting and found review photo zoom */
.lfp .lfp-claim {
	padding: 1rem 1.1rem !important;
}
.lfp .lfp-claim h3 {
	margin: 0 0 .55rem !important;
}
.lfp .lfp-claim .lfp-muted {
	margin: 0 0 .65rem !important;
}
.lfp .lfp-claim-form,
.lfp .lfp-claim .lfp-form {
	display: grid !important;
	gap: .55rem !important;
}
.lfp .lfp-claim-form .lfp-sighting-grid {
	gap: .55rem .75rem !important;
	margin: 0 !important;
}
.lfp .lfp-claim-form .lfp-field,
.lfp .lfp-claim-form label.lfp-field {
	margin: 0 !important;
	padding: 0 !important;
	gap: .18rem !important;
}
.lfp .lfp-claim-form .lfp-field__label {
	margin: 0 0 .12rem !important;
}
.lfp .lfp-claim-form input[type="text"],
.lfp .lfp-claim-form input[type="email"],
.lfp .lfp-claim-form input[type="tel"] {
	height: 38px !important;
	min-height: 38px !important;
	padding: .42rem .65rem !important;
}
.lfp .lfp-claim-form textarea {
	min-height: 78px !important;
	padding: .5rem .65rem !important;
}
.lfp .lfp-claim-form .lfp-consent {
	margin: .35rem 0 .15rem !important;
	padding: .65rem .85rem !important;
}
.lfp .lfp-claim-form .lfp-btn {
	margin-top: .1rem !important;
}
.lfp-found-review__media {
	border: 0;
	padding: 0;
	background: transparent;
	cursor: zoom-in;
	text-align: left;
}
.lfp-image-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(15, 23, 42, .76);
}
.lfp-image-modal[hidden] { display: none !important; }
.lfp-image-modal__inner {
	position: relative;
	max-width: min(940px, 94vw);
	max-height: 90vh;
}
.lfp-image-modal__img {
	display: block;
	max-width: 100%;
	max-height: 90vh;
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.lfp-image-modal__close {
	position: absolute;
	top: -14px;
	right: -14px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: #0f172a;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}


/* v3.0.2: Keep marketing preferences accessible without making them visually dominant. */
.lfp-preferences-details summary{cursor:pointer;font-weight:700;list-style:revert;}
.lfp-preferences-details summary::marker{color:currentColor;}
.lfp-preferences-details form{margin-top:1rem;}


/* v3.0.9 poster contact choices */
.lfp-poster-contact{margin:16px 0;padding:16px;border:1px solid #d1d5db;border-radius:12px;background:#f8fafc;}
.lfp-poster-contact h4{margin:0 0 6px;}
.lfp-poster-contact .lfp-field{margin:8px 0 14px;}
.lfp-poster-contact__privacy{margin:14px 0;}
.lfp-print-poster__contact{display:flex;flex-direction:column;align-items:center;gap:3px;margin:0 0 2mm;padding:2mm 3mm;border:3px solid #111827;border-radius:3mm;text-align:center;font-weight:800;}
.lfp-print-poster__contact strong{font-size:6mm;text-transform:uppercase;}
.lfp-print-poster__contact span{font-size:5.2mm;line-height:1.15;overflow-wrap:anywhere;}
@media print{.lfp-poster-contact{display:none!important;}.lfp-print-poster__contact{display:flex!important;}}


/* v3.0.10 poster response layout: keep contact details and QR code balanced on a single poster */
.lfp-print-poster__response{margin:2mm 0 0;}
.lfp-print-poster__eyebrow{display:block;font-size:3.1mm;line-height:1.1;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#4b5563;margin:0 0 1mm;}
.lfp-print-poster__contact-heading{display:block;font-size:5.6mm;line-height:1.05;font-weight:900;text-transform:uppercase;color:#111827;margin:0 0 1.5mm;}
.lfp-print-poster__contact-line{display:block;margin:0 0 1.2mm;}
.lfp-print-poster__contact-line:last-child{margin-bottom:0;}
.lfp-print-poster__contact-line small{display:block;font-size:3.2mm;line-height:1.1;text-transform:uppercase;font-weight:800;color:#4b5563;margin:0 0 .5mm;}
.lfp-print-poster__contact-line span{display:block;font-size:4.6mm;line-height:1.15;font-weight:900;color:#111827;overflow-wrap:anywhere;word-break:break-word;}
.lfp-print-poster__qr-copy p{margin:0;font-size:4mm;line-height:1.2;font-weight:700;color:#374151;text-transform:none;}
@media print{
  .lfp-poster-contact{display:none!important;}
  .lfp-print-poster__response{display:grid!important;gap:3mm!important;align-items:stretch!important;flex:0 0 auto!important;}
  .lfp-print-poster__response--has-contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  .lfp-print-poster__response--qr-only{grid-template-columns:minmax(0,1fr)!important;max-width:112mm!important;margin:2mm auto 0!important;}
  .lfp-print-poster__qr-panel,
  .lfp-print-poster__contact-panel{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:2.8mm 3.2mm!important;
    border:1.2mm solid #111827!important;
    border-radius:3mm!important;
    background:#fff!important;
    box-sizing:border-box!important;
    min-height:34mm!important;
  }
  .lfp-print-poster__qr-panel{display:grid!important;grid-template-columns:30mm minmax(0,1fr)!important;gap:3mm!important;align-items:center!important;margin:0!important;}
  .lfp-print-poster__response--qr-only .lfp-print-poster__qr-panel{grid-template-columns:38mm minmax(0,1fr)!important;min-height:40mm!important;}
  .lfp-print-poster__qr-panel img{display:block!important;width:28mm!important;height:28mm!important;padding:0!important;background:#fff!important;justify-self:center!important;}
  .lfp-print-poster__response--qr-only .lfp-print-poster__qr-panel img{width:36mm!important;height:36mm!important;}
  .lfp-print-poster__qr-copy strong{display:block!important;font-size:6.2mm!important;line-height:1.05!important;font-weight:900!important;color:#111827!important;margin:0 0 1mm!important;text-transform:uppercase!important;}
  .lfp-print-poster__qr-copy p{display:block!important;font-size:3.8mm!important;line-height:1.2!important;font-weight:700!important;color:#374151!important;margin:0!important;}
  .lfp-print-poster__contact-panel{margin:0!important;text-align:left!important;align-items:flex-start!important;}
  .lfp-print-poster__contact-heading{display:block!important;font-size:5.3mm!important;line-height:1.05!important;font-weight:900!important;color:#111827!important;margin:0 0 1.6mm!important;text-transform:uppercase!important;}
  .lfp-print-poster__contact-line span{font-size:4.4mm!important;line-height:1.15!important;}
  .lfp-print-poster__contact-line--email span{font-size:3.9mm!important;line-height:1.15!important;}
  .lfp-print-poster__qr{display:none!important;}
  .lfp-print-poster__contact{display:none!important;}
}


/* v3.0.11 final poster layout fix. Critical rules are also printed inline on the manage page to avoid cached CSS breaking poster output. */
@media print{
  @page{size:A4 portrait;margin:7mm!important;}
  .lfp-print-poster .lfp-print-poster__qr-panel>img{width:24mm!important;height:24mm!important;max-width:24mm!important;max-height:24mm!important;min-width:24mm!important;min-height:24mm!important;margin:0!important;border:0!important;border-radius:0!important;padding:0!important;object-fit:contain!important;}
  .lfp-print-poster__response--qr-only .lfp-print-poster__qr-panel>img{width:28mm!important;height:28mm!important;max-width:28mm!important;max-height:28mm!important;min-width:28mm!important;min-height:28mm!important;}
  .lfp-print-poster__qr-copy{display:block!important;visibility:visible!important;text-align:left!important;}
  .lfp-print-poster__qr-copy strong{display:block!important;font-size:5.2mm!important;line-height:1.02!important;margin:0 0 .8mm!important;color:#111827!important;font-weight:900!important;text-transform:uppercase!important;}
  .lfp-print-poster__qr-copy p{display:block!important;font-size:3.1mm!important;line-height:1.18!important;margin:0!important;color:#374151!important;font-weight:800!important;text-transform:none!important;}
  .lfp-print-poster__response{display:grid!important;gap:3mm!important;margin:0!important;width:100%!important;box-sizing:border-box!important;}
  .lfp-print-poster__response--has-contact{grid-template-columns:1fr 1fr!important;}
  .lfp-print-poster__response--qr-only{grid-template-columns:1fr!important;max-width:132mm!important;align-self:center!important;}
  .lfp-print-poster__qr-panel{display:grid!important;grid-template-columns:25mm minmax(0,1fr)!important;gap:2.5mm!important;align-items:center!important;min-height:31mm!important;padding:2.3mm 2.7mm!important;border:1mm solid #111827!important;border-radius:2.5mm!important;overflow:hidden!important;}
  .lfp-print-poster__response--qr-only .lfp-print-poster__qr-panel{grid-template-columns:29mm minmax(0,1fr)!important;min-height:32mm!important;}
}

/* v3.0.19 validation, photo privacy confirmation and image reporting */
.lfp-validation-message {
	margin: 0.75rem 0;
	padding: 0.85rem 1rem;
	border: 1px solid #fecaca;
	border-radius: 12px;
	background: #fef2f2;
	color: #991b1b;
	font-weight: 700;
}
.lfp-photo-face-confirm {
	margin-top: 0.9rem;
	align-items: flex-start;
}
.lfp-image-report {
	margin-top: 0.45rem;
	font-size: 0.82rem;
	text-align: right;
}
.lfp-image-report__button {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--lfp-muted);
	text-decoration: underline;
	cursor: pointer;
	font: inherit;
	padding: 0.2rem 0;
}
.lfp-image-report__button:hover,
.lfp-image-report__button:focus {
	color: var(--lfp-fg);
}
.lfp-image-report__button:disabled {
	opacity: 0.65;
	cursor: wait;
}
.lfp-image-report__status {
	display: block;
	margin-top: 0.2rem;
	font-weight: 600;
}


/* v3.0.20 make public image reporting visible without dominating the pet page */
.lfp-single__media .lfp-image-report {
	margin-top: 0.6rem;
	font-size: 0.88rem;
	text-align: right;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report {
	position: absolute;
	right: 0.85rem;
	bottom: 0.85rem;
	z-index: 6;
	margin: 0;
	text-align: right;
}
.lfp-image-report__button {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border: 1px solid rgba(15, 23, 42, 0.18);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
	color: #374151;
	font-weight: 800;
	line-height: 1.1;
	text-decoration: none;
	padding: 0.48rem 0.72rem;
}
.lfp-image-report__button::before {
	content: "⚑";
	font-size: 0.95em;
	line-height: 1;
}
.lfp-image-report__button:hover,
.lfp-image-report__button:focus {
	background: #fff;
	border-color: rgba(15, 23, 42, 0.32);
	color: #111827;
	text-decoration: none;
	outline: 2px solid rgba(14, 165, 233, 0.25);
	outline-offset: 2px;
}
.lfp-pet-hero .lfp-image-report__status {
	background: rgba(255, 255, 255, 0.96);
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
	color: #111827;
	padding: 0.38rem 0.62rem;
}
@media (max-width: 640px) {
	.lfp-pet-hero .lfp-single__media .lfp-image-report {
		right: 0.65rem;
		bottom: 0.65rem;
	}
	.lfp-image-report__button {
		font-size: 0.82rem;
		padding: 0.42rem 0.62rem;
	}
}


/* v3.0.21 make image reporting impossible to miss on public pet profiles */
.lfp-image-report--public-visible {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.55rem;
	margin: -0.55rem 0 0.35rem;
	padding: 0 0.2rem;
	font-size: 0.88rem;
	text-align: right;
}
.lfp-image-report--public-visible .lfp-image-report__button {
	background: #ffffff;
	border-color: #cbd5e1;
	box-shadow: 0 4px 16px rgba(15, 23, 42, 0.10);
}
.lfp-image-report--public-visible .lfp-image-report__status {
	display: inline-block;
	margin: 0;
	font-size: 0.84rem;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}
@media (max-width: 640px) {
	.lfp-image-report--public-visible {
		justify-content: flex-start;
		margin-top: -0.25rem;
	}
}


/* v3.0.22 image report overlay and admin image/report deletion polish */
.lfp-pet-hero .lfp-single__media {
	position: relative !important;
	overflow: hidden !important;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay {
	position: absolute !important;
	right: 0.75rem !important;
	bottom: 0.75rem !important;
	z-index: 50 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 0.45rem !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: right !important;
	pointer-events: auto !important;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay .lfp-image-report__button {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.35rem !important;
	border: 1px solid rgba(15, 23, 42, 0.24) !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, 0.96) !important;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22) !important;
	color: #111827 !important;
	font-size: 0.84rem !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	padding: 0.48rem 0.72rem !important;
	text-decoration: none !important;
	cursor: pointer !important;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay .lfp-image-report__button:hover,
.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay .lfp-image-report__button:focus {
	background: #ffffff !important;
	border-color: rgba(15, 23, 42, 0.42) !important;
	outline: 2px solid rgba(37, 99, 235, 0.32) !important;
	outline-offset: 2px !important;
}
.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay .lfp-image-report__status {
	background: rgba(255, 255, 255, 0.96) !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16) !important;
	color: #111827 !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	padding: 0.4rem 0.62rem !important;
}
.lfp-image-report--public-visible {
	display: none !important;
}
@media (max-width: 640px) {
	.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay {
		right: 0.55rem !important;
		bottom: 0.55rem !important;
	}
	.lfp-pet-hero .lfp-single__media .lfp-image-report--overlay .lfp-image-report__button {
		font-size: 0.78rem !important;
		padding: 0.42rem 0.58rem !important;
	}
}
.lfp-admin-photo-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
	max-width: 240px;
}
.lfp-admin-photo-action {
	position: relative;
	width: 64px;
}
.lfp-admin-photo-action img {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: cover;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	background: #f6f7f7;
}
.lfp-admin-photo-action form {
	position: absolute;
	right: -6px;
	bottom: -6px;
	margin: 0 !important;
}
.lfp-admin-photo-action .button {
	min-height: 24px;
	line-height: 20px;
	padding: 0 6px;
}


/* v3.0.23 lock image-report control to the actual photo, not the wider hero/map layout */
.lfp-pet-hero .lfp-single__media {
	position: relative !important;
	overflow: visible !important;
}
.lfp-single__photo-frame {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: clamp(280px, 35vw, 390px) !important;
	overflow: hidden !important;
	background: var(--lfp-surface-2, #eef4fb) !important;
}
.lfp-pet-hero .lfp-single__photo-frame .lfp-single__photo,
.lfp-pet-hero .lfp-single__photo-frame .lfp-single__photo--empty {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: clamp(280px, 35vw, 390px) !important;
	object-fit: cover !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
}
.lfp-single__photo-frame .lfp-badge {
	position: absolute !important;
	top: 0.9rem !important;
	left: 0.9rem !important;
	z-index: 30 !important;
}
.lfp-single__photo-frame .lfp-image-report--overlay {
	position: absolute !important;
	right: 0.75rem !important;
	bottom: 0.75rem !important;
	left: auto !important;
	top: auto !important;
	z-index: 9999 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: auto !important;
	transform: none !important;
}
.lfp-single__photo-frame .lfp-image-report--overlay .lfp-image-report__button {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.35rem !important;
	min-height: 34px !important;
	border: 1px solid rgba(15, 23, 42, 0.28) !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, 0.97) !important;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.24) !important;
	color: #111827 !important;
	font-size: 0.84rem !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	padding: 0.48rem 0.72rem !important;
	text-decoration: none !important;
	cursor: pointer !important;
}
.lfp-single__photo-frame .lfp-image-report--overlay .lfp-image-report__status {
	background: rgba(255,255,255,0.97) !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 24px rgba(15,23,42,.16) !important;
	color: #111827 !important;
	font-size: .82rem !important;
	font-weight: 700 !important;
	margin: 0 0 0 .35rem !important;
	padding: .4rem .62rem !important;
}
@media (max-width: 640px) {
	.lfp-single__photo-frame .lfp-image-report--overlay {
		right: 0.55rem !important;
		bottom: 0.55rem !important;
	}
	.lfp-single__photo-frame .lfp-image-report--overlay .lfp-image-report__button {
		font-size: 0.78rem !important;
		padding: 0.42rem 0.58rem !important;
	}
}

/* -------------------------------------------------------------------------
 * Narrow host/sidebar protection (v3.0.24)
 *
 * Page-level media queries cannot tell how wide a widget/sidebar actually is.
 * On a desktop page the viewport may be wide while the shortcode host is only
 * 250-350px, which previously left the card grid at 3 columns and squeezed
 * each card into a thin vertical strip. Use a container query so the layout
 * responds to the shortcode's own available width.
 * ---------------------------------------------------------------------- */
.lfp-grid-wrap {
	container-name: lfp-card-list;
	container-type: inline-size;
	width: 100%;
	min-width: 0;
}

.lfp-grid-wrap .lfp-cards,
.lfp-grid-wrap .lfp-card,
.lfp-grid-wrap .lfp-card__link,
.lfp-grid-wrap .lfp-card__body {
	min-width: 0;
}

.lfp-card__title,
.lfp-card__meta,
.lfp-card__status-text {
	overflow-wrap: anywhere;
	word-break: normal;
}

@container lfp-card-list (max-width: 520px) {
	.lfp-grid-wrap--custom .lfp-cards:not(.lfp-cards--slider),
	.lfp-cards,
	.lfp-cards--compact {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.9rem;
	}

	.lfp-cards--slider .lfp-card,
	.lfp-grid-wrap--custom .lfp-cards--slider .lfp-card {
		width: calc(100% - 0.5rem);
		max-width: none;
		flex-basis: calc(100% - 0.5rem);
	}

	.lfp-grid-wrap--slider .lfp-grid-wrap__head {
		align-items: flex-start;
	}

	.lfp-card__body {
		padding: 0.8rem;
	}

	.lfp-card__title {
		font-size: 1rem;
		line-height: 1.3;
	}
}

/* Fallback for browsers without CSS container-query support. */
@supports not (container-type: inline-size) {
	:is(.widget, .sidebar, .site-sidebar, aside) .lfp-grid-wrap .lfp-cards:not(.lfp-cards--slider),
	:is(.widget, .sidebar, .site-sidebar, aside) .lfp-grid-wrap .lfp-cards--compact {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:is(.widget, .sidebar, .site-sidebar, aside) .lfp-cards--slider .lfp-card {
		width: calc(100% - 0.5rem) !important;
		max-width: none !important;
		flex-basis: calc(100% - 0.5rem) !important;
	}
}
