/**
 * PokeFireRed Tools - FireRed Evolution Guide (tool-specific styles).
 * Requires pfr-base.css, which provides the design tokens, isolation reset,
 * buttons, type badges, cards, the selector dialog and the shared tool UI
 * (mode tabs .pfr-eg-tab, picker button .pfr-eg-picker, result header
 * .pfr-eg-hero, action bar .pfr-eg-actions).
 */

/* ---------- Sprite placeholder (species FireRed has no sprite file for) ---------- */

.pfr-app .pfr-eg-nosprite,
.pfr-app .pfr-pick-nosprite {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	font-weight: 800;
	color: var(--pfr-muted);
	background: var(--pfr-card-soft);
	border: 2px dashed var(--pfr-line-strong);
	border-radius: var(--pfr-radius-sm);
}

.pfr-app .pfr-pick-nosprite {
	width: 48px;
	height: 48px;
	margin: 4px;
	font-size: 1.25rem;
}

.pfr-app .pfr-eg-picker-sprite.pfr-eg-nosprite {
	width: 48px;
	height: 48px;
	font-size: 1.25rem;
}

.pfr-app .pfr-eg-hero-sprite.pfr-eg-nosprite {
	width: 96px;
	height: 96px;
	font-size: 2rem;
}

/* ---------- Summary card ---------- */

.pfr-app .pfr-eg-card .pfr-section-title {
	margin-bottom: 2px;
}

.pfr-app .pfr-eg-labels {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 0 0 8px;
}

