/* Rankings (character, death, zeny, alchemist, blacksmith, homunculus, guild, MVP).
   The podium, board and show-more styles live in leaderboard.css. */

/* Filter bar: the scope line sits on its own row under the fields. */
.fy-ranking-filters { margin-bottom: var(--sp-4); }
.fy-ranking-filters .fy-field { flex: 1 1 200px; max-width: 320px; }
.fy-ranking-filters--wide .fy-field { max-width: none; }
.fy-ranking-scope {
	flex-basis: 100%;
	margin: 0;
	color: var(--text-3);
	font-size: .86rem;
	font-weight: 700;
}
.fy-ranking-scope strong { color: var(--gold-200); }

.fy-ranking-prestige { font-variant-numeric: tabular-nums; }
.fy-lb-card__stats .fy-ranking-prestige { padding: .2rem .65rem; font-size: .86rem; }

/* Column layouts of the boards (desktop and tablet). */
.fy-ranking-t--char { --lb-cols: 52px minmax(0, 1.5fr) minmax(0, 1.05fr) minmax(0, 1.35fr) 100px 118px 70px; }
.fy-ranking-t--metric { --lb-cols: 52px minmax(0, 1.5fr) minmax(0, 1.1fr) minmax(0, 1.35fr) 104px minmax(104px, .9fr); }
.fy-ranking-t--homun { --lb-cols: 52px minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.25fr) 104px 132px 70px; }
.fy-ranking-t--guild { --lb-cols: 52px minmax(0, 2fr) 80px 88px 88px minmax(112px, 1fr) 70px; }
.fy-ranking-t--mvplog { --lb-cols: 150px minmax(0, 1.2fr) minmax(0, 1.5fr) 112px minmax(0, .9fr); }
.fy-ranking-t--mvpkills { --lb-cols: 52px minmax(0, 1.4fr) minmax(0, 1.6fr) 96px; }

@media (min-width: 720px) and (max-width: 1099.98px) {
	.fy-ranking-t--char { --lb-cols: 44px minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.25fr) 78px 100px 52px; }
	.fy-ranking-t--metric { --lb-cols: 44px minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.25fr) 80px minmax(96px, .8fr); }
	.fy-ranking-t--homun { --lb-cols: 44px minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.1fr) 84px 112px 52px; }
	.fy-ranking-t--guild { --lb-cols: 44px minmax(0, 2fr) 64px 72px 64px minmax(104px, 1fr) 52px; }
}

.fy-ranking-castles { color: var(--rose-300); font-weight: 800; }
.fy-ranking-members { color: var(--mint-300); font-weight: 700; }
.fy-ranking-t--mvplog .fy-lb-metric { color: var(--text-3); font: 700 .86rem/1.3 var(--font-body); }
.fy-ranking-when { white-space: nowrap; }

/* Guild board: no filters, just the scope line; the emblem sits on top of the podium card. */
.fy-ranking-scope--solo { margin: 0 0 var(--sp-2); }
.fy-ranking-crest {
	width: 40px;
	height: 40px;
	margin-top: var(--sp-2);
	border-radius: 8px;
	background: rgba(255, 255, 255, .05);
	image-rendering: pixelated;
}
.fy-ranking-stats--guild { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 720px) and (max-width: 1099.98px) {
	/* tablets: label and value lines (leaderboard.css), one per row */
	.fy-ranking-stats--guild { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1100px) {
	.fy-ranking-stats--guild { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* MVP filter: the monster list is long, give the select room. */
.fy-ranking-filters .fy-ranking-mvp-field { flex: 1 1 320px; max-width: 520px; }

/* Unit after the main number on phone cards ("2,218 deaths", "1 kill"); the column head says it on wider screens. */
.fy-ranking-unit { display: none; }

/* Phones: every card has fixed lines, so a long class or guild name never pushes the
   numbers onto a stray extra line:
     character   name + prestige / class, guild / levels, EXP
     one number  name + number / class, guild, levels (the guild name shortens)
     homunculus  name + level / class, owner / intimacy, EXP
     guild       name + level / castles, members, average level / EXP */
@media (max-width: 719.98px) {
	.fy-ranking-filters .fy-field { max-width: none; }
	.fy-ranking-unit { display: inline; margin-left: .3em; color: var(--text-3); font: 700 .8rem/1 var(--font-body); }

	.fy-ranking-t--char td:nth-child(5)::before { content: "Lv\00A0"; }
	.fy-ranking-t--metric td:nth-child(5)::before { content: "\00B7\00A0\00A0 Lv\00A0"; }
	.fy-ranking-t--char td:nth-child(6)::before { content: "\00B7\00A0\00A0 EXP\00A0"; }
	/* base EXP is the tie-breaker; the job EXP stays on wider screens */
	.fy-ranking-t--char td:nth-child(6) .fy-lb-pair + .fy-lb-pair { display: none; }
	/* no badge means no prestige yet: a bare 0 means nothing without its column head */
	.fy-ranking-t--char .fy-lb-metric .fy-lb-none { display: none; }
	.fy-ranking-t--fame .fy-lb-metric::after { content: "\00A0 fame"; color: var(--text-3); font: 700 .8rem/1 var(--font-body); }

	.fy-ranking-t--homun td:nth-child(4)::before { content: "\00B7\00A0\00A0 Owner\00A0"; }
	.fy-ranking-t--homun td:nth-child(5)::before { content: "Intimacy\00A0"; }
	.fy-ranking-t--homun td:nth-child(6)::before { content: "\00B7\00A0\00A0 EXP\00A0"; }
	.fy-ranking-t--homun .fy-lb-metric::before,
	.fy-ranking-t--guild .fy-lb-metric::before { content: "Lv\00A0"; color: var(--text-3); font: 700 .8rem/1 var(--font-body); }

	.fy-ranking-t--guild td:nth-child(3)::before { content: "Castles\00A0"; }
	.fy-ranking-t--guild td:nth-child(4)::before { content: "\00B7\00A0\00A0 Members\00A0"; }
	.fy-ranking-t--guild td:nth-child(5)::before { content: "\00B7\00A0\00A0 Avg Lv\00A0"; }
	.fy-ranking-t--guild td:nth-child(6)::before { content: "EXP\00A0"; }

	.fy-ranking-t--mvplog td.fy-lb-main { order: 0; }
	.fy-ranking-t--mvplog td.fy-lb-metric { font-size: .78rem; }
	.fy-ranking-t--mvplog td:nth-child(2)::before { content: "By\00A0"; }
	.fy-ranking-t--mvplog td:nth-child(4)::before { content: "\00B7\00A0\00A0 EXP\00A0"; }
	.fy-ranking-t--mvplog td:nth-child(5)::before { content: "\00B7\00A0\00A0"; }
	/* the whole log card opens the MVP (its monster page, or its top hunters); other links stay on top */
	.fy-ranking-t--mvplog td.fy-lb-main a::after { content: ""; position: absolute; inset: 0; }
	.fy-ranking-t--mvplog td:not(.fy-lb-main) a { position: relative; z-index: 1; }
}
