/**
 * Player profile feast — section plates, chart wrappers, calendar-in-section overrides.
 */

.player-feast-body {
	/* Mock 3A monument plate + peak activity counts */
	--pm3-ember: var(--k2-pure-amber, #ffb74d);
	--pm3-ember-glow: rgba(255, 183, 77, 0.42);
}

body.k2-site.k2-player-wing.player-feast-body .k2-player-hero {
	margin-left: calc(var(--k2-player-hero-glow-inset) + 10px);
}

/* Content column — max-width 1200px; horizontal gutter = body.k2-site padding only */

/* ── Section: title/hint at column edge, content below ── */

.pm3d-section {
	margin-bottom: 28px;
	padding: 0;
	border: none;
	background: none;
}

.pm3d-section__title.k2-panel-heading {
	margin-bottom: 8px;
}

.pm3d-section__hint {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--k2-text-muted);
}

.pm3d-section__content {
	min-width: 0;
}

/* Played days — realm-colored played cells, no glow */
.pm3d-section__content > .pm3-cal--hero {
	width: 100%;
	box-sizing: border-box;
	padding: 20px 0 24px;
	border: none;
	border-radius: var(--k2-radius-lg);
	background: none;
	/* Brighter empty-day grid on page background (not inside a surface card) */
	--pm3-cal-cell-empty: var(--k2-bg-hover);
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__cell--play {
	background: var(--k2-accent);
	box-shadow: none;
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__legend .pm3-cal__cell:not(.pm3-cal__cell--play) {
	background: var(--pm3-cal-cell-empty);
	box-shadow: inset 0 0 0 1px var(--k2-border-subtle);
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__status {
	margin: 0 0 12px;
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__year {
	margin-top: 0;
	width: 100%;
}

/* Weekday header row misaligns when months auto-fill — hide on 3D */
.pm3d-section__content > .pm3-cal--hero .pm3-cal__weekdays {
	display: none;
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__months {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 20px 24px;
	width: 100%;
}

.pm3d-section--played-days .pm3d-section__hint {
	margin-top: 0;
	margin-bottom: 16px;
}

.pm3d-section--played-days {
	padding-top: 24px;
	padding-bottom: 20px;
	margin-bottom: 0;
}

.pm3d-section--played-days .pm3d-section__content > .pm3-cal--hero {
	padding-bottom: 16px;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick {
	padding-top: 0;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__year-picker {
	margin: 0 0 12px;
	padding: 2px;
	background: var(--k2-bg-surface);
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__year-btn {
	padding: 3px 9px;
	font-size: 12px;
	line-height: 1.25;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__year-btn:hover:not(.is-active) {
	color: var(--k2-text-secondary);
	background: rgba(255, 255, 255, 0.05);
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__year-btn.is-active {
	color: var(--k2-segment-active-text);
	background: color-mix(in srgb, var(--k2-accent) 14%, var(--k2-bg-elevated));
	border-color: color-mix(in srgb, var(--k2-accent) 42%, transparent);
	box-shadow: none;
}

.pm3-cal--days .pm3-cal__grid .pm3-cal__cell:not(.pm3-cal__cell--pad):focus {
	outline: 1px solid var(--k2-segment-active-ring);
	outline-offset: 1px;
}

.pm3-cal--days .pm3-cal__cell--play.pm3-cal__cell--clickable {
	cursor: pointer;
}

.pm3-cal--days .pm3-cal__cell--pinned.pm3-cal__cell--play {
	outline: 2px solid var(--k2-segment-active-ring);
	outline-offset: 1px;
}

.pm3-cal__tip-coarse-hint {
	margin: 8px 0 0;
	font-size: 0.85em;
	opacity: 0.88;
}

/* Missed days — softer edge so the grid reads calmer */
.pm3d-section__content > .pm3-cal--hero.pm3-cal--days .pm3-cal__cell:not(.pm3-cal__cell--play):not(.pm3-cal__cell--future):not(.pm3-cal__cell--pad) {
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k2-border-subtle) 38%, transparent);
}

/* Future days/weeks — grid slot visible, not yet played or missed */
.pm3d-section__content > .pm3-cal--hero.pm3-cal--days .pm3-cal__cell--future,
.pm3d-section__content > .pm3-cal--hero.pm3-cal--weeks .pm3-cal__cell--future {
	background: color-mix(in srgb, var(--k2-bg-hover) 42%, transparent);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k2-border-subtle) 55%, transparent);
	opacity: 0.68;
}

.pm3d-section--played-weeks {
	padding-top: 16px;
	padding-bottom: 16px;
	margin-top: 0;
	margin-bottom: 0;
}

.pm3d-section--played-weeks .pm3d-section__content > .pm3-cal--hero {
	padding-bottom: 16px;
	display: grid;
	grid-template-columns: minmax(0, 3fr) auto minmax(0, 7fr);
	align-items: start;
}

.pm3d-section--played-weeks .pm3d-section__hint {
	margin-top: 0;
	margin-bottom: 32px;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--weeks {
	padding-top: 0;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--weeks .pm3-cal__years {
	margin-top: 0;
}

.pm3d-section--played-weeks .pm3d-section__content > .pm3-cal--hero.pm3-cal--weeks .pm3-cal__years {
	grid-column: 2;
	width: fit-content;
	max-width: 100%;
}

.pm3-cal--weeks .pm3-cal__cell:not(.pm3-cal__cell--before-join):not(.pm3-cal__cell--future):focus {
	outline: 1px solid var(--k2-segment-active-ring);
	outline-offset: 1px;
}

.pm3-cal--weeks .pm3-cal__cell--play.pm3-cal__cell--clickable {
	cursor: pointer;
}

.pm3-cal--weeks .pm3-cal__cell--pinned.pm3-cal__cell--play {
	outline: 2px solid var(--k2-segment-active-ring);
	outline-offset: 1px;
}

/* Missed weeks — same calm edge as days */
.pm3d-section__content > .pm3-cal--hero.pm3-cal--weeks .pm3-cal__cell:not(.pm3-cal__cell--play):not(.pm3-cal__cell--future):not(.pm3-cal__cell--before-join) {
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k2-border-subtle) 38%, transparent);
}

/* Profile calendar + rating chart day tooltips — Amiga realm uses chart pitch on rating line */
body.k2-site .k2-link-star--chart-pitch,
body.k2-site span.k2-link-star--chart-pitch {
	color: color-mix(in srgb, var(--k2-pure-pitch) 85%, var(--k2-text-primary));
	font-weight: 600;
}

body.k2-site .k2-table-tooltip--player-cal .k2-link-star--chart-pitch:hover,
body.k2-site .k2-table-tooltip--player-cal .k2-link-star--chart-pitch:focus-visible {
	color: color-mix(in srgb, var(--k2-pure-pitch) 95%, var(--k2-text-primary));
}

body.k2-site .k2-table-tooltip.k2-table-tooltip--player-cal {
	max-width: min(540px, calc(100vw - 24px));
	padding: 10px 12px;
}

body.k2-site .k2-table-tooltip--player-cal .k2-table-tooltip__body {
	margin-bottom: 0;
}

.pm3-cal-day-games-list {
	display: grid;
	grid-template-columns: 5.25em auto 2.1ch 0.95ch 2.1ch auto;
	column-gap: 6px;
	width: max-content;
	max-width: 100%;
	align-items: baseline;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
}

body.k2-site .k2-table-tooltip--player-cal .pm3-cal-day-games-list > li {
	display: contents;
}

body.k2-site .k2-table-tooltip--player-cal .pm3-cal-day-games-list__cell {
	padding: 4px 0;
	border-bottom: 1px solid var(--k2-border-subtle);
}

body.k2-site .k2-table-tooltip--player-cal .pm3-cal-day-games-list > li:last-child > .pm3-cal-day-games-list__cell {
	border-bottom: none;
}

.pm3-cal-day-games-list__when {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	color: var(--k2-text-muted);
	font-size: 11px;
}

.pm3-cal-day-games-list__side--a {
	text-align: right;
	white-space: nowrap;
}

.pm3-cal-day-games-list__goals,
.pm3-cal-day-games-list__score-sep {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--k2-text-primary);
}

.pm3-cal-day-games-list__goals--a {
	text-align: right;
	margin-right: -3px;
}

.pm3-cal-day-games-list__score-sep {
	text-align: center;
	margin-left: -3px;
	margin-right: -3px;
}

.pm3-cal-day-games-list__goals--b {
	text-align: left;
	margin-left: -3px;
}

.pm3-cal-day-games-list__side--b {
	text-align: left;
	white-space: nowrap;
}

.pm3-cal-day-games-list__side a {
	white-space: nowrap;
}

.pm3-cal-day-games-list__side .pm3-cal__tip-rating {
	white-space: nowrap;
}

.pm3-cal__tip-rating {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.pm3-cal__tip-loading,
.pm3-cal__tip-empty {
	margin: 0;
	color: var(--k2-text-muted);
	font-size: 12px;
}

.pm3-cal__tip-summary {
	margin: 0 0 10px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--k2-tooltip-body);
}

.pm3-cal__tip-truncated {
	margin: 6px 0 0;
	color: var(--k2-text-muted);
	font-size: 11px;
}

#k2-player-rating-game-tooltip .k2-table-tooltip__title {
	margin-bottom: 8px;
}

.pm3-cal__tip-game-num {
	margin: 0 0 10px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--k2-tooltip-body);
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__months {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	flex-wrap: nowrap;
	/* ~1.3 day-cell widths between months (see 100cqi / (8 × cols − 1) × 1.3) */
	gap: clamp(4px, calc(100cqi * 1.3 / 95), 21px);
	width: 100%;
	max-width: var(--k2-max-width, 1200px);
	container-type: inline-size;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__month {
	min-width: 0;
	container-type: inline-size;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	/* ~30% of cell width — parity with weeks heatmap (3px gap on 10px cells) */
	gap: clamp(2px, 3.4cqi, 5px);
	width: 100%;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__cell {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__month-label {
	font-size: 9px;
	margin-bottom: 4px;
	text-align: center;
}

@media (max-width: 900px) {
	.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__months {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		gap: clamp(6px, calc(100cqi * 1.3 / 47), 31px);
	}
}

@media (max-width: 600px) {
	.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__months {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: clamp(6px, calc(100cqi * 1.3 / 31), 26px);
	}
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__legend {
	margin-top: 16px;
}

/* Legend swatches — matched size */
.pm3d-section__content > .pm3-cal--hero .pm3-cal__legend .pm3-cal__cell {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.pm3d-section__content > .pm3-cal--hero .pm3-cal__legend .pm3-cal__cell--play {
	background: var(--k2-accent);
	box-shadow: none;
}

/* ── Presence + career tile grids ── */

.pm3d-career__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 10px;
}

.pm3d-career__tile {
	padding: 12px 14px;
	border-radius: var(--k2-radius-md);
	background: rgba(0, 0, 0, 0.2);
	border: 1px solid var(--k2-border-subtle);
}

.pm3d-career__label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--k2-text-muted);
	margin-bottom: 6px;
}

.pm3d-career__value {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--k2-text-primary);
	line-height: 1.3;
}


/* Peak activity — realm accent on game counts (not fixed amber) */
.pm3d-section .pm3-busiest__list strong {
	color: var(--k2-link-star);
}

/* ── Best friend duel (realm-colored center glow) ── */

.pm3d-section__content > .pm3-duel {
	margin: 0;
	border-radius: var(--k2-radius-md);
	overflow: hidden;
}

.pm3d-section__content > .pm3-duel .pm3-duel__center {
	background: radial-gradient(circle, var(--k2-accent-glow), transparent 70%);
}

.player-feast-body .pm3-duel__vs {
	color: var(--k2-link-star);
}

.player-feast-body .pm3-duel__count strong {
	color: var(--k2-link-star);
}

/* ── Moments mosaic ── */

.pm3d-section--moments .pm3d-section__hint {
	margin-top: 0;
	margin-bottom: 22px;
}

/* ── Career charts ── */

.pm3d-section--charts .pm3d-section__hint {
	margin-top: 0;
	margin-bottom: 22px;
}

.pm3d-section--top-opponents .pm3d-section__hint {
	margin-top: 0;
	margin-bottom: 22px;
}

.pm3d-section .pm3-moments__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
}

.pm3d-section .pm3-moment {
	padding: 18px 16px;
	border-radius: var(--k2-radius-md);
	background: var(--k2-bg-surface);
	border: 2px solid var(--k2-border-subtle);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
	transition: box-shadow 0.2s, border-color 0.2s;
}

.pm3d-section .pm3-moment--streak {
	border-color: var(--k2-border-subtle);
	background: var(--k2-bg-surface);
}

.pm3d-section .pm3-moment--streak .pm3-moment__score {
	color: var(--k2-link-star);
	text-shadow: 0 0 calc(var(--k2-accent-glow-blur) * var(--k2-glow-strength)) var(--k2-accent-glow);
}

.pm3d-section .pm3-moment:hover {
	border-color: var(--k2-accent);
	box-shadow: 0 0 20px var(--k2-accent-glow);
}

.pm3d-section .pm3-moments--mosaic .pm3-moment:nth-child(odd) {
	transform: rotate(-0.35deg);
}

.pm3d-section .pm3-moments--mosaic .pm3-moment:nth-child(even) {
	transform: rotate(0.3deg);
}

body.k2-site .pm3d-section--moments .pm3-moment__score,
body.k2-site .pm3d-section--moments .pm3-moment__score a {
	color: var(--k2-link-star);
	font-family: var(--k2-font-body);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.1;
}

body.k2-site .pm3d-section--moments .pm3-moment__score a:hover,
body.k2-site .pm3d-section--moments .pm3-moment__score a:focus-visible {
	color: var(--k2-link-star);
}

/* ── Charts: title outside; prod chart card only on content child ── */

.pm3d-chart__status,
.pm3d-chart__meta,
.pm3d-chart__opponent {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--k2-text-muted);
}

.pm3d-chart__summary {
	margin: 0 0 8px;
	color: var(--k2-text-primary);
	font-size: 1.05em;
}

.player-rating-chart .pm3d-chart__summary {
	color: var(--k2-text-muted);
}

.player-rank-chart .pm3d-chart__summary,
.player-compare-rank-chart .pm3d-chart__summary {
	color: var(--k2-text-muted);
}

.player-compare-rating-chart .pm3d-chart__summary {
	color: var(--k2-text-muted);
}

.pm3d-chart__summary-note {
	color: var(--k2-text-muted);
	font-size: 0.92em;
}

/* Solo chart panel headings — fixed chart ink (matches line) */
.player-rating-chart:not([data-realm="amiga"]) > .k2-panel-heading {
	color: color-mix(in srgb, var(--k2-pure-amber) 85%, var(--k2-text-primary));
}

.player-rating-chart[data-realm="amiga"] > .k2-panel-heading {
	color: color-mix(in srgb, var(--k2-pure-pitch) 85%, var(--k2-text-primary));
}

.player-rank-chart > .k2-panel-heading {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
}

/* Online solo rating chart — fixed chart amber (matches rating line — not UI tint link-star) */
.player-rating-chart:not([data-realm="amiga"]) .pm3-chart-peak-value {
	color: color-mix(in srgb, var(--k2-pure-amber) 85%, var(--k2-text-primary));
	font-weight: 600;
}

.player-rating-chart:not([data-realm="amiga"]) .pm3d-chart__summary-note a.pm3-chart-peak-link,
.player-rating-chart:not([data-realm="amiga"]) .pm3d-chart__summary-note a.pm3-chart-peak-link:visited {
	color: color-mix(in srgb, var(--k2-pure-amber) 85%, var(--k2-text-primary));
	font-weight: 600;
	text-decoration: none;
}

.player-rating-chart:not([data-realm="amiga"]) .pm3d-chart__summary-note a.pm3-chart-peak-link:hover,
.player-rating-chart:not([data-realm="amiga"]) .pm3d-chart__summary-note a.pm3-chart-peak-link:focus-visible {
	color: color-mix(in srgb, var(--k2-pure-amber) 95%, var(--k2-text-primary));
}

/* Amiga solo rating chart — chart pitch (matches rating line — not UI tint link-star) */
.player-rating-chart[data-realm="amiga"] .pm3-chart-peak-value {
	color: color-mix(in srgb, var(--k2-pure-pitch) 85%, var(--k2-text-primary));
	font-weight: 600;
}

.player-rating-chart[data-realm="amiga"] .pm3d-chart__summary-note a.pm3-chart-peak-link,
.player-rating-chart[data-realm="amiga"] .pm3d-chart__summary-note a.pm3-chart-peak-link:visited {
	color: color-mix(in srgb, var(--k2-pure-pitch) 85%, var(--k2-text-primary));
	font-weight: 600;
	text-decoration: none;
}

.player-rating-chart[data-realm="amiga"] .pm3d-chart__summary-note a.pm3-chart-peak-link:hover,
.player-rating-chart[data-realm="amiga"] .pm3d-chart__summary-note a.pm3-chart-peak-link:focus-visible {
	color: color-mix(in srgb, var(--k2-pure-pitch) 95%, var(--k2-text-primary));
}

/* Amiga solo rank chart — chart chrome (matches rank line — not UI tint link-star) */
.player-rank-chart .pm3-chart-peak-value {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 600;
}

.player-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link,
.player-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link:visited {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 600;
	text-decoration: none;
}

.player-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link:hover,
.player-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link:focus-visible {
	color: color-mix(in srgb, var(--k2-pure-chrome) 95%, var(--k2-text-primary));
}

.player-compare-rank-chart .pm3-chart-peak-value--subject {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 700;
}

.player-compare-rank-chart .pm3-chart-peak-value--opponent {
	color: color-mix(in srgb, var(--k2-table-negative) 85%, var(--k2-text-primary));
	font-weight: 700;
}

.player-compare-rating-chart .pm3-chart-peak-value--subject {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 700;
}

.player-compare-rating-chart .pm3-chart-peak-value--opponent {
	color: color-mix(in srgb, var(--k2-table-negative) 85%, var(--k2-text-primary));
	font-weight: 700;
}

.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject,
.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:visited,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:visited {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 700;
	text-decoration: none;
}

.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:hover,
.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:focus-visible,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:hover,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--subject:focus-visible {
	color: color-mix(in srgb, var(--k2-pure-chrome) 95%, var(--k2-text-primary));
}

.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent,
.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:visited,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:visited {
	color: color-mix(in srgb, var(--k2-table-negative) 85%, var(--k2-text-primary));
	font-weight: 700;
	text-decoration: none;
}

.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:hover,
.player-compare-rank-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:focus-visible,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:hover,
.player-compare-rating-chart .pm3d-chart__summary-note a.pm3-chart-peak-link--opponent:focus-visible {
	color: color-mix(in srgb, var(--k2-table-negative) 95%, var(--k2-text-primary));
}

body.k2-site .k2-chart-html-tooltip {
	position: fixed;
	z-index: 1000;
	max-width: min(420px, calc(100vw - 24px));
	padding: 8px 10px;
	border: 1px solid var(--k2-tooltip-border);
	border-radius: var(--k2-radius-sm);
	background: var(--k2-tooltip-surface);
	box-shadow: var(--k2-shadow-surface);
	color: var(--k2-tooltip-body);
	font-size: 12px;
	line-height: 1.35;
	pointer-events: none;
	transform: translate(-50%, calc(-100% - 8px));
}

body.k2-site .k2-chart-html-tooltip[hidden] {
	display: none;
}

body.k2-site .k2-chart-html-tooltip__title {
	margin-bottom: 4px;
	color: var(--k2-tooltip-title);
	font-weight: 600;
}

body.k2-site .k2-chart-html-tooltip__body {
	display: grid;
	gap: 4px;
}

body.k2-site .k2-chart-html-tooltip__row {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

body.k2-site .k2-chart-html-tooltip__swatch {
	flex: 0 0 10px;
	width: 10px;
	height: 10px;
	margin-top: 3px;
	border-radius: 2px;
}

body.k2-site .k2-chart-html-tooltip .pm3-chart-tooltip-rating--subject {
	color: color-mix(in srgb, var(--k2-pure-chrome) 85%, var(--k2-text-primary));
	font-weight: 700;
}

body.k2-site .k2-chart-html-tooltip .pm3-chart-tooltip-rating--opponent {
	color: color-mix(in srgb, var(--k2-table-negative) 85%, var(--k2-text-primary));
	font-weight: 700;
}

.pm3d-career-charts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	max-width: var(--k2-chart-max-width, 960px);
}

/* Profile — center the last four chart panels (career stack + top opponents) in the page column */
.player-feast-body .pm3d-section--charts .pm3d-section__content > .pm3d-career-charts,
.player-feast-body .pm3d-section--top-opponents .pm3d-section__content > .pm3d-top-opponents {
	margin-left: auto;
	margin-right: auto;
}

.pm3d-career-charts > .player-rating-chart,
.pm3d-career-charts > .player-rank-chart,
.pm3d-career-charts > .player-games-month-chart {
	margin: 0;
	min-width: 0;
}

.pm3d-rating-toggle {
	display: inline-flex;
	gap: 4px;
	margin: 0 0 10px;
	padding: 3px;
	border: 1px solid var(--k2-border-subtle);
	border-radius: var(--k2-radius-md, 8px);
	background: var(--k2-bg-elevated, #1a1f2e);
}

.pm3d-rating-toggle__btn {
	margin: 0;
	padding: 6px 12px;
	border: 1px solid transparent;
	border-radius: calc(var(--k2-radius-md, 8px) - 2px);
	background: transparent;
	color: var(--k2-text-muted);
	font: inherit;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.pm3d-rating-toggle__btn:hover:not(.is-active) {
	color: var(--k2-text-secondary, var(--k2-text-primary));
	background: rgba(255, 255, 255, 0.05);
}

.pm3d-rating-toggle__btn.is-active {
	color: var(--k2-segment-active-text);
	border-color: var(--k2-segment-active-ring);
}

/* ELO rating + rank chart toggles — fixed chart ink (matches line), not UI tint */
body.k2-site .k2-chart-panel > .k2-panel-heading.k2-table-helped {
	cursor: help;
	width: fit-content;
	max-width: 100%;
}

body.k2-site .k2-chart-panel > .k2-panel-heading.k2-table-helped:focus,
body.k2-site .k2-chart-panel > .k2-panel-heading.k2-table-helped:focus-visible {
	outline: none;
}

.player-rating-chart:not([data-realm="amiga"]) .pm3d-rating-toggle__btn.is-active {
	color: color-mix(in srgb, var(--k2-pure-amber) 72%, var(--k2-text-secondary));
	background: color-mix(in srgb, var(--k2-pure-amber) 14%, var(--k2-bg-elevated));
	border-color: color-mix(in srgb, var(--k2-pure-amber) 42%, transparent);
	box-shadow: none;
	font-weight: 600;
}

.player-rating-chart[data-realm="amiga"] .pm3d-rating-toggle__btn.is-active {
	color: color-mix(in srgb, var(--k2-pure-pitch) 72%, var(--k2-text-secondary));
	background: color-mix(in srgb, var(--k2-pure-pitch) 14%, var(--k2-bg-elevated));
	border-color: color-mix(in srgb, var(--k2-pure-pitch) 42%, transparent);
	box-shadow: none;
	font-weight: 600;
}

.player-rank-chart .pm3d-rating-toggle__btn.is-active {
	color: color-mix(in srgb, var(--k2-pure-chrome) 72%, var(--k2-text-secondary));
	background: color-mix(in srgb, var(--k2-pure-chrome) 14%, var(--k2-bg-elevated));
	border-color: color-mix(in srgb, var(--k2-pure-chrome) 42%, transparent);
	box-shadow: none;
	font-weight: 600;
}

.pm3d-chart-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 0 0 10px;
}

.pm3d-chart-toolbar .pm3d-rating-toggle {
	margin: 0;
}

.pm3d-chart-toolbar .pm3d-chart__opponent {
	margin: 0;
}

body.k2-site .player-rating-chart__toolbar,
body.k2-site .player-compare-rating-chart__toolbar,
body.k2-site .player-rank-chart__toolbar,
body.k2-site .player-compare-rank-chart__toolbar {
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

body.k2-site .player-rating-chart__toolbar-row,
body.k2-site .player-compare-rating-chart__toolbar-row,
body.k2-site .player-rank-chart__toolbar-row,
body.k2-site .player-compare-rank-chart__toolbar-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
}

body.k2-site .player-rank-chart__toolbar[data-range-mode="linear"] .player-rank-chart__percentile-window,
body.k2-site .player-compare-rank-chart__toolbar[data-range-mode="linear"] .player-compare-rank-chart__percentile-window {
	display: none !important;
}

body.k2-site .player-rank-chart__toolbar[data-range-mode="percentile"] .player-rank-chart__window,
body.k2-site .player-compare-rank-chart__toolbar[data-range-mode="percentile"] .player-compare-rank-chart__window {
	display: none !important;
}

.pm3d-matchups,
.pm3d-top-opponents {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: var(--k2-chart-max-width, 960px);
}

.pm3d-matchups__subtitle {
	margin: 4px 0 0;
	font-size: 1rem;
	font-weight: 500;
	color: var(--k2-text-secondary, var(--k2-text-muted));
}

.pm3d-section__content > .player-rating-chart,
.pm3d-section__content > .player-games-month-chart,
.pm3d-section__content > .player-goals-scored-histogram,
.pm3d-section__content > .pm3d-career-charts,
.pm3d-section__content > .pm3d-matchups,
.pm3d-section__content > .pm3d-top-opponents,
.pm3d-career-charts > .player-rating-chart,
.pm3d-career-charts > .player-games-month-chart,
.pm3d-career-charts > .player-goals-scored-histogram,
.pm3d-matchups > .player-top-opponents-chart,
.pm3d-top-opponents > .player-top-opponents-chart,
.pm3d-matchups > .player-head-to-head-chart,
.pm3d-matchups > .player-compare-rating-chart,
.pm3d-matchups > .player-goals-scored-histogram,
.pm3d-matchups > .player-goals-scored-histogram-grouped-heading,
.pm3d-matchups > .player-h2h-opponent-search {
	margin: 0;
	max-width: var(--k2-chart-max-width, 960px);
}

.player-feast-body .k2-chart-frame {
	position: relative;
	width: 100%;
	max-width: var(--k2-chart-max-width);
	height: var(--k2-chart-frame-height, 271px);
	margin: 0 auto;
}

.player-feast-body .k2-chart-frame--tall {
	--k2-chart-frame-height: 360px;
}

.player-top-opponents-chart .player-top-opponents-canvas {
	display: block;
	width: 100%;
	max-width: var(--k2-chart-max-width, 960px);
	height: auto;
	margin: 0 auto;
}

.pm3d-section__content canvas:not(.player-top-opponents-canvas) {
	display: block;
	max-width: 100%;
	height: auto;
}

.pm3d-h2h-search {
	margin: 0;
}

/* Amiga profile — content below player nav: body 20px gutter only (no extra 1.25rem). */
.player-feast-body .k2-amiga-profile-lb-slices,
.player-feast-body .k2-amiga-profile-moments,
.player-feast-body .k2-amiga-profile-charts {
	max-width: var(--k2-max-width, 1200px);
	margin-left: auto;
	margin-right: auto;
}

.player-feast-body .k2-amiga-profile-lb-slices {
	padding-bottom: calc(1rem + 6px);
	--k2-amiga-profile-lb-slice-gap: 22px;
	--k2-amiga-profile-lb-slice-col-gap: 18px;
}

.player-feast-body .k2-amiga-profile-moments {
	padding-bottom: 1.5rem;
}

.player-feast-body .k2-amiga-profile-charts {
	display: flex;
	flex-direction: column;
	padding-bottom: 2rem;
}

.player-feast-body .k2-amiga-profile-charts .k2-chart-panel {
	margin-bottom: 0;
}

.player-feast-body .k2-amiga-profile-charts > .k2-amiga-profile-chart + .k2-amiga-profile-chart {
	margin-top: calc((2rem + 1rem) * 2 / 3);
}

.player-feast-body .k2-amiga-profile-chart {
	padding-bottom: 0;
}

/* Amiga profile — section titles (mosaic slices, Moments, Charts) */
.player-feast-body .k2-amiga-profile-lb-slice-block > .k2-panel-heading,
.player-feast-body .k2-amiga-profile-moments > .k2-panel-heading,
.player-feast-body .k2-amiga-profile-charts > .k2-panel-heading,
.player-feast-body .k2-amiga-profile-chart > .k2-panel-heading {
	color: color-mix(in srgb, var(--k2-text-primary) 82%, var(--k2-text-muted));
}

.player-feast-body .k2-amiga-profile-lb-slices__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--k2-amiga-profile-lb-slice-col-gap);
	align-items: start;
	width: 100%;
}

.player-feast-body .k2-amiga-profile-lb-slices__col {
	display: flex;
	flex-direction: column;
	gap: var(--k2-amiga-profile-lb-slice-gap);
	min-width: 0;
	width: 100%;
}

.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-lb-slice-block.server-records-panel {
	margin: 0;
	width: 100%;
}

/* Beat theme.css server-records-panel .k2-table-wrap { width: fit-content } */
body.k2-site.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-lb-slice-block .k2-table-wrap {
	width: 100%;
	max-width: 100%;
	margin-bottom: 0;
}

body.k2-site.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-lb-slice-block .server-records-table {
	width: 100%;
}

.player-feast-body .k2-amiga-profile-lb-slices .server-records-table {
	font-variant-numeric: tabular-nums;
}

.player-feast-body .k2-amiga-profile-lb-slices .k2-status-medal__svg {
	width: 14px;
	height: auto;
	vertical-align: middle;
}

/* Profile slice values stay right-aligned; honours LB medal td defaults to center */
body.k2-site.player-feast-body .k2-amiga-profile-lb-slices .k2-table.server-records-table.k2-table--calm-stats tbody td.k2-lb-honours-medal-td {
	text-align: right;
}

/* Profile slice stacked values — primary line + muted secondary (Activity tournament dates) */
.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-activity-date {
	color: var(--k2-text-muted);
	font-weight: 400;
}

.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-activity-value--stacked .k2-amiga-profile-activity-date {
	font-size: 11px;
}

.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-activity-value--stacked {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
	line-height: 1.25;
}

.player-feast-body .k2-amiga-profile-lb-slices td.k2-amiga-profile-activity-value-cell--stacked {
	vertical-align: top;
}

/* Calendar / Peak rating: muted date then value on one line (wide gap, no bullet) */
.player-feast-body .k2-amiga-profile-lb-slices .k2-amiga-profile-activity-value--inline {
	display: inline-flex;
	align-items: baseline;
	gap: 0.75em; /* ~triple word space */
	white-space: nowrap;
}

/* Amiga player chronologies — spotlight card (milestone-style, link-star glow) */
.player-feast-body.k2-amiga-chronology-page .k2-amiga-chronology-spotlight-card {
	--k2-ms-accent: var(--k2-link-star);
}

.player-feast-body.k2-amiga-chronology-page .k2-amiga-chronology-spotlight-card__title {
	color: var(--k2-link-star);
}

.player-feast-body.k2-amiga-chronology-page .k2-amiga-chronology-spotlight-card__rule {
	color: var(--k2-text-secondary);
}

.player-feast-body.k2-amiga-chronology-page .k2-amiga-chronology-main {
	margin-top: var(--k2-nav-gap, 18px);
}

.player-feast-body.k2-amiga-chronology-page .k2-amiga-chronology-panel-tabs {
	margin-bottom: var(--k2-nav-gap, 18px);
}

body.k2-site .k2-amiga-chronology-opponents-table.k2-table--tournament-games .k2-amiga-tgame-team {
	white-space: nowrap;
}