.pfr-app .pfr-eg-labels-title {
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-headline {
	margin: 12px 0 4px;
	font-size: 1.0625rem;
	font-weight: 800;
	color: var(--pfr-ink);
}

.pfr-app .pfr-eg-summary {
	margin: 0 0 14px;
	font-size: 0.9375rem;
	color: var(--pfr-muted);
}

/* ---------- Badges ---------- */

.pfr-app .pfr-eg-badge {
	display: inline-block;
	padding: 4px 12px;
	font-size: 0.9375rem;
	font-weight: 800;
	line-height: 1.3;
	color: var(--pfr-ink);
	background: var(--pfr-card-soft);
	border: 2px solid var(--pfr-line-strong);
	border-radius: 999px;
}

.pfr-app .pfr-eg-badge--level { color: #0f4a2c; background: #dff0e4; border-color: #7bbd96; }
.pfr-app .pfr-eg-badge--stone { color: #5a2a00; background: #fde8cf; border-color: #e9ae6b; }
.pfr-app .pfr-eg-badge--trade { color: #123a73; background: #e3edfb; border-color: #8fb0e6; }
.pfr-app .pfr-eg-badge--trade-item { color: #3f1c70; background: #ece3fa; border-color: #b49ae0; }
.pfr-app .pfr-eg-badge--friendship { color: #6a1636; background: #fbe3ec; border-color: #e59ab5; }
.pfr-app .pfr-eg-badge--unavailable,
.pfr-app .pfr-eg-badge--unused { color: #4a2020; background: #f3e2e0; border-color: #d4a29d; }
.pfr-app .pfr-eg-badge--none { color: #3a3128; background: #eee8dc; border-color: #c9bfae; }

.pfr-app .pfr-eg-badge--status-direct { color: #0f4a2c; background: #dff0e4; border-color: #7bbd96; }
.pfr-app .pfr-eg-badge--status-breeding { color: #5a3a10; background: #fbeee0; border-color: #e0b98c; }
.pfr-app .pfr-eg-badge--status-evolution { color: #123a73; background: #e3edfb; border-color: #8fb0e6; }
.pfr-app .pfr-eg-badge--status-trade-evolution { color: #5a2a00; background: #fde8cf; border-color: #e9ae6b; }
.pfr-app .pfr-eg-badge--status-leafgreen { color: #1b4a10; background: #e7f5d3; border-color: #94c566; }
.pfr-app .pfr-eg-badge--status-event { color: #3f1c70; background: #ece3fa; border-color: #b49ae0; }
.pfr-app .pfr-eg-badge--status-unavailable,
.pfr-app .pfr-eg-badge--status-unused { color: #4a2020; background: #f3e2e0; border-color: #d4a29d; }

/* ---------- Callouts ---------- */

.pfr-app .pfr-eg-callout {
	margin: 0;
	padding: 14px 16px;
	background: var(--pfr-card);
	border: 1px solid var(--pfr-line);
	border-left-width: 6px;
	border-radius: var(--pfr-radius);
	box-shadow: var(--pfr-shadow);
}

.pfr-app .pfr-eg-callout--unavailable { border-left-color: #c26a62; background: #fcf5f4; }
.pfr-app .pfr-eg-callout--breeding { border-left-color: #d0974f; background: #fdf8f1; }

.pfr-app .pfr-eg-callout-title {
	margin: 0 0 6px;
	font-size: 1.0625rem;
	font-weight: 800;
	color: var(--pfr-ink);
}

.pfr-app .pfr-eg-callout-text {
	margin: 0 0 6px;
	font-size: 0.9375rem;
}

.pfr-app .pfr-eg-callout-text:last-child {
	margin-bottom: 0;
}

/* ---------- Evolution items ---------- */

.pfr-app .pfr-eg-evo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 10px;
	margin: 0 0 8px;
}

.pfr-app .pfr-eg-evo {
	margin: 0;
	padding: 12px;
	background: var(--pfr-card-soft);
	border: 1px solid var(--pfr-line);
	border-left: 4px solid var(--pfr-green);
	border-radius: var(--pfr-radius-sm);
	min-width: 0;
}

.pfr-app .pfr-eg-evo--stone { border-left-color: var(--pfr-orange); }
.pfr-app .pfr-eg-evo--trade { border-left-color: #4a78c8; }
.pfr-app .pfr-eg-evo--trade-item { border-left-color: #8d6fd1; }
.pfr-app .pfr-eg-evo--friendship { border-left-color: #d0527d; }
.pfr-app .pfr-eg-evo--limited { border-left-color: #c26a62; background: #fcf5f4; }

.pfr-app .pfr-eg-evo-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin: 0 0 8px;
}

.pfr-app .pfr-eg-evo-title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.25;
	color: var(--pfr-ink);
}

.pfr-app .pfr-eg-evo-head .pfr-eg-badge {
	padding: 1px 10px;
	font-size: 0.8125rem;
	line-height: 1.5;
}

.pfr-app .pfr-eg-facts {
	display: grid;
	gap: 4px;
	margin: 0;
}

.pfr-app .pfr-eg-fact {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 8px;
	margin: 0;
}

.pfr-app .pfr-eg-fact dt {
	flex: 0 0 112px;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-fact dd {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	min-width: 0;
}

.pfr-app .pfr-eg-evo-text {
	margin: 8px 0 0;
	font-size: 0.9375rem;
}

.pfr-app .pfr-eg-note-line {
	margin: 8px 0 0;
	font-size: 0.8125rem;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-note-line--card {
	margin: 4px 0 0;
}

.pfr-app .pfr-eg-limit {
	margin: 8px 0 0;
	padding: 8px 10px;
	font-size: 0.875rem;
	color: #4a2020;
	background: #fcf5f4;
	border: 1px solid #e3c2be;
	border-radius: var(--pfr-radius-sm);
}

.pfr-app .pfr-eg-limit--national-dex {
	color: #3d2a05;
	background: #fdf6e3;
	border-color: #e8d49c;
}

.pfr-app .pfr-eg-none-text {
	margin: 0 0 6px;
	font-size: 1rem;
	font-weight: 700;
}

.pfr-app .pfr-eg-none-reason {
	margin: 0 0 6px;
	font-size: 0.9375rem;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-source {
	margin: 8px 0 0;
	font-size: 0.875rem;
}

.pfr-app .pfr-eg-source .pfr-summary-toggle {
	min-height: 36px;
	font-size: 0.9375rem;
}

.pfr-app .pfr-eg-sourcelist {
	margin: 6px 0 0;
	padding: 0 0 0 18px;
	list-style: disc;
}

.pfr-app .pfr-eg-sourcelist li {
	margin: 0;
	padding: 2px 0;
}

.pfr-app .pfr-eg-source-note {
	margin: 6px 0 0;
	font-size: 0.75rem;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-inline-link {
	font-weight: 700;
	color: var(--pfr-red-dark);
}

/* ---------- Evolution chain (branching tree) ---------- */

.pfr-app .pfr-eg-chain {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pfr-app .pfr-eg-chain .pfr-eg-chain {
	margin: 4px 0 0 14px;
	padding: 0 0 0 14px;
	border-left: 2px solid var(--pfr-line-strong);
}

.pfr-app .pfr-eg-chain-item {
	margin: 0;
	padding: 6px 0;
}

.pfr-app .pfr-eg-chain-via {
	margin: 0 0 4px;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--pfr-muted);
}

.pfr-app .pfr-eg-chain-note {
	margin: 0 0 4px;
	font-size: 0.8125rem;
	color: var(--pfr-red-dark);
}

.pfr-app .pfr-eg-chain-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}

.pfr-app .pfr-eg-chain-sprite {
	display: block;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	max-width: none;
	image-rendering: pixelated;
}

.pfr-app .pfr-eg-chain-sprite.pfr-eg-nosprite {
	font-size: 1rem;
}

.pfr-app .pfr-eg-chain-name {
	font-size: 1rem;
	font-weight: 800;
}

.pfr-app .pfr-eg-chain-item--current > .pfr-eg-chain-row {
	padding: 4px 8px;
	background: var(--pfr-red-soft);
	border: 2px solid var(--pfr-red);
	border-radius: var(--pfr-radius-sm);
}

.pfr-app .pfr-eg-current {
	font-weight: 800;
	color: var(--pfr-red-dark);
}

.pfr-app .pfr-eg-chain-btn {
	min-height: 32px;
}

.pfr-app .pfr-eg-chain-status {
	padding: 1px 8px;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--pfr-muted);
	background: var(--pfr-card-soft);
	border: 1px solid var(--pfr-line);
	border-radius: 999px;
}

.pfr-app .pfr-eg-chain-status--breeding { color: #5a3a10; background: #fbeee0; }
.pfr-app .pfr-eg-chain-status--unavailable,
.pfr-app .pfr-eg-chain-status--unused { color: #4a2020; background: #f3e2e0; }
.pfr-app .pfr-eg-chain-status--leafgreen { color: #1b4a10; background: #e7f5d3; }

/* ---------- In-tool link buttons ---------- */

.pfr-app .pfr-eg-linkbtn {
	appearance: none;
	-webkit-appearance: none;
	display: inline;
	margin: 0;
	padding: 0;
	font-family: var(--pfr-font);
	font-size: inherit;
	font-weight: 700;
	line-height: inherit;
	color: var(--pfr-red-dark);
	text-align: left;
	text-decoration: underline;
	text-underline-offset: 2px;
	background: none;
	border: 0;
	box-shadow: none;
	cursor: pointer;
}

.pfr-app .pfr-eg-linkbtn:hover {
	color: var(--pfr-red);
}

.pfr-app .pfr-eg-linkbtn:focus-visible,
.pfr-app .pfr-eg-chip:focus-visible,
.pfr-app .pfr-eg-source summary:focus-visible,
.pfr-app .pfr-eg-inline-link:focus-visible,
.pfr-app .pfr-eg-name:focus-visible {
	outline: 3px solid #1a5fd0;
	outline-offset: 2px;
}

/* ---------- Method mode ---------- */

.pfr-app .pfr-eg-chips-wrap,
.pfr-app .pfr-eg-methods {
	margin: 0 0 14px;
}

.pfr-app .pfr-eg-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pfr-app .pfr-eg-chip {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 14px;
	font-family: var(--pfr-font);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--pfr-ink);
	background: var(--pfr-card);
	border: 2px solid var(--pfr-line-strong);
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.pfr-app .pfr-eg-chip:hover {
	border-color: var(--pfr-ink);
}

.pfr-app .pfr-eg-chip[aria-pressed="true"] {
	color: #fff;
	background: var(--pfr-red);
	border-color: var(--pfr-red-dark);
}

.pfr-app .pfr-eg-chip-count {
	font-size: 0.8125rem;
	font-weight: 800;
	opacity: 0.85;
	font-variant-numeric: tabular-nums;
}

.pfr-app .pfr-eg-loc-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
}

.pfr-app .pfr-eg-table {
	width: 100%;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 0.9375rem;
	background: #fff;
}

.pfr-app .pfr-eg-table th,
.pfr-app .pfr-eg-table td {
	margin: 0;
	padding: 8px 10px;
	text-align: left;
	vertical-align: top;
	border: 0;
	border-bottom: 1px solid var(--pfr-line);
	background: #fff;
	color: var(--pfr-ink);
	line-height: 1.3;
	text-transform: none;
	letter-spacing: normal;
}

.pfr-app .pfr-eg-table thead th {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pfr-muted);
	background: var(--pfr-card-soft);
	white-space: nowrap;
}

.pfr-app .pfr-eg-table tbody th {
	font-weight: 700;
	min-width: 130px;
	background: var(--pfr-card-soft);
}

.pfr-app .pfr-eg-table tr:last-child th,
.pfr-app .pfr-eg-table tr:last-child td {
	border-bottom: 0;
}

.pfr-app .pfr-eg-table td {
	white-space: nowrap;
}

.pfr-app .pfr-eg-table td.pfr-eg-notes {
	min-width: 180px;
	font-size: 0.8125rem;
	color: var(--pfr-muted);
	white-space: normal;
}

/* ---------- Breakpoints ---------- */

@media (max-width: 599px) {
	.pfr-app .pfr-eg-evo-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pfr-app .pfr-eg-actions .pfr-btn {
		flex: 1 1 auto;
	}

	.pfr-app .pfr-eg-fact dt {
		flex-basis: 100px;
	}

	.pfr-app .pfr-eg-chain .pfr-eg-chain {
		margin-left: 8px;
		padding-left: 10px;
	}
}

/* =====================================================================
 * Phase 2 - Evolution Guide: progression. The chain is the centrepiece:
 * every stage is a node, every step says what it needs.
 * ===================================================================== */

.pfr-app .pfr-eg-card {
	border-top: 4px solid var(--pfr-accent);
}

.pfr-app .pfr-eg-chain-row {
	padding: 8px 12px;
	background: #fff;
	border: 1px solid var(--pfr-line);
	border-left: 5px solid var(--pfr-accent);
	border-radius: var(--pfr-radius-sm);
	box-shadow: var(--pfr-shadow);
}

.pfr-app .pfr-eg-chain-item--current > .pfr-eg-chain-row {
	background: var(--pfr-accent-wash);
	border: 2px solid var(--pfr-accent);
	border-left-width: 6px;
}

.pfr-app .pfr-eg-chain-sprite {
	flex-basis: 56px;
	width: 56px;
	height: 56px;
}

.pfr-app .pfr-eg-chain-via {
	display: inline-block;
	margin: 0 0 6px;
	padding: 3px 10px;
	color: var(--pfr-accent-dark);
	background: var(--pfr-accent-soft);
	border-radius: 999px;
}

.pfr-app .pfr-eg-chain-name {
	font-size: 1.0625rem;
}

.pfr-app .pfr-eg-chip[aria-pressed="true"] {
	color: #fff;
	background: var(--pfr-accent);
	border-color: var(--pfr-accent);
}

.pfr-app .pfr-eg-headline {
	font-size: 1.125rem;
	font-weight: 800;
}

.pfr-app .pfr-eg-linkbtn,
.pfr-app .pfr-eg-chain-btn,
.pfr-app .pfr-eg-inline-link {
	color: var(--pfr-accent-dark);
}

/* =====================================================================
 * 1.5.3 - same on the method tables: wrapping instead of sideways scrolling.
 * ===================================================================== */

@media (max-width: 700px) {
	.pfr-app .pfr-eg-table th,
	.pfr-app .pfr-eg-table td {
		padding: 7px 8px;
		white-space: normal;
	}

	.pfr-app .pfr-eg-table tbody th {
		min-width: 0;
	}

	.pfr-app .pfr-eg-table td.pfr-eg-notes {
		min-width: 0;
	}

	.pfr-app .pfr-eg-table thead th {
		font-size: 0.6875rem;
		white-space: normal;
	}
}

/* =====================================================================
 * 1.6.0 - what a Pokemon's evolutions add up to, before the badges.
 * One "Stone Evolution" badge next to a "Not Available" badge could not
 * say that three of Eevee's five branches work here and two cannot: the
 * branches are counted instead, and each one keeps its own reason below.
 * ===================================================================== */

.pfr-app .pfr-eg-branches {
	margin: 12px 0 2px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
}

.pfr-app .pfr-eg-branch {
	padding: 4px 11px;
	font-size: 0.875rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	border-radius: 999px;
}

.pfr-app .pfr-eg-branch--ok {
	color: var(--pfr-green);
	background: var(--pfr-green-soft);
}

.pfr-app .pfr-eg-branch--no {
	color: var(--pfr-red-dark);
	background: var(--pfr-red-soft);
}

.pfr-app .pfr-eg-branch--dex {
	color: var(--pfr-muted);
	background: var(--pfr-card-soft);
	border: 1px solid var(--pfr-line);
}

.pfr-app .pfr-eg-branch-sep {
	color: var(--pfr-line-strong);
	font-weight: 800;
}
