/**
 * 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);
}

/* Content column matches production (theme.css .k2-page-nav) */
.player-feast-body .k2-page-nav {
	max-width: var(--k2-max-width, 1200px);
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 48px;
}

/* ── 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__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__toolbar {
	margin: 0 0 12px;
}

.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;
	gap: 8px 4px;
	width: 100%;
	max-width: var(--k2-chart-max-width, 960px);
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick {
	--pm3-cal-cell-size: 8px;
	--pm3-cal-cell-gap: 2px;
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__grid {
	grid-template-columns: repeat(7, var(--pm3-cal-cell-size, 8px));
	gap: var(--pm3-cal-cell-gap, 2px);
}

.pm3d-section__content > .pm3-cal--hero.pm3-cal--year-pick .pm3-cal__cell {
	width: var(--pm3-cal-cell-size, 8px);
	height: var(--pm3-cal-cell-size, 8px);
}

.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));
	}
}

@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));
	}
}

.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;
}

/* ── CORE hero (prod k2-player-hero plate + rank) ── */

.player-feast-body .k2-player-nav-bar {
	margin: 0 0 28px;
}

/* ── 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 .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);
}

/* ── 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;
}

.pm3d-chart__summary-note {
	color: var(--k2-text-muted);
	font-size: 0.92em;
}

.pm3d-career-charts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	max-width: var(--k2-chart-max-width, 960px);
}

.pm3d-career-charts > .player-rating-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 {
	color: var(--k2-text-secondary, var(--k2-text-primary));
}

.pm3d-rating-toggle__btn.is-active {
	color: var(--k2-segment-active-text);
	border-color: var(--k2-segment-active-ring);
}

.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;
}

.pm3d-matchups {
	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 > .pm3d-career-charts,
.pm3d-section__content > .pm3d-matchups,
.pm3d-career-charts > .player-rating-chart,
.pm3d-career-charts > .player-games-month-chart,
.pm3d-matchups > .player-top-opponents-chart,
.pm3d-matchups > .player-head-to-head-chart,
.pm3d-matchups > .player-compare-rating-chart,
.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;
}
