.ecShell{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.ecHero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;border: var(--ec-acp-border-size) solid var(--ec-acp-border);border-radius:var(--ec-acp-block-radius);background:linear-gradient(135deg,var(--ec-acp-content-bg),var(--ec-acp-content-alt-bg));box-shadow:none}.ecHero--compact{padding:20px 28px}.ecHeroCopy{max-width:820px}.ecEyebrow{display:inline-block;margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ec-acp-link)}.ecHero h1{margin:0 0 9px;color:var(--ec-acp-progress);font-size:30px}.ecHero p{margin:0;color:var(--ec-acp-text-strong);line-height:1.55}.ecMascot{width:104px;height:104px;object-fit:contain;filter:none}.ecGameCard,.ecPanel{border: var(--ec-acp-border-size) solid var(--ec-acp-border);border-radius:var(--ec-acp-block-radius);background:var(--ec-acp-content-bg);box-shadow:none;overflow:hidden}.ecHud{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ec-acp-link);border-bottom: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecHud>div{padding:12px 16px;background:var(--ec-acp-content-bg)}.ecHud span,.ecStatGrid span{display:block;color:var(--ec-acp-link);font-size:12px}.ecHud strong,.ecStatGrid strong{display:block;margin-top:3px;color:var(--ec-acp-progress);font-size:20px}.ecCanvasWrap{background:var(--ec-acp-content-bg)}.ecCanvasWrap canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;touch-action:none;user-select:none}.ecGameControls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-top: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecGameControls>div:first-child{display:flex;flex-direction:column;gap:3px}.ecGameControls strong{color:var(--ec-acp-text-strong)}.ecGameControls span{color:var(--ec-acp-link);font-size:13px}.ecButtons{display:flex;align-items:center;gap:10px}.ecPermissionNote{max-width:460px;text-align:right}.ecResult{margin:0 18px 18px;padding:18px;border-radius:var(--ec-acp-block-radius);background:var(--ec-acp-content-bg);border: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecResult h2{margin:0 0 14px;color:var(--ec-acp-progress)}.ecResultGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ecResultGrid>div{padding:12px;border-radius:var(--ec-acp-radius-small);background:var(--ec-acp-content-bg)}.ecResultGrid b,.ecResultGrid span{display:block}.ecResultGrid b{color:var(--ec-acp-progress);font-size:19px}.ecResultGrid span{margin-top:3px;color:var(--ec-acp-link);font-size:12px}.ecResultGood{color:var(--ec-acp-link)}.ecResultNote{color:var(--ec-acp-text-strong)}.ecGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ecGrid--stats{grid-template-columns:.8fr 1.2fr}.ecPanel{padding:20px}.ecPanel h2{margin:0 0 14px;color:var(--ec-acp-progress);font-size:19px}.ecPanelHeader{display:flex;align-items:center;justify-content:space-between;gap:14px}.ecPanelHeader a{font-size:13px}.ecStatGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ecStatGrid>div{padding:14px;border-radius:var(--ec-acp-radius-small);background:var(--ec-acp-content-bg)}.ecTableWrap{overflow:auto}.ecTable{width:100%;border-collapse:collapse;min-width:560px}.ecTable th,.ecTable td{padding:10px 11px;text-align:left;border-bottom: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecTable th{color:var(--ec-acp-link);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.ecTable td{color:var(--ec-acp-text-strong)}.ecCards{display:flex;flex-direction:column;gap:10px}.ecMiniCard{padding:14px;border-radius:var(--ec-acp-radius-small);background:var(--ec-acp-content-bg);border: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecMiniCard.is-unlocked{border-color: var(--ec-acp-border)}.ecMiniHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.ecMiniHead strong{color:var(--ec-acp-text-strong)}.ecMiniHead span{color:var(--ec-acp-progress);font-size:12px;white-space:nowrap}.ecMiniCard p{margin:7px 0;color:var(--ec-acp-link);line-height:1.45}.ecMiniCard progress{width:100%;height:8px}.ecMiniCard small{display:block;margin-top:5px;color:var(--ec-acp-link)}.ecBoostGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ecBoostGrid article{padding:14px;border-radius:var(--ec-acp-radius-small);background:var(--ec-acp-content-bg)}.ecBoostGrid strong{color:var(--ec-acp-link)}.ecBoostGrid p{margin:6px 0 0;color:var(--ec-acp-link);line-height:1.45}.ecEmpty{margin:0;color:var(--ec-acp-link)}.ecPeriodNav{display:flex;gap:8px;flex-wrap:wrap}.ecPeriodNav a{padding:8px 12px;border-radius:var(--ec-acp-radius-large);background:var(--ec-acp-content-bg);border: var(--ec-acp-border-size) solid var(--ec-acp-border)}.ecPeriodNav a.is-active{background:var(--ec-acp-content-alt-bg);color:var(--ec-acp-progress);border-color: var(--ec-acp-border)}@media(max-width:900px){.ecGrid,.ecGrid--stats{grid-template-columns:1fr}.ecBoostGrid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.ecHero{padding:20px}.ecMascot{width:76px;height:76px}.ecHero h1{font-size:24px}.ecHud{grid-template-columns:1fr 1fr}.ecGameControls{align-items:flex-start;flex-direction:column}.ecButtons{width:100%;flex-wrap:wrap}.ecResultGrid,.ecStatGrid,.ecBoostGrid{grid-template-columns:1fr 1fr}.ecPanel{padding:16px}}

/* ==========================================================
   Copter AJAX navigation panel
   ========================================================== */

.ecAjaxHub{
  border: var(--ec-acp-border-size) solid var(--ec-acp-border);
  border-radius:var(--ec-acp-block-radius);
  background:
    linear-gradient(
      135deg,
      var(--ec-acp-content-bg),
      var(--ec-acp-content-bg)
    );
  overflow:hidden;
  box-shadow:none}

.ecAjaxTabs{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  overflow-x:auto;
  border-bottom: var(--ec-acp-border-size) solid var(--ec-acp-border);
  background:var(--ec-acp-content-bg)
}

.ecAjaxTab{
  appearance:none;
  border: var(--ec-acp-border-size) solid var(--ec-acp-border);
  border-radius:var(--ec-acp-radius-small);
  padding:9px 15px;
  background:var(--ec-acp-content-bg);
  color:var(--ec-acp-link);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
  transition:
    background .16s ease,
    border-color .16s ease,
    color .16s ease,
    transform .16s ease
}

.ecAjaxTab:hover{
  background:var(--ec-acp-content-alt-bg);
  border-color: var(--ec-acp-border);
  color:var(--ec-acp-text-strong)
}

.ecAjaxTab.is-active{
  background:
    linear-gradient(
      180deg,
      var(--ec-acp-content-alt-bg),
      var(--ec-acp-content-alt-bg)
    );
  border-color: var(--ec-acp-border);
  color:var(--ec-acp-progress);
  box-shadow:none}

.ecAjaxPanel{
  min-height:150px;
  max-height:300px;
  overflow:auto;
  padding:17px 19px;
  scrollbar-gutter:stable
}

.ecAjaxPanel.is-loading{
  display:flex;
  align-items:center;
  justify-content:center
}

.ecAjaxLoading,
.ecAjaxError{
  width:100%;
  padding:26px 18px;
  text-align:center;
  color:var(--ec-acp-link)
}

.ecAjaxError{
  color:var(--ec-acp-text-strong)
}

.ecAjaxSectionHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px
}

.ecAjaxSectionHead h2{
  margin:0;
  color:var(--ec-acp-progress);
  font-size:20px
}

.ecAjaxSectionHead .ecEyebrow{
  margin-bottom:4px
}

.ecAjaxSection .ecTable{
  min-width:650px
}

.ecCards--ajax{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}

.ecPeriodNav button{
  appearance:none;
  padding:7px 11px;
  border-radius:var(--ec-acp-radius-large);
  border: var(--ec-acp-border-size) solid var(--ec-acp-border);
  background:var(--ec-acp-content-bg);
  color:var(--ec-acp-link);
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer
}

.ecPeriodNav button:hover{
  color:var(--ec-acp-text-strong);
  border-color: var(--ec-acp-border)}

.ecPeriodNav button.is-active{
  background:var(--ec-acp-content-alt-bg);
  color:var(--ec-acp-progress);
  border-color: var(--ec-acp-border)}

.ecPanel--record .ecStatGrid--wide{
  grid-template-columns:repeat(4,1fr)
}

@media(max-width:800px){
  .ecAjaxSectionHead{
    flex-direction:column
  }

  .ecCards--ajax{
    grid-template-columns:1fr
  }

  .ecPanel--record .ecStatGrid--wide{
    grid-template-columns:1fr 1fr
  }
}

@media(max-width:520px){
  .ecAjaxPanel{
    max-height:360px;
    padding:14px
  }

  .ecAjaxTabs{
    padding:8px
  }

  .ecAjaxTab{
    padding:8px 12px
  }

  .ecPanel--record .ecStatGrid--wide{
    grid-template-columns:1fr 1fr
  }
}



/* ==========================================================
   COPTER COMPACT V5 SHELL
   Uses the ACP default XenForo style geometry and surface variables.
   ========================================================== */

.ecCopterTabs,
.ecGameCard,
.ecPanel--record,
.ecPanel
{
	width: 100%;
	max-width: 1040px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

/*
 * Tabs are intentionally NOT a card/hero.
 * Only native XF/Eggy buttons are visible until content loads.
 */
.ecCopterTabs
{
	margin-bottom: 12px;
	background: transparent !important;
	border: 0 !important;
	box-shadow:none;
	padding: 0 !important;
}

.ecCopterTabButtons
{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

/*
 * Do not recolour .button itself.
 * Eggy 41/v5/XenForo owns the actual button appearance.
 */
.ecCopterTabButtons .button
{
	margin: 0;
}

.ecCopterTabPanel[hidden]
{
	display: none !important;
}

.ecCopterTabPanel
{
	margin-top: 10px;
}

.ecCopterTabLoading,
.ecCopterTabError
{
	padding: 8px 2px;
	color: var(--ec-acp-text-muted);
	font-size: 13px;
}

.ecCopterTabError
{
	color: var(--ec-acp-link);
}

.ecCopterTabContent
{
	padding: 12px 14px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background: var(--ec-acp-content-bg);
	color: var(--ec-acp-text-strong);
}

.ecCopterTabHeading
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.ecCopterTabHeading > strong
{
	font-size: 15px;
	color: var(--ec-acp-text-strong);
}

.ecCopterPeriods
{
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ecCopterTableWrap
{
	overflow-x: auto;
}

.ecCopterTabContent .ecTable
{
	margin: 0;
	min-width: 620px;
}

.ecCopterCards
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.ecCopterMiniCard
{
	padding: 10px 11px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background: var(--ec-acp-content-alt-bg);
}

.ecCopterMiniCard.is-complete
{
	border-color: var(--ec-acp-border);
}

.ecCopterMiniCard p
{
	margin: 5px 0 7px;
	color: var(--ec-acp-text-muted);
	font-size: 13px;
}

.ecCopterMiniHead
{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
}

.ecCopterMiniHead > strong
{
	color: var(--ec-acp-text-strong);
}

.ecCopterMiniHead > span
{
	color: var(--ec-acp-progress);
	font-size: 12px;
	white-space: nowrap;
}

.ecCopterProgress
{
	height: 6px;
	overflow: hidden;
	margin: 7px 0 5px;
	border-radius:var(--ec-acp-radius-large);
	background: var(--ec-acp-text-strong);
}

.ecCopterProgress > span
{
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--ec-acp-progress);
}

.ecCopterTabEmpty
{
	padding: 10px 0;
	color: var(--ec-acp-text-muted);
}

/*
 * GAME CARD
 *
 * Keep the authoritative 960x540 canvas coordinate space.
 * Only its CSS/display footprint is reduced.
 */
.ecGameCard
{
	width: 100%;
	max-width: 1040px !important;
	overflow: hidden;
	border-color: var(--ec-acp-border) !important;
	background: var(--ec-acp-content-bg) !important;
	box-shadow:none;
}

/*
 * Surrounding game chrome inherits the ACP default XenForo style.
 * The actual cave canvas keeps its own game rendering.
 */
.ecGameCard > :not(canvas)
{
	border-color: var(--ec-acp-border);
}

.ecGameCard canvas
{
	display: block;
	width: 100% !important;
	height: auto !important;
}

/*
 * Neutralise the old large AJAX hub styles if any compiled CSS
 * survives temporarily in cache.
 */
.ecAjaxHub
{
	min-height: 0 !important;
	max-height: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow:none;
}

@media (max-width: 700px)
{
	.ecCopterTabs,
	.ecGameCard,
	.ecPanel--record,
	.ecPanel
	{
		max-width: 100%;
	}

	.ecCopterCards
	{
		grid-template-columns: 1fr;
	}

	.ecCopterTabHeading
	{
		align-items: flex-start;
		flex-direction: column;
	}
}



/* ==========================================================
   COPTER FOUR VIEW V7
   ========================================================== */

.ecCopterViewTabs
{
	max-width: 1040px;
	margin: 0 auto 4px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow:none;
}

.ecCopterViewTabButtons
{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.ecCopterViewTabButtons .button
{
	margin: 0;
}

/*
 * Native XenForo button geometry is deliberately inherited.
 */

[data-copter-play-view][hidden],
.ecCopterRemoteView[hidden]
{
	display: none !important;
}

.ecCopterRemoteView
{
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
}

.ecCopterTabPanel
{
	width: 100%;
}

.ecCopterTabLoading,
.ecCopterTabError
{
	padding: 18px 4px;
	font-size: 13px;
	color: var(--ec-acp-text-muted);
}

.ecCopterTabError
{
	color: var(--ec-acp-link);
}

.ecCopterTabContent
{
	padding: 14px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background: var(--ec-acp-content-bg);
	color: var(--ec-acp-text-strong);
}

@media (max-width: 700px)
{
	.ecCopterViewTabs,
	.ecCopterRemoteView
	{
		max-width: 100%;
	}

	.ecCopterViewTabButtons
	{
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 2px;
	}

	.ecCopterViewTabButtons .button
	{
		flex: 0 0 auto;
	}
}

/* ==========================================================
   COPTER COMPETITIVE LEADERBOARD BETA
   ========================================================== */

.ecCompetitiveShell{
	gap:16px
}

.ecMetricNav{
	display:flex;
	align-items:center;
	gap:8px;
	padding:10px;
	overflow-x:auto;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-block-radius);
	background:var(--ec-acp-content-bg);
	scrollbar-width:thin
}

.ecMetricNav a{
	flex:0 0 auto;
	padding:9px 13px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background:var(--ec-acp-content-bg);
	color:var(--ec-acp-link);
	font-size:13px;
	font-weight:700;
	white-space:nowrap;
	transition:
		background .16s ease,
		border-color .16s ease,
		color .16s ease,
		transform .16s ease
}

.ecMetricNav a:hover{
	background:var(--ec-acp-content-alt-bg);
	border-color: var(--ec-acp-border);
	color:var(--ec-acp-text-strong);
	transform:translateY(-1px)
}

.ecMetricNav a.is-active{
	background:
		linear-gradient(
			180deg,
			var(--ec-acp-content-alt-bg),
			var(--ec-acp-content-alt-bg)
		);
	border-color: var(--ec-acp-border);
	color:var(--ec-acp-progress);
	box-shadow:none}

.ecCompetitiveOverview{
	display:grid;
	grid-template-columns:
		repeat(
			2,
			minmax(0,1fr)
		);
	gap:16px
}

.ecCompetitorCard{
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-block-radius);
	background:
		linear-gradient(
			145deg,
			var(--ec-acp-content-bg),
			var(--ec-acp-content-bg)
		);
	box-shadow:none;
	overflow:hidden
}

.ecCompetitorCard.is-you,
.ecCompetitiveTable tr.is-you{
	box-shadow:none}

.ecCompetitorHead{
	display:flex;
	align-items:center;
	gap:13px;
	padding:16px 17px;
	border-bottom: var(--ec-acp-border-size) solid var(--ec-acp-border);
	background:var(--ec-acp-content-bg)
}

.ecCompetitorRank{
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	flex:0 0 42px;
	border-radius:var(--ec-acp-radius-large);
	background:var(--ec-acp-content-alt-bg);
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	color:var(--ec-acp-progress);
	font-size:15px;
	font-weight:900
}

.ecCompetitorHead strong,
.ecCompetitorHead small{
	display:block
}

.ecCompetitorHead strong{
	color:var(--ec-acp-text-strong);
	font-size:17px
}

.ecCompetitorHead small{
	margin-top:3px;
	color:var(--ec-acp-text);
	font-size:12px
}

.ecCompetitorCard:nth-child(1)
.ecCompetitorRank{
	background:
		linear-gradient(
			145deg,
			var(--ec-acp-content-alt-bg),
			var(--ec-acp-progress)
		);
	color:var(--ec-acp-progress)
}

.ecCompetitorCard:nth-child(2)
.ecCompetitorRank{
	background:
		linear-gradient(
			145deg,
			var(--ec-acp-text),
			var(--ec-acp-text)
		);
	color:var(--ec-acp-text-strong)
}

.ecCompetitorCard:nth-child(3)
.ecCompetitorRank{
	background:
		linear-gradient(
			145deg,
			var(--ec-acp-content-alt-bg),
			var(--ec-acp-link)
		);
	color:var(--ec-acp-progress)
}

.ecCompetitiveStats{
	display:grid;
	grid-template-columns:
		repeat(
			3,
			minmax(0,1fr)
		);
	gap:1px;
	background:var(--ec-acp-link)
}

.ecCompetitiveStats>div{
	min-width:0;
	padding:13px 14px;
	background:var(--ec-acp-content-bg)
}

.ecCompetitiveStats span,
.ecCompetitiveStats strong{
	display:block
}

.ecCompetitiveStats span{
	color:var(--ec-acp-link);
	font-size:11px;
	line-height:1.35
}

.ecCompetitiveStats strong{
	margin-top:4px;
	color:var(--ec-acp-progress);
	font-size:16px;
	line-height:1.25
}

.ecCompetitiveTitle{
	margin-bottom:14px
}

.ecCompetitiveTitle h2{
	margin:0
}

.ecCompetitiveTable{
	min-width:690px
}

.ecCompetitiveTable .ecRankCell{
	width:72px;
	color:var(--ec-acp-progress);
	font-weight:900
}

.ecCompetitiveTable .ecMetricValue{
	color:var(--ec-acp-progress);
	font-size:17px;
	font-weight:900
}

.ecCompetitiveTable tbody tr:nth-child(1)
.ecMetricValue{
	color:var(--ec-acp-progress)
}

.ecCompetitiveTable tbody tr:nth-child(1)
.ecRankCell{
	color:var(--ec-acp-progress)
}

.ecCompetitiveTable tbody tr:nth-child(2)
.ecRankCell{
	color:var(--ec-acp-text-strong)
}

.ecCompetitiveTable tbody tr:nth-child(3)
.ecRankCell{
	color:var(--ec-acp-link)
}

@media(max-width:950px){
	.ecCompetitiveOverview{
		grid-template-columns:1fr
	}
}

@media(max-width:650px){
	.ecCompetitiveStats{
		grid-template-columns:
			repeat(
				2,
				minmax(0,1fr)
			)
	}

	.ecMetricNav{
		margin-left:-4px;
		margin-right:-4px
	}
}


/* AJAX competitive metric controls */
.ecMetricNav .button{
    flex:0 0 auto;
    margin:0;
    min-height:38px;
    padding:8px 14px;
    border-radius:var(--ec-acp-radius-small);
    white-space:nowrap
}

.ecMetricNav .button .button-text{
    font-weight:700
}



/* ==========================================================
   EGGY_COPTER_METRIC_DROPDOWNS_V1
   Global structural metric navigation.
   Colours remain owned by the XenForo style resolver.
   ========================================================== */

.ecMetricNav.ecMetricNav--grouped
{
	position: relative;
	flex-wrap: wrap;
	overflow: visible !important;
	scrollbar-width: auto;
}

.ecMetricNav--grouped .ecMetricGroup
{
	position: relative;
	flex: 0 0 auto;
	margin: 0;
}

.ecMetricNav--grouped .ecMetricGroup > summary
{
	list-style: none;
	cursor: pointer;
	user-select: none;
	margin: 0;
}

.ecMetricNav--grouped .ecMetricGroup > summary::-webkit-details-marker
{
	display: none;
}

.ecMetricNav--grouped .ecMetricGroup > summary::after
{
	content: "▾";
	margin-left: 6px;
	font-size: .8em;
}

.ecMetricNav--grouped .ecMetricGroup[open] > summary::after
{
	content: "▴";
}

.ecMetricNav--grouped .ecMetricMenu
{
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 190px;
	max-width: min(280px, calc(100vw - 32px));
	padding: 8px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background: var(--ec-acp-content-bg);
	box-sizing: border-box;
}

.ecMetricNav--grouped .ecMetricMenu .button,
.ecMetricNav--grouped .ecMetricMenu a
{
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	margin: 0;
}

.ecMetricNav--grouped .ecMetricGroup:has(.button--primary) > summary,
.ecMetricNav--grouped .ecMetricGroup:has(a.is-active) > summary
{
	background: var(--ec-acp-primary-bg) !important;
	color: var(--ec-acp-primary-text) !important;
	border-color: var(--ec-acp-border) !important;
}

.ecMetricNav--grouped .ecMetricGroup:last-child .ecMetricMenu
{
	left: auto;
	right: 0;
}

@media (max-width: 650px)
{
	.ecMetricNav.ecMetricNav--grouped
	{
		margin-left: 0;
		margin-right: 0;
	}

	.ecMetricNav--grouped .ecMetricGroup
	{
		position: static;
	}

	.ecMetricNav--grouped .ecMetricMenu
	{
		left: 0;
		right: 0;
		width: 100%;
		max-width: none;
	}
}

/* ==========================================================
   COPTER PROGRESSION V8
   ========================================================== */

.ecCopterAchievementGrid,
.ecCopterChallengeGrid
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.ecCopterAchievement,
.ecCopterChallengeCard
{
	padding: 12px;
	border: var(--ec-acp-border-size) solid var(--ec-acp-border);
	border-radius:var(--ec-acp-radius-small);
	background: var(--ec-acp-content-alt-bg);
}

.ecCopterAchievement.is-unlocked,
.ecCopterChallengeCard.is-complete
{
	border-color: var(--ec-acp-border);
    box-shadow:none;
}

.ecCopterAchievement p,
.ecCopterChallengeCard p
{
	margin: 7px 0 10px;
	color: var(--ec-acp-text-muted);
	font-size: 13px;
}

.ecCopterReward
{
	color: var(--ec-acp-progress);
	font-size: 12px;
	font-weight: 700;
}

.ecChallengeGroup + .ecChallengeGroup
{
	margin-top: 20px;
	padding-top: 18px;
	border-top: var(--ec-acp-border-size) solid var(--ec-acp-border);
}

.ecChallengeGroupHead
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.ecChallengeGroupHead h3
{
	margin: 0;
	color: var(--ec-acp-text-strong);
	font-size: 16px;
}

.ecCopterChallengeCard progress
{
	width: 100%;
	height: 7px;
	margin: 2px 0 7px;
	accent-color:var(--ec-acp-progress);
}

.ecChallengeMeta
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	color: var(--ec-acp-text-muted);
	font-size: 12px;
}

.ecChallengeCountdown
{
	color: var(--ec-acp-link);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.ecCopterTableWrap
{
	overflow-x: auto;
}

.ecCopterPeriods
{
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

@media (max-width: 700px)
{
	.ecCopterAchievementGrid,
	.ecCopterChallengeGrid
	{
		grid-template-columns: 1fr;
	}

	.ecChallengeMeta
	{
		align-items: flex-start;
		flex-direction: column;
	}
}


/* ==========================================================
   COPTER DEFAULT-STYLE INHERITANCE FINAL
   Every UI colour/border is sourced from the ACP default style.
   ========================================================== */
.ecShell,
.ecCopterRemoteView,
.ecCompetitiveShell,
.ecAjaxHub
{
    color:var(--ec-acp-text);
}

.ecShell a,
.ecCopterRemoteView a,
.ecCompetitiveShell a,
.ecAjaxHub a
{
    color:var(--ec-acp-link);
}

.ecShell a:hover,
.ecCopterRemoteView a:hover,
.ecCompetitiveShell a:hover,
.ecAjaxHub a:hover
{
    color:var(--ec-acp-link-hover);
}

.ecShell *,
.ecCopterRemoteView *,
.ecCompetitiveShell *,
.ecAjaxHub *
{
    border-color:var(--ec-acp-border);
}

.ecCopterReward,
.ecMetricValue,
.ecCompetitiveTable .ecRankCell,
.ecCompetitorRank,
.ecCopterMiniHead > span,
.ecMiniHead span,
.ecChallengeCountdown,
.ecEyebrow
{
    color:var(--ec-acp-link) !important;
}

.ecCompetitorCard:nth-child(1) .ecCompetitorRank,
.ecCompetitorCard:nth-child(2) .ecCompetitorRank,
.ecCompetitorCard:nth-child(3) .ecCompetitorRank
{
    background:var(--ec-acp-content-highlight-bg) !important;
    color:var(--ec-acp-text-strong) !important;
    border-color:var(--ec-acp-border) !important;
}

.ecCopterAchievement progress,
.ecCopterChallengeCard progress
{
    accent-color:var(--ec-acp-progress) !important;
}

.ecShell .button:not(.button--primary),
.ecCopterRemoteView .button:not(.button--primary),
.ecCompetitiveShell .button:not(.button--primary)
{
    background:var(--ec-acp-button-bg) !important;
    color:var(--ec-acp-button-text) !important;
    border-color:var(--ec-acp-border) !important;
}

.ecShell .button.button--primary,
.ecCopterRemoteView .button.button--primary,
.ecCompetitiveShell .button.button--primary
{
    background:var(--ec-acp-primary-bg) !important;
    color:var(--ec-acp-primary-text) !important;
    border-color:var(--ec-acp-border-highlight) !important;
}




/* ==========================================================
   COPTER ACP DEFAULT GEOMETRY FINAL
   Card geometry follows XenForo's native block geometry.
   Game canvas rendering is intentionally untouched.
   ========================================================== */
.ecShell
{
    width:100%;
    box-sizing:border-box;
    align-items:stretch;
}

.ecShell > section.ecGameCard[data-copter-play-view],
.ecShell > section.ecPanel[data-copter-play-view]
{
    width:100% !important;
    max-width:1040px !important;
    min-width:0 !important;
    align-self:center !important;
    box-sizing:border-box !important;
    margin-left:auto !important;
    margin-right:auto !important;
    border-width:var(--ec-acp-border-size) !important;
    border-style:solid !important;
    border-color:var(--ec-acp-border) !important;
    border-radius:var(--ec-acp-block-radius) !important;
    box-shadow:none !important;
}

.ecShell > section.ecPanel.ecPanel--record[data-copter-play-view]
{
    width:100% !important;
    max-width:1040px !important;
}


/* EGGY_COPTER_REMOVE_GAME_HERO_V1 */
.ecShell:has(.ecGameCard[data-copter-play-view]) > .ecHero{display:none!important}


/* Copter 1.0.8 Daily Flight */
.ecDailyFlightPanel{overflow:hidden}
.ecDailyFlightHead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.ecDailyFlightHead h2{margin:.2em 0 .3em}
.ecDailyFlightHead p{margin:0;max-width:760px}
.ecDailyFlightReset{flex:0 0 auto;padding:9px 12px;border-radius:8px;background:rgba(255,255,255,.06);white-space:nowrap}
.ecDailyFlightStats{margin-bottom:18px}
.ecDailyFlightTable .is-you td{font-weight:700}
.ecDailyFlightTable td:first-child,.ecDailyFlightTable th:first-child{width:72px}
@media (max-width:650px){.ecDailyFlightHead{display:block}.ecDailyFlightReset{display:inline-block;margin-top:12px}.ecDailyFlightTable th:nth-child(4),.ecDailyFlightTable td:nth-child(4){display:none}}


/* EGGY_COPTER_108_COMPACT_LEADERBOARD */
.ecLeaderboardCompact .ecLbHeading,
.ecLbToolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ecLeaderboardCompact .ecLbHeading{margin-bottom:10px}
.ecLbStandalonePanel{padding:14px}
.ecLbToolbar{margin-bottom:10px;flex-wrap:wrap}
.ecLbCategoryNav,
.ecLbPeriods{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.ecLbCategoryNav{margin:0 0 10px}
.ecLbStandalonePanel .ecLbCategoryNav{margin:0}
.ecLbCategoryNav .button,
.ecLbPeriods .button{
  margin:0;
  white-space:nowrap;
}

.ecLbDailyMeta{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:0 0 10px;
  padding:9px 11px;
  border:var(--ec-acp-border-size) solid var(--ec-acp-border);
  border-radius:var(--ec-acp-block-radius);
  background:var(--ec-acp-content-alt-bg);
  color:var(--ec-acp-text-strong);
  font-size:12px;
}
.ecLbDailyMeta strong{color:var(--ec-acp-progress)}
.ecLbList--daily .ecLbGrid{
  grid-template-columns:58px minmax(150px,1.3fr) repeat(3,minmax(92px,.8fr)) 28px;
}
.ecLbList{
  border:var(--ec-acp-border-size) solid var(--ec-acp-border);
  border-radius:var(--ec-acp-block-radius);
  overflow:hidden;
  background:var(--ec-acp-content-bg);
}
.ecLbGrid{
  display:grid;
  grid-template-columns:58px minmax(150px,1.3fr) repeat(4,minmax(92px,.8fr)) 28px;
  align-items:center;
  min-width:0;
  column-gap:0;
}
.ecLbHeader{
  min-height:34px;
  background:var(--ec-acp-content-alt-bg);
  border-bottom:var(--ec-acp-border-size) solid var(--ec-acp-border);
  color:var(--ec-acp-link);
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.ecLbHeader>span,
.ecLbHeader>.ecLbSort{
  min-width:0;
  padding:8px 10px;
}
.ecLbSort{
  appearance:none;
  border:0;
  background:none;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
  text-align:left;
  cursor:pointer;
  text-decoration:none;
}
.ecLbSort:hover,
.ecLbSort.is-active{
  color:var(--ec-acp-progress);
}
.ecLbSort.is-active::after{content:' ↓'}
.ecLbRow{
  margin:0;
  border:0;
  border-bottom:var(--ec-acp-border-size) solid var(--ec-acp-border);
  background:var(--ec-acp-content-bg);
}
.ecLbRow:last-child{border-bottom:0}
.ecLbRow>summary{
  min-height:48px;
  list-style:none;
  cursor:pointer;
  color:var(--ec-acp-text-strong);
  transition:background .12s ease;
}
.ecLbRow>summary::-webkit-details-marker{display:none}
.ecLbRow>summary:hover{background:var(--ec-acp-content-alt-bg)}
.ecLbRow>summary>*{
  min-width:0;
  padding:9px 10px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecLbRank{
  color:var(--ec-acp-link);
  font-size:13px;
  font-weight:900;
}
.ecLbRow.is-top .ecLbRank,
.ecLbPrimary{
  color:var(--ec-acp-progress);
}
.ecLbPlayer{
  font-size:14px;
  font-weight:800;
}
.ecLbRow.is-you>summary{
  box-shadow:inset 3px 0 0 var(--ec-acp-progress);
  background:var(--ec-acp-content-alt-bg);
}
.ecLbChevron{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ec-acp-link);
  font-size:21px;
  font-weight:700;
  transition:transform .12s ease;
}
.ecLbRow[open] .ecLbChevron{transform:rotate(90deg)}
.ecLbDetails{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1px;
  padding:1px 0 0;
  background:var(--ec-acp-border);
  border-top:var(--ec-acp-border-size) solid var(--ec-acp-border);
}
.ecLbDetails>div{
  min-width:0;
  padding:9px 10px;
  background:var(--ec-acp-content-bg);
}
.ecLbDetails span,
.ecLbDetails strong{display:block}
.ecLbDetails span{
  color:var(--ec-acp-link);
  font-size:10px;
  line-height:1.3;
}
.ecLbDetails strong{
  margin-top:2px;
  color:var(--ec-acp-text-strong);
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .ecLbGrid{grid-template-columns:48px minmax(130px,1.3fr) repeat(3,minmax(82px,.8fr)) 26px}
  .ecLbList--daily .ecLbGrid{grid-template-columns:48px minmax(130px,1.3fr) repeat(3,minmax(82px,.8fr)) 26px}
  .ecLbOptional2{display:none!important}
  .ecLbDetails{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:680px){
  .ecLeaderboardCompact .ecLbHeading,
  .ecLbToolbar{align-items:flex-start;flex-direction:column}
  .ecLbCategoryNav,
  .ecLbPeriods{
    width:100%;
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:thin;
  }
  .ecLbGrid{grid-template-columns:44px minmax(112px,1fr) repeat(2,minmax(78px,.72fr)) 24px}
  .ecLbList--daily .ecLbGrid{grid-template-columns:44px minmax(112px,1fr) repeat(2,minmax(78px,.72fr)) 24px}
  .ecLbList--daily .ecLbGrid>*:nth-child(5){display:none}
  .ecLbOptional1,.ecLbOptional2{display:none!important}
  .ecLbHeader{font-size:9px}
  .ecLbRow>summary{min-height:44px}
  .ecLbRow>summary>*{padding:8px 7px}
  .ecLbHeader>span,.ecLbHeader>.ecLbSort{padding:7px}
  .ecLbPlayer{font-size:13px}
  .ecLbDetails{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(orientation:landscape) and (max-height:600px){
  .ecLeaderboardCompact .ecLbHeading{margin-bottom:6px}
  .ecLeaderboardCompact .ecEyebrow{margin-bottom:2px;font-size:10px}
  .ecLeaderboardCompact .ecCopterTabHeading h2{font-size:17px}
  .ecLbCategoryNav{margin-bottom:6px}
  .ecLbCategoryNav .button,
  .ecLbPeriods .button{padding-top:5px;padding-bottom:5px}
  .ecLbGrid{grid-template-columns:42px minmax(124px,1fr) repeat(2,minmax(82px,.72fr)) 22px}
  .ecLbList--daily .ecLbGrid{grid-template-columns:42px minmax(124px,1fr) repeat(2,minmax(82px,.72fr)) 22px}
  .ecLbList--daily .ecLbGrid>*:nth-child(5){display:none}
  .ecLbDailyMeta{margin-bottom:6px;padding:6px 8px;font-size:11px}
  .ecLbOptional1,.ecLbOptional2{display:none!important}
  .ecLbHeader{min-height:28px;font-size:9px}
  .ecLbHeader>span,.ecLbHeader>.ecLbSort{padding:5px 7px}
  .ecLbRow>summary{min-height:38px}
  .ecLbRow>summary>*{padding:6px 7px;font-size:12px}
  .ecLbPlayer{font-size:12px}
  .ecLbDetails{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ecLbDetails>div{padding:6px 8px}
}
