/**
 * PropFirmAuthority Core Manager — frontend shortcode styles.
 *
 * STRUCTURAL ONLY: spacing, alignment, table semantics. Colors come from the
 * --pfacp-* design tokens below, which are editable from the plugin's
 * PFA Style settings page. Components reference these tokens directly so a
 * single palette change recolors every market's cards and tables.
 */

/* =====================================================================
 * Editable design tokens (PFA Style settings)
 *
 * These defaults mirror the site's dark navy + gold design system. The
 * settings page overrides them via an inline CUSTOM PROPERTY BINDING block,
 * so changing a picker immediately recolors every component on the frontend.
 * ===================================================================== */

:root {
	--pfacp-navy: #0A1628;          /* Table page background */
	--pfacp-card: #111C2E;          /* Card / row / form backgrounds */
	--pfacp-card-2: #152338;        /* Header cells, selects, raised surfaces */
	--pfacp-text: #E8ECF4;          /* Primary body text */
	--pfacp-muted: #8A9BB8;         /* Secondary / muted text */
	--pfacp-border: rgba(255, 255, 255, 0.08); /* Row / cell borders */
	--pfacp-gold: #F4B400;          /* Accent — firm titles, active tabs, CTA buttons */
	--pfacp-gold-2: #FFCA28; /* Lighter gold — fallback (no color-mix support) */
	--pfacp-gold-2: color-mix(in srgb, #F4B400 70%, #fff); /* Lighter gold */
	--pfacp-blue: #1E5BA8;          /* Secondary buttons (Hover state) */
	--pfacp-green: #67c67c;         /* "Good" / positive checkmark badges */
	--pfacp-red: #E0564F;           /* "Bad" / restriction cross badges */
	--pfacp-on-gold: #1a1200;       /* Dark text sitting on gold buttons */
	--pfacp-toggle-border: #263348; /* Toggle track border */
}

/* =====================================================================
 * Price card
 * A clean, theme-inheriting card: logo + title, promo badge, tagline,
 * account-size tabs, price line, firm stats list, and a CTA button.
 * No hardcoded brand palette — uses currentColor / transparent so it
 * adapts to the active theme.
 *
 * When several price cards render together (no id passed), they sit in a
 * responsive grid so they appear side by side rather than stacked.
 * ===================================================================== */

.pfacp-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	align-items: stretch;
}

.pfacp-cards-grid .pfacp-price-card {
	max-width: none;
	width: 100%;
}

@media (max-width: 1100px) {
	.pfacp-cards-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.pfacp-cards-grid {
		grid-template-columns: 1fr;
	}
}

.pfacp-price-card {
	position: relative;
	max-width: 420px;
	border: 1px solid var(--pfacp-border, rgba(255, 255, 255, 0.08));
	border-radius: 12px;
	padding: 20px;
	background: var(--pfacp-card, #111C2E);
	color: var(--pfacp-text, #E8ECF4);
	box-shadow: 0 2px 18px rgba(0, 0, 0, .06);
	display: flex;
	flex-direction: column;
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

/* Corner badge — sits fully INSIDE the card's top-right corner.
   Pulls its text from the Headline / Best-price Tagline field; only
   rendered (in class-shortcodes.php) when that field is filled in.
   Contained: no rotation, no overflow, so it never escapes the card. */
.pfacp-ribbon {
	position: absolute;
	top: 10px;
	right: 10px;
	background: var(--pfacp-blue, #1E5BA8);
	color: #fff;
	text-align: center;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	padding: 4px 12px;
	border-radius: 6px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: calc(100% - 20px);
	z-index: 2;
}

/* The tagline live inside the flex header — hide that node's direct text
   wrapper so the corner ribbon is the single visual tagline element. */
.pfacp-card-head .pfacp-ribbon {
	position: absolute;
}

/* Smooth lift + gold glow on hover (all three markets). */
.pfacp-price-card:hover {
	transform: translateY(-6px);
	border-color: var(--pfacp-accent, #F4B400);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .28), 0 0 0 1px rgba(244, 180, 0, .35), 0 0 24px rgba(244, 180, 0, .20);
}

/* Header: logo + name (+ promo badge) and tagline */
.pfacp-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.pfacp-logo-wrap,
.pfacp-tbl-logo {
	display: inline-flex;
}

.pfacp-logo {
	max-height: 48px;
	width: auto;
	max-width: 120px;
	object-fit: contain;
}

.pfacp-logo-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	font-weight: 700;
	border: 1px solid currentColor;
	font-size: 1.1rem;
}

/* Firm identity group — logo + name (+ promo badge) sit together.
   nowrap keeps the firm name on the SAME line as the logo (long names
   shrink with an ellipsis inside .pfacp-head-title) so they always
   line up vertically instead of the name dropping below the logo. */
.pfacp-firm-body {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: nowrap;
	min-width: 0;
}

/* Price card (only): give the logo a fixed, centered box so logos of any
   source aspect ratio render at a consistent size and sit exactly next to
   the firm name — correctly lined up on every card. Scoped to the card head
   so the deals table and compare logos are unaffected. */
.pfacp-card-head .pfacp-logo-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 32px;
}
.pfacp-card-head .pfacp-logo {
	display: block;
	height: 44px;
	width: auto;
	max-width: 120px;
	object-fit: contain;
	border-radius: 8px;
}

.pfacp-head-title {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	min-width: 0;
}

/* Price card (only): nudge the firm-name heading down so it lines up with
   the logo. Margin goes on the HEADING only — the logo (logo-wrap / logo) is
   left untouched. Scoped to the card head so the deals and compare tables
   are unaffected. */
.pfacp-card-head .pfacp-head-title {
	margin-top: 15px;
}

.pfacp-title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 1.15;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pfacp-code-badge {
	font-weight: 800;
	font-size: .75rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 999px;
	border: 1px solid currentColor;
}

.pfacp-tagline {
	margin: 4px 0 0;
	width: 100%;
	font-size: .95rem;
	font-style: italic;
	opacity: .85;
}

/* Account size tabs */
.pfacp-tier-block {
	margin: 18px 0 6px;
}

.pfacp-tier-label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	opacity: .7;
}

.pfacp-tier-toggles {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.pfacp-tier-tab {
	cursor: pointer;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid currentColor;
	background: transparent;
	font-weight: 700;
	font-size: .85rem;
	opacity: .7;
	transition: opacity .15s ease, background .15s ease;
}

.pfacp-tier-tab:hover {
	opacity: 1;
}

.pfacp-tier-tab.is-active {
	opacity: 1;
	background: var(--pfacp-gold, #F4B400);
	color: var(--pfacp-on-gold, #1a1200);
	border-color: transparent;
}

/* Active tier data (price + account capital) */
.pfacp-tier-data-wrap {
	margin-top: 16px;
}

.pfacp-tier-data {
	display: none;
}

.pfacp-tier-data.is-active {
	display: block;
}

.pfacp-account-capital {
	margin: 0 0 4px;
	font-size: .9rem;
	opacity: .8;
}

.pfacp-account-capital strong {
	font-weight: 800;
}

.pfacp-price-line {
	margin: 0 0 8px;
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.pfacp-from {
	font-size: .9rem;
	opacity: .75;
}

.pfacp-price-now {
	font-size: 1.7rem;
	font-weight: 800;
	line-height: 1;
}

.pfacp-price-was {
	font-size: .95rem;
	text-decoration: line-through;
	opacity: .55;
}

.pfacp-extra {
	font-size: .85rem;
	opacity: .8;
}

/* User-added extra facts, one line per tier */
.pfacp-tier-facts {
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.pfacp-tier-facts li {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	align-items: baseline;
	font-size: .85rem;
	line-height: 1.35;
}

.pfacp-tier-fact-label {
	opacity: .7;
}

.pfacp-tier-fact-value {
	font-weight: 700;
	text-align: right;
}

/* Firm stats bullets */
.pfacp-stats {
	list-style: none;
	margin: 16px 0 20px;
	padding: 0;
	border-top: 1px solid currentColor;
	opacity: .9;
}

.pfacp-stats li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 2px;
	border-bottom: 1px solid currentColor;
	font-size: .9rem;
}

.pfacp-stat-label {
	opacity: .7;
}

.pfacp-stat-value {
	font-weight: 700;
	text-align: right;
}

/* CTA button */
.pfacp-cta {
	display: block;
	text-align: center;
	margin-top: auto;
	padding: 13px 22px;
	border-radius: 8px;
	background: var(--pfacp-gold, #F4B400);
	color: var(--pfacp-on-gold, #1a1200);
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	transition: background .15s ease, opacity .15s ease;
}

.pfacp-cta:hover {
	background: var(--pfacp-blue, #1E5BA8);
	color: #fff;
	text-decoration: none;
}

/* Copyable promo-code button on price cards (sits above the CTA). */
.pfacp-card-code-btn {
	display: block;
	width: 100%;
	margin: 0 0 10px !important;
	padding: 9px 14px;
	font-family: inherit;
	font-size: .85rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-align: center;
	font-weight: 700;
	border-radius: 8px;
	border: 1px dashed var(--pfacp-gold, #F4B400);
	background: transparent;
	color: var(--pfacp-gold, #F4B400);
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.pfacp-card-code-btn:hover,
.pfacp-card-code-btn:focus {
	background: var(--pfacp-blue, #1E5BA8);
	border-color: var(--pfacp-blue, #1E5BA8);
	color: #fff;
}

.pfacp-card-code-btn.is-copied {
	background: var(--pfacp-green, #67c67c);
	border-color: var(--pfacp-green, #67c67c);
	color: #fff;
}

/* Deals + compare tables */
.pfacp-deals-wrap,
.pfacp-compare-wrap {
	width: 100%;
	overflow-x: auto;
}

.pfacp-deals-table,
.pfacp-compare-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: visible;
}

.pfacp-deals-table th,
.pfacp-deals-table td,
.pfacp-compare-table th,
.pfacp-compare-table td {
	padding: 12px 14px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid;
}

.pfacp-deals-table thead th,
.pfacp-compare-table thead th {
	font-weight: 700;
}

.pfacp-deal-firm,
.pfacp-compare-table .pfacp-corner {
	font-weight: 600;
}

.pfacp-deal-firm .pfacp-tbl-logo {
	margin-right: 8px;
}

.pfacp-code {
	display: inline-block;
	font-weight: 700;
	padding: 2px 10px;
	border-radius: 999px;
	border: 1px solid currentColor;
	white-space: nowrap;
}

.pfacp-bool {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 600;
}

.pfacp-bool.is-yes {
	border: 1px solid currentColor;
}

.pfacp-bool.is-no {
	opacity: .55;
}

.pfacp-deal-cta {
	display: inline-block;
	padding: 8px 16px;
	border-radius: 6px;
	font-weight: 700;
	text-decoration: none;
}

.pfacp-deals-empty,
.pfacp-compare-empty {
	padding: 20px;
	font-style: italic;
}

/* Firm identity head — shown once, shared by every deal row / evaluation plan. */
.pfacp-deal-firm-head,
.pfacp-compare-firm-head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 14px;
}

/* Market toggle (Futures / Forex / Crypto) — sliding segmented control. */
.pfacp-market-toggle {
	margin: 28px 0 56px;
	text-align: center;
}

/* Space between the toggle switch and the table that follows it. */
.pfacp-market-panel {
	margin-top: 28px;
}

.pfacp-market-tabs {
	position: relative;
	display: inline-flex;
	gap: 8px;
	flex-wrap: nowrap;
	justify-content: center;
	padding: 6px;
	border: 1px solid var(--pfacp-toggle-border, #263348);
	border-radius: 999px;
	background: var(--pfacp-card, #111C2E);
	width: auto;
}

.pfacp-market-tabs .pfacp-market-slider {
	position: absolute;
	top: 6px;
	left: 0;
	bottom: 6px;
	width: 0;
	border-radius: 999px;
	background: var(--pfacp-gold, #F4B400);
	box-shadow: 0 2px 8px rgba(10,22,40,.25);
	transition: left .28s cubic-bezier(.4,0,.2,1), width .28s cubic-bezier(.4,0,.2,1);
	pointer-events: none;
	z-index: 0;
}

.pfacp-market-tab {
	position: relative;
	cursor: pointer;
	padding: 9px 20px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font-weight: 700;
	font-size: .9rem;
	line-height: 1;
	color: var(--pfacp-text, #E8ECF4);
	opacity: .65;
	transition: color .2s ease, opacity .2s ease;
	z-index: 1;
	white-space: nowrap;
}

.pfacp-market-tab:hover {
	opacity: 1;
}

.pfacp-market-tab.is-active {
	opacity: 1;
	color: var(--pfacp-on-gold, #1a1200);
}


.pfacp-compare-firm {
	font-weight: 700;
	font-size: 1.15rem;
}

.pfacp-deal-firm-head .pfacp-compare-firm,
.pfacp-compare-firm-head .pfacp-compare-firm {
	font-weight: 700;
	font-size: 1.15rem;
}

/* =====================================================================
 * Compare app — classic side-by-side + all-firms table.
 * Port of the former dark-navy/gold [pfa_compare_pro] design,
 * scoped under .pfacp-compare-app so it can't leak onto other tables.
 * ===================================================================== */

.pfacp-compare-app {
	--pfa-navy: var(--pfacp-navy);
	--pfa-card: var(--pfacp-card);
	--pfa-card-2: var(--pfacp-card-2);
	--pfa-text: var(--pfacp-text);
	--pfa-muted: var(--pfacp-muted);
	--pfa-border: var(--pfacp-border);
	--pfa-gold: var(--pfacp-gold);
	--pfa-gold-2: var(--pfacp-gold-2);
	--pfa-blue: var(--pfacp-blue);
	--pfa-green: var(--pfacp-green);
	--pfa-red: var(--pfacp-red);
	--pfa-on-gold: var(--pfacp-on-gold);

	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
	color: var(--pfa-text);
	background: var(--pfa-navy);
	border: 1px solid var(--pfa-border);
	border-radius: 16px;
	padding: 24px;
	margin: 24px auto;
	/* Full width of the theme container, centered (no viewport breakout). */
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.pfacp-compare-app * { box-sizing: border-box; }

.pfacp-compare-app .pfacp-empty {
	color: var(--pfa-muted);
	padding: 32px;
	text-align: center;
}

/* Tabs */
.pfacp-compare-app .pfacp-tabs {
	display: inline-flex;
	gap: 6px;
	background: var(--pfa-card);
	border: 1px solid var(--pfa-border);
	border-radius: 999px;
	padding: 4px;
	margin-bottom: 20px;
}

.pfacp-compare-app .pfacp-tab {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--pfa-muted);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	padding: 8px 18px;
	border-radius: 999px;
	cursor: pointer;
	transition: background .18s ease, color .18s ease;
}

.pfacp-compare-app .pfacp-tab:hover { color: var(--pfa-text); }

.pfacp-compare-app .pfacp-tab.is-active {
	background: linear-gradient(135deg, var(--pfa-gold), var(--pfa-gold-2));
	color: var(--pfa-on-gold);
	box-shadow: 0 4px 14px rgba(244, 180, 0, .25);
}

.pfacp-compare-app .pfacp-view { display: none; }
.pfacp-compare-app .pfacp-view.is-active { display: block; }

/* Toolbar */
.pfacp-compare-app .pfacp-compare-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}

.pfacp-compare-app .pfacp-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.pfacp-compare-app .pfacp-filter-label {
	color: var(--pfa-muted);
	font-size: 13px;
	font-weight: 600;
	margin-right: 4px;
}

.pfacp-compare-app .pfacp-filter {
	appearance: none;
	border: 1px solid var(--pfa-border);
	background: var(--pfa-card);
	color: var(--pfa-muted);
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 999px;
	cursor: pointer;
	transition: all .18s ease;
}

.pfacp-compare-app .pfacp-filter:hover { color: var(--pfa-text); border-color: rgba(255,255,255,.18); }

.pfacp-compare-app .pfacp-filter.is-active {
	background: var(--pfa-gold);
	border-color: var(--pfa-gold);
	color: var(--pfa-on-gold);
}

/* Columns dropdown */
.pfacp-compare-app .pfacp-cols { position: relative; }

.pfacp-compare-app .pfacp-cols-btn {
	appearance: none;
	border: 1px solid var(--pfa-border);
	background: var(--pfa-card);
	color: var(--pfa-text);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	padding: 7px 14px;
	border-radius: 8px;
	cursor: pointer;
	transition: all .18s ease;
}

.pfacp-compare-app .pfacp-cols-btn:hover { border-color: var(--pfa-gold); color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-cols-panel {
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	z-index: 20;
	background: var(--pfa-card-2);
	border: 1px solid var(--pfa-border);
	border-radius: 12px;
	padding: 12px;
	width: 240px;
	max-height: 320px;
	overflow: auto;
	box-shadow: 0 18px 40px rgba(0,0,0,.45);
}

.pfacp-compare-app .pfacp-cols-panel label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--pfa-text);
	padding: 5px 4px;
	cursor: pointer;
}

.pfacp-compare-app .pfacp-cols-panel label:hover { color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-cols-panel input[type="checkbox"] {
	accent-color: var(--pfa-gold);
	width: 15px;
	height: 15px;
}

/* All-firms table */
.pfacp-compare-app .pfacp-compare-table-scroll {
	overflow-x: auto;
	border: 1px solid var(--pfa-border);
	border-radius: 12px;
	background: var(--pfa-card);
}

.pfacp-compare-app .pfacp-table {
	width: 100%;
	min-width: 1080px;
	border-collapse: collapse;
	font-size: 13px;
}

.pfacp-compare-app .pfacp-table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: var(--pfa-card-2);
	color: var(--pfa-muted);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .05em;
	text-align: left;
	padding: 12px 14px;
	border-bottom: 1px solid var(--pfa-border);
	white-space: nowrap;
	cursor: pointer;
	user-select: none;
	transition: color .15s ease;
}

.pfacp-compare-app .pfacp-table thead th:hover { color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-table thead th .pfacp-sort-ico {
	display: inline-block;
	margin-left: 4px;
	font-size: 10px;
	color: var(--pfa-gold);
	opacity: .6;
}

.pfacp-compare-app .pfacp-table thead th.pfacp-sorted .pfacp-sort-ico { opacity: 1; }
.pfacp-compare-app .pfacp-table thead th.pfacp-col-firm { cursor: default; }
.pfacp-compare-app .pfacp-table thead th.pfacp-col-firm:hover { color: var(--pfa-muted); }

/* Two-phase group header row — "Evaluation Phase" / "Funded Phase" banner
   spanning its columns. Not sticky, so it scrolls off above the sortable
   column header row (which stays sticky at the top). */
.pfacp-compare-app .pfacp-table thead .pfacp-phase-row th {
	position: static;
		background: var(--pfa-card);
		background: color-mix(in srgb, var(--pfa-gold) 12%, var(--pfa-card));
	color: var(--pfa-gold);
	text-align: left;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 7px 14px;
		border-bottom: 1px solid var(--pfa-border);
		border-bottom: 1px solid color-mix(in srgb, var(--pfa-gold) 30%, var(--pfa-border));
	cursor: default;
	user-select: none;
}
.pfacp-compare-app .pfacp-table thead .pfacp-phase-row th:hover { color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-table tbody td,
.pfacp-compare-app .pfacp-table tbody th {
	padding: 12px 14px;
	border-bottom: 1px solid var(--pfa-border);
	vertical-align: top;
	color: var(--pfa-text);
	line-height: 1.45;
	/* Emoji + long URLs + $ figures wrap instead of blowing the cell width. */
	overflow-wrap: break-word;
	word-break: break-word;
}

.pfacp-compare-app .pfacp-table tbody tr:last-child td,
.pfacp-compare-app .pfacp-table tbody tr:last-child th { border-bottom: 0; }

.pfacp-compare-app .pfacp-table tbody tr:hover { background: rgba(255,255,255,.025); }

.pfacp-compare-app .pfacp-table td.pfacp-muted { color: var(--pfa-muted); }

/* Firm cell */
.pfacp-compare-app .pfacp-firm {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 190px;
}

.pfacp-compare-app .pfacp-logo-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	font-weight: 700;
	font-size: 17px;
	color: #0A1628;
	background: var(--pfa-gold);
	flex-shrink: 0;
	border: 0;
}

.pfacp-compare-app .pfacp-firm-name { font-weight: 700; font-size: 14px; line-height: 1.25; }

/* Real logo images in the compare app (table + duel) match the chip shape. */
.pfacp-compare-app .pfacp-logo-img {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 10px;
	flex-shrink: 0;
	max-height: none;
	max-width: none;
}
.pfacp-compare-app .pfacp-duel-head .pfacp-logo-img {
	width: 54px;
	height: 54px;
	border-radius: 12px;
}

/* Badges + muted */
.pfacp-compare-app .pfacp-badge {
	display: inline-block;
	border-radius: 999px;
	padding: 3px 10px;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
}

.pfacp-compare-app .pfacp-badge.good { background: rgba(103,198,124,.14); color: var(--pfa-green); }
.pfacp-compare-app .pfacp-badge.bad  { background: rgba(224,86,79,.14);  color: var(--pfa-red); }
.pfacp-compare-app .pfacp-badge.warn { background: rgba(244,180,0,.14);   color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-muted { color: var(--pfa-muted); }
.pfacp-compare-app .pfacp-count {
	margin-top: 10px;
	font-size: 12px;
	color: var(--pfa-muted);
	text-align: right;
}

/* CTA buttons */
.pfacp-compare-app .pfacp-cta {
	display: inline-block;
	background: linear-gradient(135deg, var(--pfa-gold), var(--pfa-gold-2));
	color: var(--pfa-on-gold);
	font-weight: 700;
	font-size: 12.5px;
	padding: 8px 16px;
	border-radius: 8px;
	text-decoration: none;
	white-space: nowrap;
	transition: transform .15s ease, box-shadow .15s ease;
	border: 0;
	cursor: pointer;
	font-family: inherit;
}

.pfacp-compare-app .pfacp-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(244,180,0,.3);
	color: var(--pfa-on-gold);
}

.pfacp-compare-app .pfacp-cta-buy {
	background: var(--pfa-gold);
	color: var(--pfa-navy);
}

.pfacp-compare-app .pfacp-cta-buy:hover,
.pfacp-compare-app .pfacp-cta-buy:focus {
	background: var(--pfa-blue);
	color: #ffffff;
}

.pfacp-compare-app .pfacp-cta-copy {
	background: transparent;
	border: 1px dashed rgba(244,180,0,.55);
	color: #ffffff;
}

.pfacp-compare-app .pfacp-cta-copy:hover,
.pfacp-compare-app .pfacp-cta-copy:focus {
	background: var(--pfa-blue);
	border-color: var(--pfa-blue);
	color: #ffffff;
}

.pfacp-compare-app .pfacp-cta-copy.is-copied {
	background: var(--pfa-green);
	color: var(--pfa-navy);
	transform: none;
}

/* Side-by-side */
.pfacp-compare-app .pfacp-duel-picker {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}

.pfacp-compare-app .pfacp-pick {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 0 280px;
	min-width: 0;
}

.pfacp-compare-app .pfacp-pick span {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--pfa-muted);
}

.pfacp-compare-app .pfacp-pick select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 100%;
	height: 54px;
	min-height: 54px;
	background-color: var(--pfa-card-2);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23F4B400' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
	border: 2px solid var(--pfa-border);
	color: var(--pfa-text);
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 50px;
	padding: 0 40px 0 16px;
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .18s ease;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.pfacp-compare-app .pfacp-pick select:focus { outline: none; border-color: var(--pfa-gold); }
.pfacp-compare-app .pfacp-pick select option { background: var(--pfa-card-2); color: var(--pfa-text); }

.pfacp-compare-app .pfacp-swap {
	appearance: none;
	border: 2px solid var(--pfa-border);
	background: var(--pfa-card-2);
	color: var(--pfa-gold);
	font-size: 20px;
	line-height: 1;
	width: 50px;
	height: 50px;
	border-radius: 10px;
	cursor: pointer;
	transition: all .18s ease;
	flex-shrink: 0;
}

.pfacp-compare-app .pfacp-swap:hover { border-color: var(--pfa-gold); }

.pfacp-compare-app .pfacp-duel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 18px;
	width: 100%;
	max-width: none;
}
.pfacp-compare-app .pfacp-duel-card { width: 100%; min-width: 0; }

.pfacp-compare-app .pfacp-duel-card {
	background: var(--pfa-card);
	border: 1px solid var(--pfa-border);
	border-radius: 14px;
	overflow: hidden;
}

.pfacp-compare-app .pfacp-duel-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px;
	background: var(--pfa-card-2);
	border-bottom: 1px solid var(--pfa-border);
}

.pfacp-compare-app .pfacp-duel-head .pfacp-logo-fallback {
	width: 54px;
	height: 54px;
	font-size: 21px;
}

.pfacp-compare-app .pfacp-duel-head h3 { margin: 0; font-size: 18px; line-height: 1.25; }

.pfacp-compare-app .pfacp-duel-body { padding: 6px 0; }

.pfacp-compare-app .pfacp-duel-row {
	display: grid;
	grid-template-columns: 42% 58%;
	gap: 8px;
	padding: 10px 18px;
	font-size: 13px;
	border-bottom: 1px solid rgba(255,255,255,.05);
}

.pfacp-compare-app .pfacp-duel-row:last-child { border-bottom: 0; }

.pfacp-compare-app .pfacp-duel-row .k {
	color: var(--pfa-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .03em;
}

.pfacp-compare-app .pfacp-duel-row .v { color: var(--pfa-text); overflow-wrap: break-word; min-width: 0; }
.pfacp-compare-app .pfacp-duel-row .v.pfacp-muted { color: var(--pfa-muted); }

.pfacp-compare-app .pfacp-duel-foot {
	padding: 16px 18px;
	text-align: center;
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* Plan picker on each side-by-side card */
.pfacp-compare-app .pfacp-duel-model-pick {
	padding: 12px 18px;
	border-bottom: 1px solid var(--pfa-border);
	background: rgba(255,255,255,.02);
}

.pfacp-compare-app .pfacp-duel-model-pick label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	color: var(--pfa-gold);
	margin-bottom: 6px;
}

.pfacp-compare-app .pfacp-duel-model-pick select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 100%;
	height: 44px;
	min-height: 44px;
	background-color: var(--pfa-card-2);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23F4B400' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 12px 8px;
	border: 1px solid var(--pfa-border);
	color: var(--pfa-text);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 40px;
	padding: 0 34px 0 12px;
	border-radius: 8px;
	cursor: pointer;
	transition: border-color .18s ease;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.pfacp-compare-app .pfacp-duel-model-pick select:focus { outline: none; border-color: var(--pfa-gold); }
.pfacp-compare-app .pfacp-duel-model-pick select option { background: var(--pfa-card-2); color: var(--pfa-text); }

.pfacp-compare-app .pfacp-duel-section {
	padding: 14px 18px 4px;
	color: var(--pfa-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
}

.pfacp-compare-app .pfacp-table td.pfacp-go { white-space: nowrap; }
.pfacp-compare-app .pfacp-table td.pfacp-go .pfacp-cta { display: block; margin: 3px 0; text-align: center; }

/* Responsive */
@media (max-width: 768px) {
	.pfacp-compare-app { padding: 16px; }
	.pfacp-compare-app .pfacp-table { min-width: 940px; }
	.pfacp-compare-app .pfacp-compare-toolbar { flex-direction: column; align-items: stretch; }
	.pfacp-compare-app .pfacp-cols { align-self: flex-end; }
}

/* =====================================================================
 * Deals app — unified dark-navy/gold table of all firms.
 * Port of the former [best_prop_firm_deals] design, scoped under
 * .pfacp-deals-app so it can't leak onto other tables.
 * ===================================================================== */

.pfacp-deals-app {
	--pfa-navy: var(--pfacp-navy);
	--pfa-card: var(--pfacp-card);
	--pfa-card-2: var(--pfacp-card-2);
	--pfa-text: var(--pfacp-text);
	--pfa-muted: var(--pfacp-muted);
	--pfa-border: var(--pfacp-border);
	--pfa-gold: var(--pfacp-gold);
	--pfa-gold-2: var(--pfacp-gold-2);
	--pfa-blue: var(--pfacp-blue);
	--pfa-green: var(--pfacp-green);
	--pfa-on-gold: var(--pfacp-on-gold);

	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
	color: var(--pfa-text);
	background: var(--pfa-navy);
	border: 1px solid var(--pfa-border);
	border-radius: 16px;
	padding: 24px;
	margin: 24px 0;
}

.pfacp-deals-app * { box-sizing: border-box; }

/* Filter pills */
.pfacp-deals-app .pfacp-deals-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.pfacp-deals-app .pfacp-deals-pill {
	appearance: none;
	border: 1px solid var(--pfa-border);
	background: transparent;
	color: var(--pfa-muted);
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 600;
	padding: 6px 18px;
	border-radius: 999px;
	cursor: pointer;
	transition: all .18s ease;
}

.pfacp-deals-app .pfacp-deals-pill:hover { color: var(--pfa-text); border-color: rgba(255, 255, 255, 0.18); }

.pfacp-deals-app .pfacp-deals-pill.is-active {
	background: var(--pfa-gold);
	border-color: var(--pfa-gold);
	color: var(--pfa-on-gold);
}

/* Scroll + table */
.pfacp-deals-app .pfacp-deals-scroll {
	overflow-x: auto;
	border: 1px solid var(--pfa-border);
	border-radius: 12px;
	background: var(--pfa-card);
	-webkit-overflow-scrolling: touch;
}

.pfacp-deals-app .pfacp-deals-scroll .pfacp-deals-table,
.pfacp-deals-app .pfacp-deals-app .pfacp-deals-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: visible;
	min-width: 720px;
}

.pfacp-deals-app .pfacp-deals-table th {
	text-align: left;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--pfa-muted);
	padding: 14px 18px;
	border-bottom: 1px solid var(--pfa-border);
		background: rgba(255,255,255,.02);
		background: color-mix(in srgb, var(--pfa-text) 2%, transparent);
	white-space: nowrap;
}

.pfacp-deals-app .pfacp-deals-table td {
	padding: 16px 18px;
	border-bottom: 1px solid var(--pfa-border);
	font-size: .95rem;
	color: var(--pfa-text);
}

.pfacp-deals-app .pfacp-deals-table tr:last-child td { border-bottom: none; }
.pfacp-deals-app .pfacp-deals-table tr:hover td { background: rgba(255,255,255,.03); }
.pfacp-deals-app .pfacp-deals-table tr:hover td { background: color-mix(in srgb, var(--pfa-text) 3%, transparent); }

/* Firm cell */
.pfacp-deals-app .pfacp-deals-firm {
	display: flex;
	align-items: center;
	gap: 12px;
}

.pfacp-deals-app .pfacp-deals-logo {
	width: 38px;
	height: 38px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: .8rem;
	color: var(--pfa-navy);
	flex-shrink: 0;
}

.pfacp-deals-app .pfacp-deals-logo-img {
	overflow: hidden;
	border: 1px solid var(--pfa-border);
}

.pfacp-deals-app .pfacp-deals-logo-img img {
	width: auto;
	max-width: 80%;
	max-height: 80%;
	height: auto;
	display: block;
	object-fit: contain;
}

.pfacp-deals-app .pfacp-deals-firm b {
	display: block;
	font-size: .98rem;
	color: var(--pfa-text);
}

.pfacp-deals-app .pfacp-deals-firm small { color: var(--pfa-muted); font-size: .78rem; }

.pfacp-deals-app .pfacp-deals-price-was {
	color: var(--pfa-muted);
	text-decoration: line-through;
	font-size: .82rem;
	margin-right: 6px;
	white-space: nowrap;
}
.pfacp-deals-app .pfacp-deals-price-now {
	font-weight: 700;
	color: var(--pfa-text);
	white-space: nowrap;
}
.pfacp-deals-app .pfacp-deals-price-save {
	color: var(--pfa-green);
	font-size: .78rem;
	font-weight: 600;
	margin-left: 6px;
	white-space: nowrap;
}

/* Action buttons — promo code on top, Buy Now below (stacked) */
.pfacp-deals-app .pfacp-action {
	text-align: right;
}

.pfacp-deals-app .pfacp-deals-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	min-width: 150px;
}

.pfacp-deals-app .pfacp-btn {
	display: inline-block;
	background: var(--pfa-gold);
	color: var(--pfa-on-gold);
	font-weight: 700;
	border: none;
	border-radius: 6px;
	padding: 9px 18px;
	cursor: pointer;
	text-decoration: none;
	font-size: .82rem;
	transition: background .2s ease, transform .15s ease;
	font-family: inherit;
	text-align: center;
}

.pfacp-deals-app .pfacp-btn:hover {
	background: var(--pfa-blue);
	transform: translateY(-2px);
	color: #ffffff;
	text-decoration: none;
}

.pfacp-deals-app .pfacp-code-btn {
	font-family: inherit;
	letter-spacing: .03em;
	cursor: pointer;
	vertical-align: middle;
		border: 1px dashed rgba(244,180,0,.55);
		border: 1px dashed color-mix(in srgb, var(--pfa-gold) 55%, transparent);
	background: transparent;
	color: #ffffff;
}

.pfacp-deals-app .pfacp-code-btn .pfacp-code-label {
	font-weight: 700;
}

.pfacp-deals-app .pfacp-code-btn:hover,
.pfacp-deals-app .pfacp-code-btn:focus {
	background: var(--pfa-blue);
	border-color: var(--pfa-blue);
	color: #ffffff;
}

.pfacp-deals-app .pfacp-code-btn.is-copied {
	background: var(--pfa-green);
	border-color: var(--pfa-green);
	color: var(--pfa-on-gold);
}

/* Count */
.pfacp-deals-app .pfacp-deals-count {
	color: var(--pfa-muted);
	font-size: 13px;
	margin-top: 12px;
}

/* Responsive */
@media (max-width: 768px) {
	.pfacp-deals-app { padding: 16px; }
	.pfacp-deals-app .pfacp-deals-table { font-size: .8rem; }
	.pfacp-deals-app .pfacp-deals-table th,
	.pfacp-deals-app .pfacp-deals-table td { padding: 10px 8px; }
}

/* =====================================================================
 * RESPONSIVE OVERRIDES — Mobile & Tablet
 *
 * Breakpoints:
 *   1024px  — tablet landscape / small desktop
 *   768px   — tablet portrait
 *   640px   — large phone
 *   480px   — small phone
 * ===================================================================== */

/* ---- Scroll indicator for horizontally-scrollable tables ---------- */
.pfacp-compare-table-scroll,
.pfacp-deals-scroll {
	position: relative;
}

.pfacp-compare-table-scroll::after,
.pfacp-deals-scroll::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 48px;
	background: linear-gradient(to left, var(--pfa-card, var(--pfacp-card, #111C2E)) 0%, transparent 100%);
	pointer-events: none;
	opacity: 0;
	transition: opacity .2s ease;
	z-index: 3;
}

.pfacp-compare-table-scroll.is-scrollable::after,
.pfacp-deals-scroll.is-scrollable::after {
	opacity: 1;
}

.pfacp-compare-table-scroll.is-scrolled-end::after,
.pfacp-deals-scroll.is-scrolled-end::after {
	opacity: 0;
}

/* ---- Compare App — Tablet (max-width: 1024px) -------------------- */
@media (max-width: 1024px) {
	.pfacp-compare-app {
		padding: 20px;
		border-radius: 12px;
	}

	.pfacp-compare-app .pfacp-duel {
		gap: 14px;
	}

	.pfacp-compare-app .pfacp-table {
		min-width: 900px;
	}

	.pfacp-compare-app .pfacp-duel-head {
		padding: 14px;
	}

	.pfacp-compare-app .pfacp-duel-row {
		padding: 8px 14px;
		font-size: 12.5px;
	}

	.pfacp-compare-app .pfacp-duel-model-pick {
		padding: 10px 14px;
	}

	.pfacp-compare-app .pfacp-duel-section {
		padding: 12px 14px 4px;
	}
}

/* ---- Compare App — Tablet Portrait (max-width: 768px) ------------ */
@media (max-width: 768px) {
	.pfacp-compare-app {
		padding: 16px;
		border-radius: 10px;
	}

	/* Duel: keep 2 columns on tablets but tighter */
	.pfacp-compare-app .pfacp-duel {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 12px;
	}

	.pfacp-compare-app .pfacp-duel-card {
		border-radius: 10px;
		overflow: hidden;
	}

	.pfacp-compare-app .pfacp-duel-head {
		padding: 12px;
		gap: 10px;
	}

	.pfacp-compare-app .pfacp-duel-head h3 {
		font-size: 15px;
	}

	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-img {
		width: 40px;
		height: 40px;
		border-radius: 8px;
	}

	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-fallback {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}

	.pfacp-compare-app .pfacp-duel-row {
		padding: 7px 12px;
		font-size: 12px;
		grid-template-columns: 40% 60%;
		gap: 6px;
	}

	.pfacp-compare-app .pfacp-duel-foot {
		padding: 12px;
		flex-direction: column;
		gap: 8px;
	}

	.pfacp-compare-app .pfacp-cta {
		width: 100%;
		text-align: center;
	}

	/* Duel picker: full width selects */
	.pfacp-compare-app .pfacp-duel-picker {
		gap: 10px;
		margin-bottom: 16px;
	}

	.pfacp-compare-app .pfacp-pick {
		flex: 1 1 calc(50% - 30px);
		min-width: 0;
	}

	.pfacp-compare-app .pfacp-pick select {
		height: 46px;
		min-height: 46px;
		font-size: 13px;
		line-height: 42px;
		padding: 0 36px 0 12px;
	}

	.pfacp-compare-app .pfacp-swap {
		width: 42px;
		height: 42px;
		font-size: 18px;
		flex-shrink: 0;
		align-self: center;
	}

	/* Table */
	.pfacp-compare-app .pfacp-table {
		min-width: 800px;
		font-size: 12px;
	}

	.pfacp-compare-app .pfacp-table thead th {
		padding: 10px 10px;
		font-size: 10.5px;
	}

	.pfacp-compare-app .pfacp-table tbody td,
	.pfacp-compare-app .pfacp-table tbody th {
		padding: 9px 10px;
		font-size: 12px;
	}

	/* Tabs */
	.pfacp-compare-app .pfacp-tabs {
		gap: 4px;
		padding: 3px;
		margin-bottom: 14px;
	}

	.pfacp-compare-app .pfacp-tab {
		font-size: 13px;
		padding: 7px 14px;
	}

	/* Toolbar stacks */
	.pfacp-compare-app .pfacp-compare-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.pfacp-compare-app .pfacp-filters {
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
	}

	.pfacp-compare-app .pfacp-filter {
		flex-shrink: 0;
	}

	.pfacp-compare-app .pfacp-cols {
		align-self: flex-end;
	}

	.pfacp-compare-app .pfacp-cols-panel {
		position: fixed;
		left: 12px;
		right: 12px;
		bottom: 12px;
		top: auto;
		width: auto;
		max-height: 50vh;
		border-radius: 12px 12px 0 0;
		z-index: 100;
	}
}

/* ---- Compare App — Phone (max-width: 640px) --------------------- */
@media (max-width: 640px) {
	.pfacp-compare-app {
		padding: 12px;
		border-radius: 8px;
		margin: 16px 0;
	}

	/* Duel: keep TWO firm cards side-by-side on phones (compact) */
	.pfacp-compare-app .pfacp-duel {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 10px;
	}

	.pfacp-compare-app .pfacp-duel-card {
		border-radius: 10px;
	}

	.pfacp-compare-app .pfacp-duel-head {
		padding: 10px;
		gap: 8px;
		flex-direction: column;
		text-align: center;
	}

	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-img {
		width: 40px;
		height: 40px;
	}

	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-fallback {
		width: 40px;
		height: 40px;
	}

	.pfacp-compare-app .pfacp-duel-head h3 {
		font-size: 13px;
		line-height: 1.2;
		word-break: break-word;
	}

	.pfacp-compare-app .pfacp-duel-row {
		grid-template-columns: 38% 62%;
		padding: 8px 14px;
		font-size: 12.5px;
	}

	.pfacp-compare-app .pfacp-duel-row .k {
		font-size: 11.5px;
	}

	.pfacp-compare-app .pfacp-duel-section {
		padding: 10px 14px 2px;
		font-size: 11.5px;
	}

	.pfacp-compare-app .pfacp-duel-foot {
		padding: 14px;
	}

	/* Duel picker: keep A · swap · B inline (compact) on phones */
	.pfacp-compare-app .pfacp-duel-picker {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 6px;
		margin-bottom: 14px;
	}

	.pfacp-compare-app .pfacp-pick {
		flex: 1 1 0;
		min-width: 0;
	}

	.pfacp-compare-app .pfacp-pick span {
		font-size: 10px;
	}

	.pfacp-compare-app .pfacp-pick select {
		height: 42px;
		min-height: 42px;
		font-size: 12.5px;
		line-height: 38px;
		padding: 0 26px 0 8px;
		background-position: right 8px center;
		background-size: 10px 6px;
	}

	.pfacp-compare-app .pfacp-swap {
		width: 40px;
		height: 42px;
		border-radius: 8px;
		flex-shrink: 0;
		font-size: 15px;
	}

	/* Tabs: full width pills */
	.pfacp-compare-app .pfacp-tabs {
		display: flex;
		width: 100%;
		border-radius: 8px;
	}

	.pfacp-compare-app .pfacp-tab {
		flex: 1;
		text-align: center;
		font-size: 13px;
		padding: 8px 10px;
	}

	/* Table: compact */
	.pfacp-compare-app .pfacp-table {
		min-width: 700px;
		font-size: 11.5px;
	}

	.pfacp-compare-app .pfacp-table thead th {
		padding: 8px 8px;
		font-size: 10px;
		letter-spacing: .03em;
	}

	.pfacp-compare-app .pfacp-table tbody td,
	.pfacp-compare-app .pfacp-table tbody th {
		padding: 7px 8px;
		font-size: 11.5px;
	}

	.pfacp-compare-app .pfacp-firm {
		min-width: 140px;
		gap: 8px;
	}

	.pfacp-compare-app .pfacp-firm-name {
		font-size: 12px;
	}

	.pfacp-compare-app .pfacp-logo-img {
		width: 36px;
		height: 36px;
		border-radius: 8px;
	}

	.pfacp-compare-app .pfacp-logo-fallback {
		width: 36px;
		height: 36px;
		font-size: 14px;
	}

	/* CTA buttons in table: stack vertically */
	.pfacp-compare-app .pfacp-cta {
		font-size: 11px;
		padding: 6px 10px;
	}

	/* Toolbar */
	.pfacp-compare-app .pfacp-compare-toolbar {
		gap: 8px;
	}

	.pfacp-compare-app .pfacp-filter-label {
		display: none;
	}
}

/* ---- Compare App — Small Phone (max-width: 400px) ---------------- */
@media (max-width: 400px) {
	.pfacp-compare-app {
		padding: 10px;
	}

	.pfacp-compare-app .pfacp-duel-head {
		padding: 8px;
		gap: 6px;
		flex-direction: column;
		text-align: center;
	}

	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-img,
	.pfacp-compare-app .pfacp-duel-head .pfacp-logo-fallback {
		width: 34px;
		height: 34px;
		font-size: 12px;
	}

	.pfacp-compare-app .pfacp-duel-head h3 {
		font-size: 12px;
		word-break: break-word;
	}

	.pfacp-compare-app .pfacp-duel {
		gap: 8px;
	}

	.pfacp-compare-app .pfacp-duel-row {
		grid-template-columns: 34% 66%;
		padding: 5px 8px;
		font-size: 11px;
		gap: 4px;
	}

	.pfacp-compare-app .pfacp-duel-row .k {
		font-size: 10px;
	}

	.pfacp-compare-app .pfacp-duel-section {
		padding: 8px 8px 2px;
		font-size: 10.5px;
	}

	.pfacp-compare-app .pfacp-duel-foot {
		padding: 8px;
		gap: 6px;
	}

	.pfacp-compare-app .pfacp-cta {
		font-size: 10px;
		padding: 6px 6px;
	}

	.pfacp-compare-app .pfacp-duel-model-pick {
		padding: 8px 8px;
	}

	.pfacp-compare-app .pfacp-duel-model-pick select {
		font-size: 12px;
		height: 36px;
		min-height: 36px;
		line-height: 32px;
	}
}

/* ---- Deals App — Tablet (max-width: 1024px) --------------------- */
@media (max-width: 1024px) {
	.pfacp-deals-app {
		padding: 20px;
	}

	.pfacp-deals-app .pfacp-deals-table {
		min-width: 640px;
	}
}

/* ---- Deals App — Tablet Portrait + Phone (max-width: 768px) ------ */
@media (max-width: 768px) {
	.pfacp-deals-app {
		padding: 14px;
		border-radius: 10px;
	}

	.pfacp-deals-app .pfacp-deals-table {
		min-width: 580px;
		font-size: .8rem;
	}

	.pfacp-deals-app .pfacp-deals-table th,
	.pfacp-deals-app .pfacp-deals-table td {
		padding: 10px 8px;
	}

	/* Make the firm column sticky so it stays visible while scrolling */
	.pfacp-deals-app .pfacp-deals-table thead th:first-child,
	.pfacp-deals-app .pfacp-deals-table tbody td:first-child {
		position: sticky;
		left: 0;
		z-index: 2;
		background: var(--pfa-card, var(--pfacp-card, #111C2E));
	}

	.pfacp-deals-app .pfacp-deals-table thead th:first-child {
		z-index: 4;
	}

	.pfacp-deals-app .pfacp-deals-table tbody tr:hover td:first-child {
		background: rgba(255,255,255,.03);
		background: color-mix(in srgb, var(--pfa-text) 3%, var(--pfa-card, var(--pfacp-card, #111C2E)));
	}

	/* Filter bar */
	.pfacp-deals-app .pfacp-deals-filter-bar {
		gap: 6px;
		margin-bottom: 14px;
	}

	.pfacp-deals-app .pfacp-deals-pill {
		font-size: 12px;
		padding: 5px 14px;
	}

	/* Action column: more compact */
	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 120px;
		gap: 6px;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 7px 12px;
		font-size: .78rem;
	}
}

/* ---- Deals App — Phone (max-width: 640px) ----------------------- */
@media (max-width: 640px) {
	.pfacp-deals-app {
		padding: 12px;
		border-radius: 8px;
	}

	.pfacp-deals-app .pfacp-deals-table {
		min-width: 500px;
		font-size: .75rem;
	}

	.pfacp-deals-app .pfacp-deals-table th {
		padding: 8px 6px;
		font-size: .7rem;
		letter-spacing: .05em;
	}

	.pfacp-deals-app .pfacp-deals-table td {
		padding: 8px 6px;
	}

	/* Sticky firm column with slight shadow for depth cue */
	.pfacp-deals-app .pfacp-deals-table thead th:first-child {
		box-shadow: 2px 0 8px rgba(0, 0, 0, .15);
	}

	.pfacp-deals-app .pfacp-deals-table tbody td:first-child {
		box-shadow: 2px 0 8px rgba(0, 0, 0, .15);
	}

	/* Firm cell: tighter */
	.pfacp-deals-app .pfacp-deals-firm {
		gap: 8px;
		min-width: 120px;
	}

	.pfacp-deals-app .pfacp-deals-logo {
		width: 32px;
		height: 32px;
		font-size: .7rem;
	}

	.pfacp-deals-app .pfacp-deals-logo-img img {
		max-width: 90%;
		max-height: 90%;
	}

	.pfacp-deals-app .pfacp-deals-firm b {
		font-size: .85rem;
	}

	/* Action column */
	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 100px;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 6px 10px;
		font-size: .72rem;
	}
}

/* ---- Deals App — Small Phone (max-width: 400px) ------------------ */
@media (max-width: 400px) {
	.pfacp-deals-app {
		padding: 10px;
	}

	.pfacp-deals-app .pfacp-deals-table {
		min-width: 440px;
	}

	.pfacp-deals-app .pfacp-deals-firm {
		gap: 6px;
		min-width: 100px;
	}

	.pfacp-deals-app .pfacp-deals-logo {
		width: 28px;
		height: 28px;
	}

	.pfacp-deals-app .pfacp-deals-firm b {
		font-size: .78rem;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 5px 8px;
		font-size: .68rem;
	}

	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 85px;
		gap: 4px;
	}
}

/* ---- Market Toggle — responsive ---------------------------------- */
@media (max-width: 768px) {
	.pfacp-market-toggle {
		margin: 20px 0 36px;
	}

	.pfacp-market-tabs {
		gap: 4px;
		padding: 4px;
		border-radius: 10px;
	}

	.pfacp-market-tab {
		padding: 7px 14px;
		font-size: .82rem;
	}

	.pfacp-market-panel {
		margin-top: 20px;
	}
}

@media (max-width: 480px) {
	.pfacp-market-tabs {
		display: flex;
		width: 100%;
		gap: 3px;
		padding: 3px;
	}

	.pfacp-market-tab {
		flex: 1;
		text-align: center;
		padding: 8px 8px;
		font-size: .78rem;
		white-space: nowrap;
	}

	.pfacp-market-toggle {
		margin: 16px 0 28px;
	}
}

/* ---- Price Cards — Tablet (max-width: 1024px) -------------------- */
@media (max-width: 1024px) {
	.pfacp-price-card {
		padding: 18px;
	}

	.pfacp-title {
		font-size: 1.25rem;
	}

	.pfacp-price-now {
		font-size: 1.5rem;
	}
}

/* ---- Price Cards — Phone (max-width: 640px) ---------------------- */
@media (max-width: 640px) {
	.pfacp-price-card {
		padding: 16px;
		border-radius: 10px;
		max-width: 100%;
	}

	.pfacp-card-head {
		gap: 10px;
	}

	.pfacp-card-head .pfacp-logo {
		height: 36px;
	}

	.pfacp-card-head .pfacp-logo-wrap {
		min-width: 28px;
	}

	.pfacp-card-head .pfacp-head-title {
		margin-top: 10px;
	}

	.pfacp-title {
		font-size: 1.15rem;
	}

	.pfacp-price-now {
		font-size: 1.4rem;
	}

	.pfacp-tier-tab {
		padding: 6px 12px;
		font-size: .8rem;
	}

	.pfacp-stats li {
		padding: 7px 2px;
		font-size: .85rem;
	}

	.pfacp-cta {
		padding: 11px 18px;
		font-size: .95rem;
	}

	.pfacp-card-code-btn {
		padding: 7px 12px;
		font-size: .8rem;
	}

	.pfacp-ribbon {
		font-size: 10px;
		padding: 3px 8px;
		top: 8px;
		right: 8px;
	}
}

/* ---- Price Cards — Small Phone (max-width: 400px) ---------------- */
@media (max-width: 400px) {
	.pfacp-price-card {
		padding: 14px;
	}

	.pfacp-card-head .pfacp-logo {
		height: 32px;
	}

	.pfacp-title {
		font-size: 1.05rem;
	}

	.pfacp-tier-toggles {
		gap: 6px;
	}

	.pfacp-tier-tab {
		padding: 5px 10px;
		font-size: .75rem;
	}

	.pfacp-tier-facts li {
		font-size: .8rem;
	}

	.pfacp-stats li {
		padding: 6px 2px;
		font-size: .82rem;
	}
}

/* ---- Per-firm grid tables (deals/compare wraps) — responsive ----- */
@media (max-width: 768px) {
	.pfacp-deals-wrap,
	.pfacp-compare-wrap {
		border-radius: 10px;
	}

	.pfacp-deals-table th,
	.pfacp-deals-table td,
	.pfacp-compare-table th,
	.pfacp-compare-table td {
		padding: 8px 10px;
		font-size: .85rem;
	}

	.pfacp-deal-firm-head,
	.pfacp-compare-firm-head {
		gap: 8px;
		margin-bottom: 10px;
	}
}

@media (max-width: 480px) {
	.pfacp-deals-table th,
	.pfacp-deals-table td,
	.pfacp-compare-table th,
	.pfacp-compare-table td {
		padding: 6px 8px;
		font-size: .8rem;
	}

	.pfacp-compare-firm {
		font-size: 1rem;
	}
}

/* ---- Scroll hint text (below scrollable tables) ------------------ */
.pfacp-scroll-hint {
	display: none;
	text-align: center;
	font-size: 11px;
	color: var(--pfa-muted, var(--pfacp-muted, #8A9BB8));
	padding: 6px 0 0;
	opacity: .7;
}

@media (max-width: 768px) {
	.pfacp-scroll-hint {
		display: block;
	}
}

/* ---- Touch-friendly tap targets (min 44px) ----------------------- */
@media (pointer: coarse) {
	.pfacp-compare-app .pfacp-tab,
	.pfacp-compare-app .pfacp-filter,
	.pfacp-compare-app .pfacp-cols-btn,
	.pfacp-compare-app .pfacp-swap,
	.pfacp-deals-app .pfacp-deals-pill,
	.pfacp-market-tab,
	.pfacp-tier-tab {
		min-height: 44px;
	}

	.pfacp-compare-app .pfacp-cta,
	.pfacp-deals-app .pfacp-btn {
		min-height: 44px;
	}

	.pfacp-card-code-btn {
		min-height: 44px;
	}
}

/* ---- Safe area insets for notched phones ------------------------- */
@supports (padding: env(safe-area-inset-bottom)) {
	.pfacp-compare-app,
	.pfacp-deals-app {
		padding-bottom: calc(16px + env(safe-area-inset-bottom));
	}
}

/* ---- Firm + Action columns: sticky at ALL widths ------------------ */
/* Firm pins left, Action pins right; when the table scrolls horizontally
   the firm name and the Get Deal button stay in view on desktop, tablet
   and phone. Sticky is inert when the table fits its container, so wide
   desktops look exactly as before. Decorative borders/shadow only show
   while the container is actually scrollable (.is-scrollable). */
	.pfacp-deals-app .pfacp-deals-table thead th:first-child {
		background: var(--pfa-card-2, var(--pfacp-card-2, #152338));
	}

	.pfacp-deals-app .pfacp-deals-table tbody td:first-child {
		background: var(--pfa-card, var(--pfacp-card, #111C2E));
	}

	/* Ensure the sticky cell has enough z-index to sit above scrolled cells */
	.pfacp-deals-app .pfacp-deals-table thead th {
		position: relative;
	}

	.pfacp-deals-app .pfacp-deals-table thead th:first-child {
		position: sticky;
		left: 0;
		z-index: 4;
	}

	.pfacp-deals-app .pfacp-deals-table tbody td:first-child {
		position: sticky;
		left: 0;
		z-index: 2;
	}

	/* Subtle right border on the sticky column for visual separation */
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table thead th:first-child::after,
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table tbody td:first-child::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 1px;
		background: var(--pfa-border, rgba(255, 255, 255, 0.08));
	}

.pfacp-deals-scroll.is-scrollable .pfacp-deals-table thead th:first-child::after {
	z-index: 5;
}

/* ---- Sticky Action column (right) ---- all widths --------------- */
	/* Action column: sticky right so the CTA stays visible while scrolling */
	.pfacp-deals-app .pfacp-deals-table thead th.pfacp-action,
	.pfacp-deals-app .pfacp-deals-table tbody td.pfacp-action {
		position: sticky;
		right: 0;
		z-index: 2;
		background: var(--pfa-card, var(--pfacp-card, #111C2E));
	}

	.pfacp-deals-app .pfacp-deals-table thead th.pfacp-action {
		z-index: 4;
		background: var(--pfa-card-2, var(--pfacp-card-2, #152338));
	}

	.pfacp-deals-app .pfacp-deals-table tbody tr:hover td.pfacp-action {
		background: rgba(255,255,255,.03);
		background: color-mix(in srgb, var(--pfa-text) 3%, var(--pfa-card, var(--pfacp-card, #111C2E)));
	}

	/* Left border on sticky Action column for visual separation */
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table thead th.pfacp-action::before,
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table tbody td.pfacp-action::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: 1px;
		background: var(--pfa-border, rgba(255, 255, 255, 0.08));
	}

.pfacp-deals-scroll.is-scrollable .pfacp-deals-table thead th.pfacp-action::before {
	z-index: 5;
}

/* Shadow only while actually scrolling */
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table thead th.pfacp-action,
.pfacp-deals-scroll.is-scrollable .pfacp-deals-table tbody td.pfacp-action {
	box-shadow: -2px 0 8px rgba(0, 0, 0, .15);
}

/* ---- Deals App — tighter mobile sizing --------------------------- */
@media (max-width: 1024px) {
	.pfacp-deals-app .pfacp-deals-table {
		min-width: 600px;
	}

	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 110px;
	}
}

@media (max-width: 768px) {
	.pfacp-deals-app .pfacp-deals-table {
		min-width: 520px;
		font-size: .78rem;
	}

	.pfacp-deals-app .pfacp-deals-table th,
	.pfacp-deals-app .pfacp-deals-table td {
		padding: 9px 7px;
		white-space: nowrap;
	}

	.pfacp-deals-app .pfacp-deals-firm {
		min-width: 110px;
	}

	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 100px;
		gap: 5px;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 6px 10px;
		font-size: .75rem;
	}
}

@media (max-width: 640px) {
	.pfacp-deals-app .pfacp-deals-table {
		min-width: 460px;
		font-size: .72rem;
	}

	.pfacp-deals-app .pfacp-deals-table th {
		padding: 7px 5px;
		font-size: .68rem;
	}

	.pfacp-deals-app .pfacp-deals-table td {
		padding: 7px 5px;
	}

	.pfacp-deals-app .pfacp-deals-firm {
		min-width: 95px;
	}

	.pfacp-deals-app .pfacp-deals-logo {
		width: 28px;
		height: 28px;
		font-size: .65rem;
	}

	.pfacp-deals-app .pfacp-deals-firm b {
		font-size: .78rem;
	}

	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 88px;
		gap: 4px;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 5px 8px;
		font-size: .7rem;
	}
}

@media (max-width: 400px) {
	.pfacp-deals-app .pfacp-deals-table {
		min-width: 400px;
		font-size: .68rem;
	}

	.pfacp-deals-app .pfacp-deals-table th,
	.pfacp-deals-app .pfacp-deals-table td {
		padding: 6px 4px;
	}

	.pfacp-deals-app .pfacp-deals-firm {
		min-width: 85px;
	}

	.pfacp-deals-app .pfacp-deals-logo {
		width: 24px;
		height: 24px;
	}

	.pfacp-deals-app .pfacp-deals-firm b {
		font-size: .72rem;
	}

	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 75px;
		gap: 3px;
	}

	.pfacp-deals-app .pfacp-btn {
		padding: 4px 7px;
		font-size: .65rem;
	}
}


/* Cap the sticky Firm column on small screens so a long firm name
 * ellipsizes instead of widening the pinned cell (the table still
 * scrolls horizontally; Firm + Action stay sticky). */
@media (max-width: 1024px) {
	.pfacp-deals-app .pfacp-deals-table th:first-child,
	.pfacp-deals-app .pfacp-deals-table td:first-child:not(.pfacp-action) {
		max-width: 200px;
	}
}

@media (max-width: 768px) {
	.pfacp-deals-app .pfacp-deals-table th:first-child,
	.pfacp-deals-app .pfacp-deals-table td:first-child:not(.pfacp-action) {
		max-width: 170px;
	}
	.pfacp-deals-app .pfacp-deals-firm-meta {
		min-width: 0;
		max-width: 100%;
	}
	.pfacp-deals-app .pfacp-deals-firm b {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

@media (max-width: 640px) {
	.pfacp-deals-app .pfacp-deals-table th:first-child,
	.pfacp-deals-app .pfacp-deals-table td:first-child:not(.pfacp-action) {
		max-width: 140px;
	}
}

@media (max-width: 400px) {
	.pfacp-deals-app .pfacp-deals-table th:first-child,
	.pfacp-deals-app .pfacp-deals-table td:first-child:not(.pfacp-action) {
		max-width: 118px;
	}
}

/* Shrink the middle data columns (Funding / Profit Split / Payout /
 * Start Fee - i.e. everything between the two sticky columns) on phones
 * so the table needs less horizontal room. Firm + Action are excluded. */
@media (max-width: 768px) {
	.pfacp-deals-app .pfacp-deals-table th:not(:first-child):not(.pfacp-action),
	.pfacp-deals-app .pfacp-deals-table td:not(:first-child):not(.pfacp-action) {
		font-size: .68rem;
		padding: 8px 6px;
	}
	.pfacp-deals-app .pfacp-deals-price-now,
	.pfacp-deals-app .pfacp-deals-price-was,
	.pfacp-deals-app .pfacp-deals-price-save {
		font-size: .68rem;
	}
}

@media (max-width: 400px) {
	.pfacp-deals-app .pfacp-deals-table th:not(:first-child):not(.pfacp-action),
	.pfacp-deals-app .pfacp-deals-table td:not(:first-child):not(.pfacp-action) {
		font-size: .62rem;
		padding: 7px 5px;
	}
	.pfacp-deals-app .pfacp-deals-price-now,
	.pfacp-deals-app .pfacp-deals-price-was,
	.pfacp-deals-app .pfacp-deals-price-save {
		font-size: .62rem;
	}
}

/* ---- Compare all-firms table: sticky Firm column (mobile) --------- */
@media (max-width: 768px) {
	.pfacp-compare-app .pfacp-table thead th.pfacp-col-firm:first-child,
	.pfacp-compare-app .pfacp-table thead .pfacp-phase-row th:first-child,
	.pfacp-compare-app .pfacp-table tbody th:first-child {
		position: sticky;
		left: 0;
		z-index: 3;
	}

	.pfacp-compare-app .pfacp-table thead th.pfacp-col-firm,
	.pfacp-compare-app .pfacp-table thead .pfacp-phase-row th:first-child {
		background: var(--pfa-card-2, var(--pfacp-card-2, #152338));
		z-index: 4;
	}

	.pfacp-compare-app .pfacp-table tbody th:first-child {
		background: var(--pfa-card, var(--pfacp-card, #111C2E));
		box-shadow: 2px 0 8px rgba(0, 0, 0, .18);
	}

	.pfacp-compare-app .pfacp-table tbody tr:hover th:first-child {
		background: rgba(255,255,255,.03);
		background: color-mix(in srgb, var(--pfa-text) 3%, var(--pfa-card, var(--pfacp-card, #111C2E)));
	}

	/* Firm cell width on mobile should be compact enough to keep rows readable */
	.pfacp-compare-app .pfacp-firm {
		min-width: 150px;
	}
}

/* =====================================================================
 * Compare duel — FINAL LOCK-IN: Force TWO firm cards side-by-side at ALL
 * widths (incl. phones). High specificity; must sit after every other rule.
 * ===================================================================== */
.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel,
.pfacp-compare-app .pfacp-duel[data-role="duel"] {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 12px !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: none !important;
}

@media (max-width: 640px) {
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel,
	.pfacp-compare-app .pfacp-duel[data-role="duel"] {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
		gap: 10px !important;
	}
}

@media (max-width: 400px) {
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel,
	.pfacp-compare-app .pfacp-duel[data-role="duel"] {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
		gap: 8px !important;
	}
}

/* Duel cards must never stretch to 1 column or shrink sideways */
.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel > .pfacp-duel-card {
	width: 100% !important;
	min-width: 0 !important;
}

/* =====================================================================
 * Compare duel rows — MOBILE TEXT FIX: with firm cards forced side-by-side
 * (2 columns), each card is only ~160px wide. Splitting each row into a
 * label/value grid (38%/62%) makes labels like "Challenge Fee" / "Max
 * Contracts" wrap into 2-3 lines and crowds the value.
 * => Stack label ABOVE value inside each row on phones (row height shrinks,
 *    text stays on one line). Cards remain side-by-side; only rows change.
 * ===================================================================== */
@media (max-width: 640px) {
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row {
		grid-template-columns: 1fr !important;
		gap: 3px !important;
		padding: 7px 10px !important;
	}

	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row .k {
		font-size: 10px !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}

	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row .v {
		font-size: 12px !important;
		line-height: 1.35 !important;
		overflow-wrap: break-word !important;
	}
}

@media (max-width: 400px) {
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row {
		padding: 6px 8px !important;
		gap: 2px !important;
	}
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row .k {
		font-size: 9.5px !important;
	}
	.pfacp-compare-app .pfacp-view.pfacp-compare-view-duel .pfacp-duel-row .v {
		font-size: 11px !important;
	}
}

/* =====================================================================
 * TABLET & PHONE POLISH — final pass covers all remaining components:
 *   - market toggle tabs (3-way Forex/Futures/Crypto switch)
 *   - compare app tabs (Side-by-Side / All Firms)
 *   - deals app pills + action buttons
 *   - price cards (tier toggles, ribbon, stats)
 *   - per-firm deals/compare wrap tables
 * Appended LAST so these always win at these widths.
 * ===================================================================== */

/* ---- Market toggle: make the 3 tabs fill the row on phones --------- */
@media (max-width: 640px) {
	.pfacp-market-tabs {
		display: flex;
		width: 100%;
	}

	.pfacp-market-tab {
		flex: 1 1 auto;
		min-width: 0;
		padding: 8px 6px;
		font-size: .8rem;
		text-align: center;
	}

	.pfacp-market-slider {
		top: 6px;
		bottom: 6px;
	}
}

/* ---- Compare app tabs: keep Side-by-Side / All Firms readable ------ */
@media (max-width: 640px) {
	.pfacp-compare-app .pfacp-tabs {
		display: flex;
		width: 100%;
		gap: 4px;
		padding: 3px;
	}

	.pfacp-compare-app .pfacp-tab {
		flex: 1 1 auto;
		min-width: 0;
		font-size: 13px;
		padding: 7px 8px;
		white-space: nowrap;
	}
}

@media (max-width: 400px) {
	.pfacp-compare-app .pfacp-tabs { gap: 2px; }
	.pfacp-compare-app .pfacp-tab { font-size: 12px; padding: 6px 6px; }
}

/* ---- Deals filter pills: keep them on one row (tap-friendly) ------- */
@media (max-width: 640px) {
	.pfacp-deals-app .pfacp-deals-filter-bar {
		display: flex;
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
		gap: 6px;
	}

	.pfacp-deals-app .pfacp-deals-pill {
		flex-shrink: 0;
		white-space: nowrap;
	}
}

/* ---- Deals action column: never clip buttons on tiny phones --------- */
@media (max-width: 400px) {
	.pfacp-deals-app .pfacp-deals-actions {
		min-width: 0;
	}

	.pfacp-deals-app .pfacp-deals-actions .pfacp-btn {
		width: 100%;
		padding: 6px 8px;
		font-size: .7rem;
		white-space: nowrap;
	}
}

/* ---- Price cards: ribbon + tier toggles fit on narrow phones ------- */
@media (max-width: 640px) {
	.pfacp-price-card .pfacp-ribbon {
		position: static;
		display: block;
		width: auto;
		max-width: 100%;
		margin: 0 0 12px;
		text-align: center;
		white-space: normal;
		overflow: visible;
	}
}

@media (max-width: 400px) {
	.pfacp-price-card .pfacp-tier-toggles {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
	}

	.pfacp-price-card .pfacp-tier-tab {
		flex: 1 1 auto;
		text-align: center;
	}
}

/* ---- Per-firm deals/compare wrap tables: keep horizontal scroll ---- */
@media (max-width: 640px) {
	.pfacp-deals-wrap,
	.pfacp-compare-wrap {
		-webkit-overflow-scrolling: touch;
	}

	.pfacp-deals-wrap .pfacp-deal-firm-head,
	.pfacp-compare-wrap .pfacp-compare-firm-head {
		flex-wrap: wrap;
	}
}

/* =====================================================================
 * Shareable duel pairing link (above the side-by-side cards)
 * ===================================================================== */
.pfacp-deeplink {
	display: inline-block;
	margin: 0 0 10px;
	font-size: .78rem;
	color: var(--pfa-muted, var(--pfacp-muted, #7f90ad));
	text-decoration: none;
	overflow-wrap: anywhere;
	line-height: 1.4;
}

.pfacp-deeplink:hover,
.pfacp-deeplink:focus {
	color: var(--pfa-gold, var(--pfacp-gold, #F4B400));
	text-decoration: underline;
}

/* ---------- Evaluation model name under firm name in All-Firms table ---------- */
.pfacp-firm-eval {
	font-size: 11px;
	color: var(--pfa-muted, var(--pfacp-muted, #7f90ad));
	font-weight: 500;
	white-space: normal;
	line-height: 1.3;
	margin-top: 2px;
}

/* =====================================================================
 * Responsive v2 — mobile / tablet polish.
 * Tables keep the proven horizontal-scroll + sticky-firm pattern; here we
 * tighten gaps, stop long (now-emoji-capable) labels from wrapping badly,
 * and make the share link stay tappable on small screens.
 * ===================================================================== */

/* Phones: let long firm names truncate instead of widening the sticky
 * first column and pushing the table off-screen. */
@media (max-width: 640px) {
	.pfacp-deals-app .pfacp-deals-firm-meta {
		min-width: 0;
		max-width: 100%;
	}
	.pfacp-deals-app .pfacp-deals-firm b {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.pfacp-compare-app .pfacp-firm-name {
		max-width: 130px;
	}
	.pfacp-compare-app .pfacp-firm-eval {
		max-width: 160px;
	}
}

/* Tighter card-grid gaps on small screens. */
@media (max-width: 640px) {
	.pfacp-cards-grid {
		gap: 14px;
	}
}

@media (max-width: 400px) {
	.pfacp-cards-grid {
		gap: 10px;
	}
	/* Tier labels may now contain emoji — don't let them wrap mid-phrase. */
	.pfacp-price-card .pfacp-tier-tab {
		white-space: nowrap;
	}
}

/* Make the shareable pairing link pleasant to tap on touch devices. */
@media (pointer: coarse) {
	.pfacp-deeplink {
		padding: 6px 0;
	}
}
