/* RoCMS — feuille blanche (styles minimaux) */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	min-height: 100%;
}

body {
	min-height: 100%;
	margin: 0;
	font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
	line-height: 1.5;
	color: #252525;
	background: #ffffff;
}

/* 520px → 32.5rem (base 16px) */
.hero-section {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 32.5rem;
	min-height: 32.5rem;
	box-sizing: border-box;
	overflow: hidden;
}

.hero-visual {
	--topbar-height: 2.375rem;
	--logo-x: 50%;
	/* Décale logo + personnage hero ensemble sans changer leur écart relatif. */
	--visual-group-shift-x: 8%;
	/* Centre du hero utile (zone sous la topbar). */
	--logo-y: calc(var(--topbar-height) + (100% - var(--topbar-height)) / 2);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	display: block;
	pointer-events: none;
	overflow: hidden;
}

.hero-visual__image {
	display: block;
}

.hero-visual__logo-link {
	position: absolute;
	z-index: 7;
	top: var(--logo-y);
	left: var(--logo-x);
	/* Demi-tailles PNG en px (296×341) : net verticalement ; shift-x = % de l’élément (comme avant). */
	transform: translate(calc(-148px + var(--visual-group-shift-x)), -170px);
	display: block;
	line-height: 0;
	pointer-events: auto;
}

.hero-visual__logo-link:focus-visible {
	outline: 0.125rem solid #ffffff;
	outline-offset: 0.2rem;
	border-radius: 0.25rem;
}

.hero-visual__image--logo {
	display: block;
	width: 296px;
	height: 341px;
	max-width: none;
	max-height: none;
	transition: filter 0.18s ease-in-out;
}

.hero-visual__logo-link:hover .hero-visual__image--logo,
.hero-visual__logo-link:focus-visible .hero-visual__image--logo {
	filter:
		drop-shadow(0 0 0.25rem rgba(146, 215, 208, 0.85))
		drop-shadow(0 0 0.6rem rgba(146, 215, 208, 0.65))
		drop-shadow(0 0 1rem rgba(146, 215, 208, 0.45));
}

.hero-visual__image--shifu {
	position: absolute;
	z-index: 5;
	top: calc(2.375rem - 2.8rem);
	left: 50%;
	transform: translateX(calc(-72% + var(--visual-group-shift-x))) scale(0.65);
	transform-origin: top center;
}

/* Thème Noël : curi.png — slot + background-size en px (CSS dédié dans <head>, pas de <img> ni transform). */
.hero-visual__fanart-slot {
	position: absolute;
	z-index: 5;
	top: calc(2.375rem - 5.85rem);
	pointer-events: none;
	line-height: 0;
	overflow: hidden;
}

/* .hero-visual__fanart-slot--curi : dimensions + background via rocms_hero_fanart_position_css() dans <head> */

/*
 * Thème été : samayo.png — 1 px CSS = 1 px fichier (attributs width/height + pas de scale).
 * Pas de crisp-edges (art lisse) ; max-width explicite pour annuler tout plafond hérité.
 */
.hero-visual__image.hero-visual__image--samayo {
	position: absolute;
	z-index: 5;
	top: auto;
	bottom: clamp(1rem, 4.5vh, 2.75rem);
	left: 47%;
	box-sizing: content-box;
	max-width: none;
	max-height: none;
	width: auto;
	height: auto;
	transform: translateX(calc(-86% + var(--visual-group-shift-x))) translateY(6rem);
	transform-origin: bottom center;
	image-rendering: auto;
}

.hero-clouds {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
}

.hero-clouds--back {
	z-index: 4;
}

.hero-clouds--front {
	z-index: 6;
}

.hero-particles {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.hero-particles--back {
	z-index: 3;
	opacity: 0.82;
}

.hero-particles--front {
	z-index: 6;
	opacity: 0.36;
}

.hero-cloud-wrap {
	position: absolute;
	top: var(--cloud-top, 0);
	left: var(--cloud-left, 0);
	will-change: transform;
}

.hero-cloud {
	display: block;
	width: var(--cloud-size, 10rem);
	height: auto;
	opacity: 0;
	will-change: transform, opacity;
}

/* Barre du haut au-dessus du fond hero (dégradé) */
.site-topbar {
	/* ~44px à 16px racine : espace panneau titre ↔ liens, et liens ↔ rail */
	--topbar-link-panel-gap: 2.75rem;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 30;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0;
	width: 100%;
	height: 2.375rem;
	box-sizing: border-box;
	padding: 0 0 0 0.75rem;
	overflow: visible;
	border-top: 0.1875rem solid #ffffff;
	border-bottom: 0.125rem solid #ffffff;
	background-color: rgba(232, 238, 240, 0.95);
}

.site-topbar__spacer {
	flex: 1 1 0;
	min-width: 0;
	padding-inline-end: 1.25rem;
}

.site-topbar__cluster {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	flex: 0 0 auto;
	gap: 0 var(--topbar-link-panel-gap);
	margin-inline-end: var(--topbar-link-panel-gap);
	min-width: 0;
}

.site-topbar__nav-pill {
	flex: 0 0 auto;
	align-self: center;
	display: flex;
	align-items: center;
	min-width: 0;
}

.site-topbar__rail {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex: 1 1 0;
	align-self: stretch;
	min-width: 0;
	padding: 0 0.75rem 0 0.65rem;
	box-sizing: border-box;
	overflow: visible;
	background-color: #ffffff;
	border-bottom-left-radius: 0.5rem;
}

.site-topbar__nav {
	display: flex;
	align-items: center;
	min-width: 0;
}

.site-topbar__nav-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-topbar__nav-item {
	display: block;
}

.site-topbar__nav-pill .site-topbar__nav-link {
	color: #b7b1bf;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-decoration: none;
	white-space: nowrap;
	text-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.15);
	transition:
		color 0.18s ease,
		text-shadow 0.18s ease;
}

.site-topbar__nav-pill .site-topbar__nav-link:hover {
	color: #ffffff;
	text-decoration: none;
}

.site-topbar__nav-pill .site-topbar__nav-link:focus-visible {
	outline: 0.125rem solid #ffffff;
	outline-offset: 0.125rem;
	border-radius: 0.125rem;
}

.site-topbar__nav-pill .site-topbar__nav-link[aria-current="page"] {
	color: #ffffff;
	font-weight: 400;
	text-shadow:
		0 0 0.25rem rgba(0, 0, 0, 0.15),
		0 0 0.35rem rgba(255, 210, 0, 0.45);
	filter: none;
}

.site-topbar__servers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.65rem;
}

.site-topbar__servers-label {
	flex: 0 0 auto;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	color: #4a4a4a;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.site-topbar__rail-vrule {
	flex: 0 0 auto;
	align-self: center;
	width: 0.0625rem;
	height: 1.125rem;
	margin: 0;
	border: none;
	background-color: rgba(0, 0, 0, 0.14);
}

.site-topbar__players-line {
	flex: 0 0 auto;
	margin: 0;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	color: #4a4a4a;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.site-topbar__players-num {
	color: #20869c;
	font-weight: 700;
}

.site-topbar__players-sep {
	display: inline-block;
	margin: 0 0.32rem;
	opacity: 0.5;
	font-weight: 400;
}

.site-topbar__autotrade-num {
	color: #f7a347;
	font-weight: 700;
}

.site-topbar__lang-flag {
	display: inline-block;
	/* Tuile sprite flags.png : 16×11 px fixes (pas rem/em/scale). */
	width: 16px;
	height: 11px;
	min-width: 16px;
	min-height: 11px;
	max-width: 16px;
	max-height: 11px;
	margin: 0;
	vertical-align: -0.12em;
	flex-shrink: 0;
	flex-grow: 0;
	background-image: url('../images/flags.png');
	background-repeat: no-repeat;
	background-size: auto;
	image-rendering: pixelated;
	border-radius: 0.125rem;
	box-shadow:
		0 0 0.2rem rgba(255, 255, 255, 0.55),
		0 0 0.55rem rgba(100, 190, 230, 0.55),
		0 0 0.85rem rgba(60, 162, 255, 0.35);
}

.site-topbar__lang-dd {
	display: inline-block;
	margin-left: 0.95rem;
	vertical-align: middle;
	position: relative;
}

.site-topbar__lang-dd-summary {
	display: inline-flex;
	align-items: center;
	gap: 0.32rem;
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.site-topbar__lang-dd-summary::-webkit-details-marker {
	display: none;
}

.site-topbar__lang-dd summary::marker {
	content: '';
	font-size: 0;
}

.site-topbar__lang-chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 11px;
	color: #4a4a4a;
	font-size: 0.5rem;
	line-height: 1;
	opacity: 0.88;
	transition: transform 0.16s ease;
}

.site-topbar__lang-dd[open] .site-topbar__lang-chevron {
	transform: rotate(180deg);
}

.site-topbar__lang-dd-panel {
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	padding: 0.45rem;
	background: rgba(255, 255, 255, 0.98);
	border: 0.0625rem solid rgba(0, 0, 0, 0.08);
	border-radius: 0.35rem;
	box-shadow: 0 0.28rem 0.95rem rgba(0, 0, 0, 0.14);
	z-index: 100;
}

.site-topbar__lang-dd-item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.18rem;
	border-radius: 0.28rem;
	text-decoration: none;
}

.site-topbar__lang-dd-item:hover .site-topbar__lang-flag,
.site-topbar__lang-dd-item:focus-visible .site-topbar__lang-flag {
	box-shadow:
		0 0 0.25rem rgba(255, 255, 255, 0.65),
		0 0 0.65rem rgba(100, 190, 230, 0.6),
		0 0 1rem rgba(60, 162, 255, 0.45);
}

.site-topbar__lang-dd-item:focus-visible {
	outline: 0.125rem solid #20869c;
	outline-offset: 0.12rem;
}

.site-topbar__shards {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-topbar__shards-item {
	display: block;
	flex: 0 0 auto;
}

.site-topbar__shard {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.375rem;
	min-width: 1.375rem;
	max-width: 1.375rem;
	height: 1.375rem;
	min-height: 1.375rem;
	max-height: 1.375rem;
	padding: 0;
	border: none;
	border-radius: 999px;
	background: transparent;
	cursor: pointer;
	box-sizing: border-box;
}

.site-topbar__shard:focus-visible {
	outline: 0.125rem solid #159353;
	outline-offset: 0.125rem;
}

.site-topbar__shard--down:focus-visible {
	outline-color: #c75c5c;
}

.site-topbar__shard-dot {
	display: block;
	flex: 0 0 auto;
	width: 0.5rem;
	min-width: 0.5rem;
	max-width: 0.5rem;
	height: 0.5rem;
	min-height: 0.5rem;
	max-height: 0.5rem;
	box-sizing: border-box;
	border-radius: 50%;
	background-color: #159353;
	box-shadow:
		0 0 0.28rem rgba(21, 147, 83, 0.95),
		0 0 0.55rem rgba(21, 147, 83, 0.72),
		0 0 0.95rem rgba(21, 147, 83, 0.5),
		0 0 1.35rem rgba(21, 147, 83, 0.32);
}

.site-topbar__shard--down .site-topbar__shard-dot {
	background-color: #c75c5c;
	box-shadow:
		0 0 0.28rem rgba(199, 92, 92, 0.95),
		0 0 0.55rem rgba(199, 92, 92, 0.72),
		0 0 0.95rem rgba(199, 92, 92, 0.48),
		0 0 1.35rem rgba(199, 92, 92, 0.3);
}

.site-topbar__shard-tip {
	position: absolute;
	top: calc(100% + 0.35rem);
	left: 50%;
	z-index: 60;
	padding: 0.35rem 0.6rem;
	border-radius: 0.35rem;
	background-color: #333;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-50%) translateY(-0.2rem);
	transition:
		opacity 0.12s ease,
		transform 0.12s ease,
		visibility 0.12s;
	box-shadow: 0 0.125rem 0.35rem rgba(0, 0, 0, 0.22);
}

.site-topbar__shard-tip::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	margin-left: -0.25rem;
	border-width: 0 0.25rem 0.25rem 0.25rem;
	border-style: solid;
	border-color: transparent transparent #333 transparent;
}

.site-topbar__shard:hover .site-topbar__shard-tip,
.site-topbar__shard:focus-visible .site-topbar__shard-tip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%);
}

.site-topbar__panel {
	flex: 0 0 auto;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: fit-content;
	min-width: calc(0.5rem + 0.5rem);
	max-width: 100%;
	box-sizing: border-box;
	padding: 0 0.75rem;
	background-color: #ffffff;
	border-bottom-left-radius: 0.5rem;
	border-bottom-right-radius: 0.5rem;
	white-space: nowrap;
}

.site-topbar__site-title {
	color: #209c8f;
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	text-decoration: none;
}

.site-topbar__site-title:hover {
	opacity: 0.88;
}

.site-topbar__site-title:focus-visible {
	outline: 0.125rem solid #209c8f;
	outline-offset: 0.125rem;
	border-radius: 0.125rem;
}

.site-topbar__crumbs {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.02rem;
	color: rgba(0, 0, 0, 0.35);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
	user-select: none;
}

.site-topbar__crumbs span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.site-topbar__page-label {
	color: #4a4a4a;
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.hero-backdrop {
	position: relative;
	z-index: 0;
	flex: 1;
	min-height: 0;
	width: 100%;
	background: linear-gradient(to bottom, #32a2d1 0%, #bef6f8 100%);
}

/* Thème Noël : ciel du hero un peu plus hivernal (particules neige = hero-particles-snow.js). */
.theme-christmas .hero-backdrop {
	background: linear-gradient(to bottom, #3569a8 0%, #e2f3fb 100%);
}

/* Thème été : ciel lumineux (azur → chaud en bas). */
.theme-summer .hero-backdrop {
	background: linear-gradient(to bottom, #3d9fd9 0%, #7ec8ea 28%, #c8ecfb 58%, #fff3d6 88%, #ffe8c4 100%);
}

/*
 * God rays (thème été) : uniquement en CSS, pas d’image — conic + masque (pas de damier).
 * z-7 > nuages & particules, < topbar.
 */
.theme-summer .hero-section::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: min(75vw, 36rem);
	height: min(68vh, 32rem);
	z-index: 7;
	pointer-events: none;
	background:
		radial-gradient(ellipse 22% 16% at 100% 0%,
			rgba(255, 255, 255, 0.42) 0%,
			rgba(255, 250, 230, 0.12) 52%,
			transparent 72%),
		repeating-conic-gradient(from 200deg at 100% 0%,
			rgba(255, 255, 255, 0) 0deg 2.1deg,
			rgba(255, 255, 255, 0.17) 2.1deg 2.8deg,
			rgba(255, 255, 255, 0) 2.8deg 4.6deg);
	mix-blend-mode: soft-light;
	opacity: 0.94;
	mask-image: radial-gradient(ellipse 98% 88% at 100% 0%,
		#000 0%,
		#000 10%,
		rgba(0, 0, 0, 0.55) 40%,
		transparent 74%);
	-webkit-mask-image: radial-gradient(ellipse 98% 88% at 100% 0%,
		#000 0%,
		#000 10%,
		rgba(0, 0, 0, 0.55) 40%,
		transparent 74%);
}

@media (prefers-reduced-motion: no-preference) {
	.theme-summer .hero-section::before {
		animation: rocms-sun-halo 12s ease-in-out infinite alternate;
	}
}

@keyframes rocms-sun-halo {
	from {
		opacity: 0.88;
	}

	to {
		opacity: 0.98;
	}
}

@media (max-width: 64rem) {
	.theme-summer .hero-section::before {
		width: min(80vw, 30rem);
		height: min(60vh, 28rem);
		top: 0.25rem;
	}
}

@media (max-width: 48rem) {
	.theme-summer .hero-section::before {
		width: min(90vw, 24rem);
		height: min(55vh, 22rem);
	}
}

/*
 * Thème Noël — congère en bas du hero : SVG (courbes façonnées + volume) + halo froid (::before).
 * Au-dessus de Curi (z-index 5) ; flocons avant-plan z-index 6.
 */
.theme-christmas .hero-section::before,
.theme-christmas .hero-section::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	height: min(4.75rem, 16%);
	max-height: 4.75rem;
	min-height: 2.5rem;
	pointer-events: none;
}

/* Brume + creux sous la congère (renforce le décollage du sol) */
.theme-christmas .hero-section::before {
	background:
		radial-gradient(ellipse 88% 55% at 50% 100%, rgba(140, 175, 205, 0.28) 0%, transparent 58%),
		radial-gradient(ellipse 95% 65% at 50% 100%, rgba(180, 210, 235, 0.34) 0%, transparent 62%),
		radial-gradient(ellipse 70% 50% at 22% 100%, rgba(200, 225, 245, 0.2) 0%, transparent 55%),
		radial-gradient(ellipse 65% 48% at 78% 100%, rgba(190, 218, 240, 0.18) 0%, transparent 52%);
	opacity: 1;
}

/* Silhouette vectorielle : dunes, crêtes, reflets (voir assets/images/hero-christmas-snow-drift.svg) */
.theme-christmas .hero-section::after {
	background-image: url("../images/hero-christmas-snow-drift.svg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% 100%;
	filter: drop-shadow(0 -0.14rem 0.85rem rgba(255, 255, 255, 0.55)) drop-shadow(0 0.35rem 0.55rem rgba(18, 38, 58, 0.22));
	mask-image: linear-gradient(to top, #000 0%, #000 75%, transparent 100%);
	-webkit-mask-image: linear-gradient(to top, #000 0%, #000 75%, transparent 100%);
}

.admin-server-public-info__subheading {
	margin: 0.85rem 0 0.45rem;
	font-size: 0.72rem;
	font-weight: 700;
	color: #1f364c;
}

.admin-server-public-info__spec-wrap {
	overflow-x: auto;
	margin-bottom: 0.35rem;
}

.admin-server-public-info__spec-table .register-form__input {
	width: 100%;
	min-width: 5rem;
	box-sizing: border-box;
	font-size: 0.62rem;
	padding: 0.28rem 0.35rem;
}

.admin-server-public-info__spec-value-shared .register-form__input {
	min-width: 8rem;
}

.admin-server-public-info__hint-lines {
	font-size: 0.62rem !important;
	margin: 0 0 0.65rem !important;
	color: #5a6d7e !important;
}

.admin-server-public-info__code {
	font-size: 0.62rem;
	background: rgba(0, 0, 0, 0.06);
	padding: 0.12rem 0.28rem;
	border-radius: 0.2rem;
}

.admin-site-settings__hint {
	margin-top: 0;
	margin-bottom: 0.65rem;
	max-width: 42rem;
}

.admin-site-settings__subsection-title {
	margin: 0 0 0.45rem;
	font-size: 0.78rem;
	font-weight: 700;
	color: #3c4c56;
}

/* —— Admin paramètres (layout settings + accents marque teal) —— */
.admin-settings {
	--admin-accent: #1e8c80;
	--admin-accent-mid: #239f91;
	--admin-accent-soft: #52cdc0;
	--admin-accent-wash: #e8f7f5;
	--admin-accent-glow: rgba(30, 140, 128, 0.28);
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	margin-top: 0.35rem;
}

.admin-settings__toolbar,
.admin-settings__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	padding: 0.7rem 0.85rem;
	border: 0.0625rem solid #cfe8e4;
	border-radius: 0.45rem;
	background: linear-gradient(180deg, #ffffff 0%, #f2faf8 100%);
	box-shadow: inset 0.2rem 0 0 var(--admin-accent, #1e8c80);
}

.admin-settings__toolbar-note {
	margin: 0;
	max-width: 36rem;
	color: #5a6f84;
	font-size: 0.72rem;
	line-height: 1.45;
}

.admin-settings__footer {
	justify-content: flex-end;
}

.admin-settings__save {
	appearance: none;
	border: 0;
	border-radius: 0.35rem;
	padding: 0.48rem 1rem;
	background: linear-gradient(180deg, #52cdc0 0%, #239f91 55%, #1e8c80 100%);
	color: #fff;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: 0 0.12rem 0.35rem rgba(30, 140, 128, 0.28);
}

.admin-settings__save:hover {
	background: linear-gradient(180deg, #5fd4c7 0%, #1e8c80 100%);
}

.admin-settings__grid--pair {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
}

.admin-settings-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.5rem;
	background: linear-gradient(180deg, #ffffff 0%, #f4faf8 100%);
	overflow: hidden;
}

.admin-settings-card__header {
	padding: 0.85rem 0.95rem 0.7rem;
	border-bottom: 0.0625rem solid #d9ebe8;
	background: linear-gradient(180deg, #f7fcfb 0%, rgba(255, 255, 255, 0.85) 100%);
}

.admin-settings-card__eyebrow {
	display: block;
	margin: 0 0 0.28rem;
	color: #1e8c80;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.admin-settings-card__title {
	margin: 0;
	color: #1f364c;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.25;
}

.admin-settings-card__desc {
	margin: 0.4rem 0 0;
	max-width: 48rem;
	color: #5a6f84;
	font-size: 0.72rem;
	line-height: 1.45;
}

.admin-settings-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 0.9rem 0.95rem 1rem;
}

.admin-settings-subpanel {
	padding: 0.75rem 0.8rem;
	border: 0.0625rem solid #e2eaf2;
	border-radius: 0.4rem;
	background: #fbfcfe;
}

.admin-settings-subpanel__head {
	margin-bottom: 0.7rem;
}

.admin-settings-subpanel__title {
	margin: 0;
	color: #2a4158;
	font-size: 0.78rem;
	font-weight: 700;
}

.admin-settings-subpanel__hint {
	margin: 0.3rem 0 0;
	color: #6a7e92;
	font-size: 0.68rem;
	line-height: 1.4;
}

.admin-settings-field-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.7rem 0.85rem;
}

.admin-settings-field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.admin-settings-field__label {
	color: #4a5f74;
	font-size: 0.68rem;
	font-weight: 700;
}

.admin-settings-field__control {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: 0.45rem 0.55rem;
	border: 0.0625rem solid #c9d5e2;
	border-radius: 0.32rem;
	background: #fff;
	color: #1f364c;
	font: inherit;
	font-size: 0.78rem;
	line-height: 1.3;
}

.admin-settings-field__control:focus {
	outline: 0;
	border-color: #6ea0ef;
	box-shadow: 0 0 0 0.15rem rgba(47, 111, 237, 0.18);
}

.admin-settings-switch {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	cursor: pointer;
	user-select: none;
}

.admin-settings-switch__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.admin-settings-switch__ui {
	position: relative;
	flex: 0 0 auto;
	width: 2.35rem;
	height: 1.3rem;
	margin-top: 0.1rem;
	border-radius: 999px;
	background: #c5d0db;
	transition: background 0.15s ease;
}

.admin-settings-switch__ui::after {
	content: "";
	position: absolute;
	top: 0.14rem;
	left: 0.14rem;
	width: 1.02rem;
	height: 1.02rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0.08rem 0.2rem rgba(20, 40, 60, 0.22);
	transition: transform 0.15s ease;
}

.admin-settings-switch__input:checked + .admin-settings-switch__ui {
	background: #1e8c80;
}

.admin-settings-switch__input:checked + .admin-settings-switch__ui::after {
	transform: translateX(1.05rem);
}

.admin-settings-switch__input:focus-visible + .admin-settings-switch__ui {
	box-shadow: 0 0 0 0.15rem rgba(30, 140, 128, 0.28);
}

.admin-settings-switch__text {
	color: #24384c;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.35;
}

.admin-settings-btn {
	appearance: none;
	border: 0.0625rem solid transparent;
	border-radius: 0.32rem;
	padding: 0.4rem 0.75rem;
	font: inherit;
	font-size: 0.72rem;
	font-weight: 700;
	cursor: pointer;
	line-height: 1.2;
}

.admin-settings-btn--secondary {
	border-color: #c5d3e2;
	background: #fff;
	color: #2f4b66;
}

.admin-settings-btn--secondary:hover {
	background: #f3f7fb;
	border-color: #aebfd2;
}

.admin-settings-btn--ghost {
	border-color: #d5dee8;
	background: #eef2f6;
	color: #516577;
}

.admin-settings-btn--ghost:hover {
	background: #e4ebf2;
	color: #33495f;
}

.admin-settings-table-wrap {
	overflow-x: auto;
	margin-bottom: 0.65rem;
	padding: 0.55rem;
	border: 0.0625rem solid #e2eaf2;
	border-radius: 0.35rem;
	background: #fff;
}

.admin-settings-footnote {
	margin: 0;
	color: #6a7e92;
	font-size: 0.68rem;
	line-height: 1.4;
}

.admin-woe-slots,
.admin-ticker-announcements {
	margin: 0;
	max-width: none;
}

.admin-woe-slots__head,
.admin-woe-slots__row {
	display: grid;
	grid-template-columns: minmax(7.5rem, 1.2fr) minmax(5.5rem, 0.8fr) minmax(5.5rem, 0.8fr) auto;
	gap: 0.45rem 0.55rem;
	align-items: center;
}

.admin-ticker-announcements__head,
.admin-ticker-announcements__row {
	display: grid;
	grid-template-columns: 3.6rem minmax(6rem, 1fr) minmax(6rem, 1fr) minmax(8.5rem, 0.95fr) auto;
	gap: 0.45rem 0.55rem;
	align-items: center;
}

.admin-woe-slots__head,
.admin-ticker-announcements__head {
	margin-bottom: 0.35rem;
	padding: 0 0.15rem;
	color: #6a7e92;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.admin-woe-slots__body,
.admin-ticker-announcements__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.admin-woe-slots__row,
.admin-ticker-announcements__row {
	padding: 0.35rem;
	border-radius: 0.3rem;
	background: #f7fafc;
}

.admin-ticker-announcements__sort {
	max-width: 4.25rem;
	padding-left: 0.35rem;
	padding-right: 0.35rem;
}

.admin-ticker-announcements__text,
.admin-ticker-announcements__priority {
	min-width: 0;
}

.admin-woe-slots__add,
.admin-ticker-announcements__add {
	align-self: flex-start;
}

@media (max-width: 900px) {
	.admin-settings__grid--pair,
	.admin-settings-field-grid {
		grid-template-columns: 1fr;
	}

	.admin-settings__toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.admin-settings__save {
		width: 100%;
		text-align: center;
	}
}

@media (max-width: 720px) {
	.admin-woe-slots__head,
	.admin-ticker-announcements__head {
		display: none;
	}

	.admin-woe-slots__row,
	.admin-ticker-announcements__row {
		grid-template-columns: 1fr;
		gap: 0.4rem;
		padding: 0.55rem;
	}

	.admin-ticker-announcements__sort {
		max-width: none;
	}
}

.hero-bottom-bar {
	position: relative;
	z-index: 2;
	display: block;
	width: 100%;
	height: 2.5rem; /* 40px */
	background: linear-gradient(to top, #f1f1f1 0%, #fcfcfc 100%);
	border-top: 0.0625rem solid rgba(255, 255, 255, 0.45);
	border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.35);
	box-shadow: 0 0.3rem 0.85rem rgba(0, 0, 0, 0.08);
}

.hero-bottom-bar::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.75rem;
	height: 0.75rem;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0) 100%);
}

.hero-bottom-bar__content {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	width: 33%;
	height: 100%;
	margin: 0 auto;
}

.hero-bottom-bar__item-icon {
	flex: 0 0 auto;
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	object-fit: contain;
}

.hero-bottom-bar__ticker {
	--hero-ticker-pad-inline: 0.75rem;
	container-type: inline-size;
	container-name: hero-ticker;
	position: relative;
	flex: 1 1 auto;
	height: 86%;
	background-color: #252627;
	border-radius: 0.25rem;
	box-shadow: inset 0 0.0625rem 0.2rem rgba(255, 255, 255, 0.08);
	overflow: hidden;
}

.hero-bottom-bar__ticker-text {
	position: absolute;
	top: 50%;
	left: var(--hero-ticker-pad-inline);
	margin: 0;
	padding: 0;
	white-space: nowrap;
	color: #ffd200;
	font-size: 0.8rem;
	font-weight: 400;
	line-height: 1;
	transform: translateY(-50%) translateX(100%);
	animation: hero-bottom-bar-scroll-fallback 19s linear infinite;
	will-change: transform;
}

/* Défilement droite → gauche basé sur la largeur du bandeau (textes courts inclus) */
@supports (width: 1cqi) {
	.hero-bottom-bar__ticker-text {
		transform: translateY(-50%) translateX(100cqi);
		animation-name: hero-bottom-bar-scroll;
	}
}

@keyframes hero-bottom-bar-scroll {
	from {
		transform: translateY(-50%) translateX(100cqi);
		opacity: 0;
	}
	10% {
		opacity: 1;
	}
	90% {
		opacity: 1;
	}
	to {
		transform: translateY(-50%) translateX(calc(-100% - 100cqi));
		opacity: 0;
	}
}

@keyframes hero-bottom-bar-scroll-fallback {
	from {
		transform: translateY(-50%) translateX(100%);
		opacity: 0;
	}
	10% {
		opacity: 1;
	}
	90% {
		opacity: 1;
	}
	to {
		transform: translateY(-50%) translateX(-120%);
		opacity: 0;
	}
}

.hero-bottom-bar__ticker--info {
	background-color: var(--bs-info-bg-subtle, #cff4fc);
	box-shadow: inset 0 0 0 1px var(--bs-info-border-subtle, #9eeaf9);
}

.hero-bottom-bar__ticker--priority {
	background-color: var(--bs-warning-bg-subtle, #fff3cd);
	box-shadow: inset 0 0 0 1px var(--bs-warning-border-subtle, #ffe69c);
}

.hero-bottom-bar__ticker--critical {
	background-color: var(--bs-danger-bg-subtle, #f8d7da);
	box-shadow: inset 0 0 0 1px var(--bs-danger-border-subtle, #f1aeb5);
}

.hero-bottom-bar__ticker--info .hero-bottom-bar__ticker-text {
	color: var(--bs-info-text-emphasis, #055160);
	font-weight: 500;
	text-shadow: none;
}

.hero-bottom-bar__ticker--priority .hero-bottom-bar__ticker-text {
	color: var(--bs-warning-text-emphasis, #664d03);
	font-weight: 500;
	text-shadow: none;
}

.hero-bottom-bar__ticker--critical .hero-bottom-bar__ticker-text {
	color: var(--bs-danger-text-emphasis, #58151c);
	font-weight: 500;
	text-shadow: none;
}

.main {
	display: block;
	padding: 1rem;
	background-color: #ffffff;
}

.site-footer {
	background-color: #ffffff;
	margin-top: 9.375rem; /* 150px */
	padding: 0 1rem 1.25rem;
}

.site-footer__inner {
	width: min(96%, 84rem);
	margin: 0 auto;
}

.site-footer__hr {
	margin: 0 0 0.75rem;
	border: 0;
	height: 0.0625rem;
	background-color: #dddddd;
}

.site-footer__text {
	margin: 0;
	color: #666666;
	font-size: 0.75rem;
	line-height: 1.45;
	text-align: center;
}

.site-footer__text + .site-footer__text {
	margin-top: 0.4rem;
}

.site-footer__link {
	color: #2b7b95;
	text-decoration: none;
}

.site-footer__link:hover {
	text-decoration: underline;
}

.policy-page {
	padding: 3rem 1rem 0;
	background-color: #ffffff;
}

.policy-page__inner {
	width: min(96%, 84rem);
	margin: 0 auto;
}

.policy-page__title {
	margin: 0;
	color: #363636;
	font-size: 1.25rem;
	font-weight: 700;
	text-transform: uppercase;
}

.policy-page__text {
	margin: 0.9rem 0 0;
	color: #666666;
	font-size: 0.875rem;
	line-height: 1.6;
}

.policy-page__list {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.policy-page__item {
	position: relative;
	padding-left: 1rem;
	color: #666666;
	font-size: 0.8125rem;
	line-height: 1.5;
}

.policy-page__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.4rem;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
}

.cookie-banner {
	position: fixed;
	left: 50%;
	bottom: 1rem;
	z-index: 120;
	width: min(96%, 42rem);
	transform: translateX(-50%);
}

.cookie-banner.is-hidden {
	display: none;
}

.cookie-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	padding: 0.7rem 0.8rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.5rem;
	background-color: rgba(255, 255, 255, 0.97);
	box-shadow: 0 0.45rem 1.2rem rgba(0, 0, 0, 0.12);
}

.cookie-banner__text {
	flex: 1 1 18rem;
	margin: 0;
	color: #565656;
	font-size: 0.75rem;
	line-height: 1.4;
}

.cookie-banner__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.cookie-banner__btn {
	height: 1.9rem;
	padding: 0 0.65rem;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.25rem;
	background: #ffffff;
	color: #4a4a4a;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: filter 0.18s ease-in-out, border-color 0.18s ease-in-out;
}

.cookie-banner__btn--accept {
	border-color: #1e8c80;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
}

.cookie-banner__btn:hover {
	filter: brightness(1.03);
}

.home-content-container {
	--home-main-height: 20rem;
	--home-sidebar-height: 20rem;
	--home-sidebar-width: 18rem;
	--content-divider-gap: 1.1rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--home-sidebar-width);
	align-items: start;
	column-gap: 0;
	row-gap: 1rem;
	margin-top: 3.75rem; /* 60px */
	width: min(96%, 84rem);
	margin-right: auto;
	margin-left: auto;
}

.home-content-main,
.home-content-sidebar {
	background-color: #ffffff;
	border-radius: 0.4rem;
}

.home-content-main {
	min-height: var(--home-main-height);
	padding-right: var(--content-divider-gap);
}

.home-content-main--informations {
	display: flex;
	flex-direction: column;
}

.info-page-section {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.info-page-section__title {
	margin: 0;
	color: #363636;
	font-size: 1.1875rem; /* 19px */
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.info-page-section__divider {
	width: 100%;
	height: 0.0625rem;
	margin: 0;
	border: 0;
	background-color: #d7d7d7;
}

.info-page-section__text {
	margin: 0;
	color: #666666;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.6;
}

.info-specs {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.9rem;
}

.info-specs__group {
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.5rem;
	background-color: #fcfcfc;
	padding: 0.7rem;
}

.info-specs__subtitle {
	margin: 0 0 0.55rem;
	color: #3c3c3c;
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
}

.info-specs__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.info-specs__item {
	display: flex;
	justify-content: space-between;
	gap: 0.6rem;
	padding: 0.42rem 0;
	border-bottom: 0.0625rem solid #e6e6e6;
}

.info-specs__item:last-child {
	border-bottom: 0;
}

.info-specs__label {
	color: #5c5c5c;
	font-size: 0.75rem;
	font-weight: 400;
}

.info-specs__value {
	color: #209c8f;
	font-size: 0.75rem;
	font-weight: 700;
	text-align: right;
}

.info-specs__value--pin-yes {
	color: #1a7a38;
}

.info-specs__value--pin-no {
	color: #b3261e;
}

/* Qui est en ligne : tableau rayé, sans bordures visibles */
.whos-online-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 1rem;
	margin: 0.75rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.35;
	color: #4a5560;
}

.whos-online-legend__title {
	font-weight: 700;
	color: #3c3c3c;
}

.whos-online-legend__items {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.15rem;
}

.whos-online-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.whos-online-legend__swatch {
	flex-shrink: 0;
	width: 1.35rem;
	height: 0.9rem;
	border-radius: 0.15rem;
	border: 0.0625rem solid rgba(0, 0, 0, 0.07);
}

.whos-online-legend__swatch--playing {
	background-color: #fafcfb;
}

.whos-online-legend__swatch--autotrade {
	background-color: #fff8e6;
}

.whos-online-legend__swatch--elevated {
	background-color: #f3eef8;
}

.whos-online-table-wrap {
	overflow-x: auto;
	margin-top: 0.65rem;
}

.whos-online-table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	font-size: 0.8125rem;
}

.whos-online-table th,
.whos-online-table td {
	border: 0;
	padding: 0.5rem 0.65rem;
	text-align: left;
	vertical-align: middle;
}

.whos-online-table thead th {
	color: #3c3c3c;
	font-weight: 700;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	background-color: #f0f4f3;
}

.whos-online-table tbody tr:nth-child(odd) {
	background-color: #fafcfb;
}

.whos-online-table tbody tr:nth-child(even) {
	background-color: #f3f8f7;
}

.whos-online-table tbody tr.whos-online-table__row--autotrade {
	background-color: #fff8e6;
}

.whos-online-table tbody tr.whos-online-table__row--autotrade:nth-child(even) {
	background-color: #fff2d9;
}

.whos-online-table tbody tr.whos-online-table__row--elevated {
	background-color: #f3eef8;
}

.whos-online-table tbody tr.whos-online-table__row--elevated:nth-child(even) {
	background-color: #ebe4f4;
}

.whos-online-table tbody td {
	color: #2d2d2d;
}

.whos-online-table__col--portrait,
.whos-online-table__cell--portrait {
	width: 2.75rem;
	padding-right: 0.35rem;
	vertical-align: bottom;
}

.whos-online-table__portrait-wrap {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-shrink: 0;
	width: 2.75rem; /* 44px */
	height: 2.75rem; /* 44px */
	overflow: hidden;
	border: 0.0625rem solid #d0d8dd;
	border-radius: 0.15rem;
	background: #f3f5f7;
	box-sizing: border-box;
}

.whos-online-table__portrait-wrap--empty {
	background: linear-gradient(135deg, #e8e8e8 0%, #f5f5f5 100%);
}

.whos-online-table__portrait {
	display: block;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	flex-shrink: 0;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.whos-online-table__guild {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 24px;
}

.whos-online-table__emblem {
	display: block;
	box-sizing: border-box;
	width: 24px;
	height: 24px;
	min-width: 24px;
	min-height: 24px;
	max-width: 24px;
	max-height: 24px;
	flex-shrink: 0;
	object-fit: contain;
	object-position: center;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.whos-online-table__emblem--empty {
	width: 24px;
	height: 24px;
	min-width: 24px;
	min-height: 24px;
	border-radius: 0.125rem;
	background: linear-gradient(135deg, #e8e8e8 0%, #f5f5f5 100%);
}

.whos-online-table__guild-name {
	font-weight: 600;
	color: #1a6b62;
}

.whos-online-empty {
	margin: 0.75rem 0 0;
	color: #5c5c5c;
	font-size: 0.875rem;
}

/* Page téléchargement client */
.download-client__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 1.35rem 1.15rem 1.15rem;
	margin-bottom: 1.25rem;
}

.download-client__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	box-sizing: border-box;
	min-width: min(100%, 20rem);
	max-width: 100%;
	padding: 0.9rem 1.85rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.65rem;
	background: linear-gradient(180deg, #52cdc0 0%, #239f91 55%, #1e8c80 100%);
	color: #ffffff;
	font-family: "Google Sans", "Segoe UI", system-ui, sans-serif;
	font-size: clamp(0.95rem, 2.4vw, 1.0625rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-decoration: none;
	box-shadow:
		0 0.2rem 0.55rem rgba(30, 140, 128, 0.28),
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.22);
	transition:
		filter 0.2s ease,
		box-shadow 0.2s ease,
		border-color 0.2s ease,
		transform 0.15s ease;
}

.download-client__btn-label {
	flex: 0 1 auto;
	text-align: center;
}

.download-client__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 1.15em;
	line-height: 1;
	opacity: 0.95;
}

a.download-client__btn:hover {
	filter: brightness(1.07) saturate(1.04);
	border-color: #26a898;
	box-shadow:
		0 0.35rem 0.9rem rgba(30, 140, 128, 0.38),
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.28);
	transform: translateY(-0.0625rem);
}

a.download-client__btn:active {
	filter: brightness(0.96);
	border-color: #1a7d72;
	box-shadow: 0 0.12rem 0.35rem rgba(30, 140, 128, 0.32);
	transform: translateY(0);
}

a.download-client__btn:focus-visible {
	outline: 0.125rem solid #20869c;
	outline-offset: 0.15rem;
}

.download-client__btn--disabled {
	cursor: not-allowed;
	opacity: 0.72;
	filter: grayscale(0.15);
	box-shadow: 0 0.12rem 0.35rem rgba(30, 140, 128, 0.18);
	pointer-events: none;
}

.download-client__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem 0.45rem;
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	color: #3d6a7a;
}

.download-client__meta-chip {
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: #eef9f6;
	border: 0.0625rem solid #bde7de;
	color: #1f5c54;
}

.download-client__meta-sep {
	color: #6aa89e;
	font-weight: 400;
}

.download-req {
	padding: 1.1rem 1.15rem 1.15rem;
	margin-bottom: 0.5rem;
	border: 0.0625rem solid #dfe4ea;
	border-radius: 0.35rem;
	background: linear-gradient(180deg, #ffffff 0%, #fafbfd 100%);
	box-shadow: 0 0.0625rem 0.25rem rgba(21, 52, 80, 0.06);
}

.download-req__title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 800;
	color: #153450;
	letter-spacing: -0.02em;
}

.download-req__table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 0.0625rem solid #dfe4ea;
	border-radius: 0.35rem;
	background: #ffffff;
}

.download-req__table {
	width: 100%;
	min-width: 36rem;
	border-collapse: collapse;
	font-size: 0.8125rem;
}

.download-req__table thead th {
	padding: 0.55rem 0.65rem;
	text-align: left;
	font-weight: 700;
	color: #2c3e50;
	background: #f1f3f6;
	border-bottom: 0.0625rem solid #dfe4ea;
}

.download-req__table tbody td,
.download-req__table tbody th {
	padding: 0.5rem 0.65rem;
	vertical-align: top;
	line-height: 1.4;
	color: #2b2b2b;
	border-bottom: 0.0625rem solid #eceff3;
}

.download-req__table tbody tr:last-child td,
.download-req__table tbody tr:last-child th {
	border-bottom: none;
}

.download-req__row-head,
.download-req__th-category {
	width: 11rem;
	background: #f8f9fb;
	font-weight: 700;
	color: #3d4f5f;
}

.download-req__notes {
	margin: 1rem 0 0;
	padding: 0.65rem 0.75rem 0.65rem 1.35rem;
	max-width: 48rem;
	font-size: 0.75rem;
	line-height: 1.45;
	color: #3d5a73;
	border-radius: 0.3rem;
	border: 0.0625rem solid #dce5ef;
	background: #f6f9fc;
	list-style-position: outside;
}

.download-req__notes li + li {
	margin-top: 0.35rem;
}

@media (max-width: 36rem) {
	.download-req__table {
		min-width: 28rem;
		font-size: 0.75rem;
	}
}

/* Vue globale du compte : libellés et valeurs en noir (sans accent teal des pages « informations »). */
.home-content-main--compte-vue .info-page-section__title {
	color: #1a1a1a;
}

.home-content-main--compte-vue .info-page-section__text {
	color: #333333;
}

.home-content-main--compte-vue .info-specs__subtitle {
	color: #1a1a1a;
}

.home-content-main--compte-vue .info-specs__label,
.home-content-main--compte-vue .info-specs__value {
	color: #1a1a1a;
}

/* Code secret : conserver Oui (vert) / Non (rouge), plus spécifique que la valeur noire ci-dessus. */
.home-content-main--compte-vue .info-specs__value--pin-yes {
	color: #1a7a38;
}

.home-content-main--compte-vue .info-specs__value--pin-no {
	color: #b3261e;
}

.home-content-main--compte-vue a.register-form__submit {
	margin-top: 0.35rem;
}

/* Dashboard votes (compte-votes) — structure type cards, couleurs site */
.home-content-main--votes {
	padding-bottom: 0.35rem;
}

.vote-dash {
	gap: 0.85rem;
}

.vote-dash__head .info-page-section__title {
	margin-bottom: 0.35rem;
}

.vote-dash__ticker {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.55rem 0.8rem;
	border: 0.0625rem solid #d7ebe7;
	border-radius: 0.5rem;
	background: linear-gradient(180deg, #f4fbf9 0%, #eef8f5 100%);
	color: #1f5c54;
	font-size: 0.8125rem;
	font-weight: 600;
}

.vote-dash__ticker--ready {
	border-color: #c6e7c8;
	background: linear-gradient(180deg, #f3fbf4 0%, #eaf7ec 100%);
	color: #1a7a38;
}

.vote-dash__ticker-icon {
	display: inline-flex;
	width: 1.1rem;
	justify-content: center;
	opacity: 0.9;
}

.vote-dash__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(14rem, 0.9fr);
	gap: 0.85rem;
	align-items: start;
}

.vote-dash__main,
.vote-dash__side {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-width: 0;
}

.vote-dash__card {
	padding: 0.9rem 1rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.65rem;
	background: #fcfcfc;
	box-shadow: 0 0.08rem 0.2rem rgba(26, 40, 38, 0.04);
}

.vote-dash__card--reward {
	background: linear-gradient(180deg, #ffffff 0%, #f7fcfb 100%);
}

.vote-dash__card--side {
	min-height: 100%;
}

.vote-dash__card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.vote-dash__card-title {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	color: #5a6b69;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vote-dash__card-title-icon {
	color: #239f91;
}

.vote-dash__card-side {
	color: #239f91;
	font-size: 0.78rem;
	font-weight: 700;
	white-space: nowrap;
}

.vote-dash__card-text {
	margin: 0 0 0.85rem;
	color: #4f5e5c;
	font-size: 0.875rem;
	line-height: 1.5;
}

.vote-dash__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.22rem 0.55rem;
	border-radius: 999rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
}

.vote-dash__badge-dot {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: currentColor;
}

.vote-dash__badge--ready {
	background: #e7f6ea;
	color: #1a7a38;
	border: 0.0625rem solid #b9e0c0;
}

.vote-dash__badge--wait {
	background: #fff4e8;
	color: #a15c12;
	border: 0.0625rem solid #f0d2a8;
}

.vote-dash__badge--unavailable {
	background: #f3f3f3;
	color: #6b6b6b;
	border: 0.0625rem solid #d7d7d7;
}

.vote-dash__badge--accent {
	background: #e7f7f4;
	color: #1e8c80;
	border: 0.0625rem solid #b7ded9;
}

.vote-dash__hero-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 0.5rem 0.55rem;
	text-align: center;
}

.vote-dash__hero-num {
	margin: 0;
	color: #1a1a1a;
	font-size: clamp(2.6rem, 6vw, 3.4rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
}

.vote-dash__hero-label {
	margin: 0.55rem 0 0;
	color: #666666;
	font-size: 0.875rem;
}

.vote-dash__hero-rank {
	margin: 0.35rem 0 0;
	color: #239f91;
	font-size: 0.8125rem;
	font-weight: 700;
}

.vote-dash__reset {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 0.75rem;
	padding: 0.45rem 0.55rem;
	border: 0.0625rem solid #d7ebe7;
	border-radius: 0.45rem;
	background: #f4fbf9;
	color: #1f5c54;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.35;
}

.vote-dash__reset-icon {
	flex: 0 0 auto;
	opacity: 0.85;
}

.vote-dash__leaderboard {
	max-height: 22rem;
	overflow-y: auto;
}

.vote-dash__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.75rem 1.2rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #52cdc0 0%, #239f91 55%, #1e8c80 100%);
	color: #ffffff;
	font-family: "Google Sans", "Segoe UI", system-ui, sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	box-shadow:
		0 0.18rem 0.45rem rgba(30, 140, 128, 0.25),
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.22);
	transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

a.vote-dash__cta:hover {
	filter: brightness(1.04);
	box-shadow:
		0 0.25rem 0.6rem rgba(30, 140, 128, 0.32),
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.25);
	transform: translateY(-0.0625rem);
	color: #ffffff;
}

a.vote-dash__cta:focus-visible {
	outline: 0.125rem solid #1e8c80;
	outline-offset: 0.125rem;
}

button.vote-dash__cta:disabled {
	cursor: not-allowed;
	opacity: 0.68;
	filter: grayscale(0.12);
	box-shadow: none;
}

.vote-dash__reward-row {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex-wrap: wrap;
}

.vote-dash__reward-chip {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 4.5rem;
	padding: 0.65rem 0.75rem;
	border: 0.0625rem solid #b7ded9;
	border-radius: 0.55rem;
	background: #ffffff;
}

.vote-dash__reward-chip-value {
	color: #239f91;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1;
}

.vote-dash__reward-chip-label {
	margin-top: 0.3rem;
	color: #5a6b69;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vote-dash__reward-meta {
	flex: 1 1 12rem;
	min-width: 0;
}

.vote-dash__reward-meta-line {
	margin: 0;
	color: #1a1a1a;
	font-size: 0.875rem;
	line-height: 1.45;
}

.vote-dash__reward-meta-line + .vote-dash__reward-meta-line {
	margin-top: 0.25rem;
}

.vote-dash__reward-meta-line--muted {
	color: #666666;
	font-size: 0.8125rem;
}

.vote-dash__progress {
	height: 0.45rem;
	margin: 0.15rem 0 0.55rem;
	border-radius: 999rem;
	background: #e8efed;
	overflow: hidden;
}

.vote-dash__progress-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #52cdc0 0%, #239f91 100%);
	transition: width 0.35s linear;
}

.vote-dash__progress-meta {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	color: #666666;
	font-size: 0.75rem;
	font-weight: 600;
}

.vote-dash__empty {
	margin: 0;
	color: #666666;
	font-size: 0.875rem;
	line-height: 1.5;
}

.vote-dash__history {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.vote-dash__history-item {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.55rem 0.6rem;
	border: 0.0625rem solid #e4ecea;
	border-radius: 0.5rem;
	background: #ffffff;
	opacity: 0.78;
}

.vote-dash__history-item.is-current {
	opacity: 1;
	border-color: #b7ded9;
	box-shadow: 0 0 0 0.0625rem rgba(35, 159, 145, 0.12);
}

.vote-dash__history-index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.45rem;
	height: 1.45rem;
	border-radius: 999rem;
	background: #eef8f5;
	color: #1e8c80;
	font-size: 0.72rem;
	font-weight: 700;
}

.vote-dash__history-body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.vote-dash__history-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem;
}

.vote-dash__history-date {
	color: #1a1a1a;
	font-size: 0.8125rem;
	font-weight: 600;
}

.vote-dash__history-tag {
	padding: 0.12rem 0.4rem;
	border-radius: 999rem;
	background: #1a1a1a;
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vote-dash__history-reward {
	color: #239f91;
	font-size: 0.8125rem;
	font-weight: 700;
}

.vote-dash__history-balance {
	margin-left: 0.35rem;
	color: #666666;
	font-weight: 600;
}

@media (max-width: 64rem) {
	.vote-dash__layout {
		grid-template-columns: 1fr;
	}
}

.compte-avatar-panel {
	margin-top: 0.35rem;
	padding: 0.75rem 0.85rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.5rem;
	background-color: #fcfcfc;
}

.compte-avatar-panel__body {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1rem;
}

.compte-avatar-panel__preview {
	flex: 0 0 auto;
	width: 6.5rem;
	height: 6.5rem;
	border-radius: 0.35rem;
	border: 0.0625rem solid #e0e0e0;
	overflow: hidden;
	background-color: #f0f0f0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.compte-avatar-panel__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.compte-avatar-panel__placeholder {
	color: #9a9a9a;
	font-size: 0.6875rem;
	text-align: center;
	padding: 0.5rem;
	line-height: 1.35;
}

.compte-avatar-panel__form {
	flex: 1 1 12rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
}

.compte-avatar-panel__hint {
	margin: 0;
	color: #555555;
	font-size: 0.6875rem;
	line-height: 1.45;
}

.compte-avatar-panel__file {
	font-size: 0.6875rem;
	max-width: 100%;
}

.compte-avatar-panel__submit {
	align-self: flex-start;
	height: 2rem;
	padding: 0 0.75rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.25rem;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: filter 0.2s ease-in-out;
}

.compte-avatar-panel__submit:hover {
	filter: brightness(1.04);
}

.compte-remove-pin {
	margin-top: 0.75rem;
}

.compte-remove-pin__hint {
	margin: 0 0 0.65rem;
	color: #555555;
	font-size: 0.75rem;
	line-height: 1.45;
}

.compte-remove-pin__form {
	margin-top: 0.15rem;
}

.compte-chars-empty {
	margin: 0.5rem 0 0;
	color: #555555;
	font-size: 0.875rem;
}

.compte-chars-grid {
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
	align-items: stretch;
}

.home-content-container--compte-vue {
	width: min(97%, 93rem);
	--home-sidebar-width: 16rem;
}

.compte-chars-grid > .compte-chars-card {
	height: 100%;
	min-height: 0;
}

.compte-chars-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow: hidden;
	border: 0.0625rem solid #ccd8df;
	border-radius: 0.4rem;
	background: linear-gradient(to bottom, #fdfefe 0%, #f2f6f9 100%);
	box-shadow: 0 0.25rem 0.6rem rgba(21, 56, 87, 0.08);
}

.compte-chars-card__upper {
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	border-radius: 0.4rem;
}

.compte-chars-card--admin-sanctions .compte-chars-card__upper {
	border-radius: 0.4rem 0.4rem 0 0;
}

.compte-chars-card__admin-sanctions {
	--sanctions-accent: #c43c3c;
	--sanctions-accent-deep: #942a2a;
	--sanctions-accent-soft: #fdecec;
	--sanctions-border: #ccd8df;
	--sanctions-border-strong: #c5d0db;
	--sanctions-border-input: #c5d7e3;
	--sanctions-text: #2b435a;
	--sanctions-text-muted: #5c6f82;
	--sanctions-surface: #ffffff;
	--sanctions-control-h: 2.375rem;
	--sanctions-radius: 0.45rem;

	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	min-height: 0;
	padding: 0.55rem 0.55rem 0.62rem;
	border-top: 0.0625rem solid #b8c8d4;
	background: linear-gradient(180deg, #f7fafc 0%, #eef3f7 100%);
	box-shadow: inset 0 0.0625rem 0 rgba(255, 255, 255, 0.55);
}

.compte-chars-card__offense-pills {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem;
	margin-left: 0.1rem;
}

.compte-chars-card__offense-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 0.28rem;
	border-radius: 999px;
	font-size: 0.58rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #7a3b12;
	background: #f6e2c8;
	border: 0.0625rem solid rgba(180, 110, 40, 0.45);
	cursor: help;
}

.compte-chars-card__offense-pill--critical {
	color: #fff;
	background: linear-gradient(180deg, #e05555 0%, #c43c3c 100%);
	border-color: #942a2a;
}

.compte-chars-card__sanctions-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.4rem 0.55rem;
}

.compte-chars-card__sanctions-tabs {
	display: inline-flex;
	padding: 0.15rem;
	border-radius: 0.4rem;
	background: rgba(255, 255, 255, 0.78);
	border: 0.0625rem solid var(--sanctions-border);
	box-shadow: 0 0.0625rem 0.125rem rgba(30, 50, 70, 0.05);
}

.compte-chars-card__sanctions-tab {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	margin: 0;
	padding: 0.28rem 0.55rem;
	border: 0;
	border-radius: 0.3rem;
	background: transparent;
	color: var(--sanctions-text-muted);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.compte-chars-card__sanctions-tab:hover {
	color: var(--sanctions-text);
	background: rgba(43, 67, 90, 0.06);
}

.compte-chars-card__sanctions-tab.is-active {
	color: #fff;
	background: linear-gradient(180deg, #4a657c 0%, #334d63 100%);
	box-shadow: 0 0.0625rem 0.15rem rgba(30, 50, 70, 0.18);
}

.compte-chars-card__sanctions-tab-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1rem;
	height: 1rem;
	padding: 0 0.25rem;
	border-radius: 999px;
	font-size: 0.58rem;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.22);
	color: inherit;
}

.compte-chars-card__sanctions-tab.is-active .compte-chars-card__sanctions-tab-badge {
	background: rgba(255, 255, 255, 0.28);
}

.compte-chars-card__sanctions-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.28rem;
}

.compte-chars-card__sanctions-panels {
	position: relative;
	min-height: 7.5rem;
}

.compte-chars-card__sanctions-panel {
	display: none;
	flex-direction: column;
	gap: 0.4rem;
	opacity: 0;
	transform: translateY(0.2rem);
}

.compte-chars-card__sanctions-panel.is-active {
	display: flex;
}

.compte-chars-card__sanctions-panel.is-visible,
.compte-chars-card__sanctions-panel.is-fading-in {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.compte-chars-card__sanctions-panel.is-fading-out {
	opacity: 0;
	transform: translateY(0.15rem);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.compte-chars-card__sanctions-lead {
	margin: 0;
	font-size: 0.68rem;
	line-height: 1.35;
	color: var(--sanctions-text-muted);
}

.compte-chars-card__admin-sanctions-forms {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.compte-chars-card__admin-sanctions-forms .admin-sanctions__lift-form,
.compte-chars-card__sanctions-panel .admin-sanctions__lift-form {
	margin-top: auto;
	padding-top: 0.35rem;
}

.compte-chars-card__admin-sanctions .admin-sanctions__pill--clear {
	background-color: rgba(120, 120, 120, 0.14);
	color: #4a4a4a;
	border: 0.0625rem solid rgba(90, 90, 90, 0.28);
}

.compte-chars-card__admin-sanctions .admin-sanctions__pill--restrict {
	background-color: rgba(196, 60, 60, 0.16);
	color: #7a2222;
	border: 0.0625rem solid rgba(196, 60, 60, 0.42);
}

.compte-chars-card__admin-sanctions .admin-sanctions__btn:focus-visible {
	box-shadow: 0 0 0 0.125rem rgba(196, 60, 60, 0.35);
}

.compte-chars-card__admin-sanctions .admin-sanctions__select:focus,
.compte-chars-card__admin-sanctions .admin-sanctions__input:focus {
	box-shadow: 0 0 0 0.125rem rgba(196, 60, 60, 0.22);
}

.compte-chars-card__admin-sanctions .admin-sanctions__btn--outline-warn {
	border-color: rgba(180, 70, 70, 0.65);
	color: #8f2828;
}

.compte-chars-card__admin-sanctions .admin-sanctions__btn--outline-warn:hover {
	background: rgba(196, 60, 60, 0.1);
	border-color: rgba(148, 42, 42, 0.85);
}

.compte-chars-card__admin-sanctions .admin-sanctions__btn--primary {
	background: linear-gradient(to top, var(--sanctions-accent) 0%, #e05555 100%);
	border-color: var(--sanctions-accent-deep);
}

.compte-chars-card__admin-sanctions-title {
	margin: 0 0 0.38rem;
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--sanctions-accent-deep);
}

.compte-chars-card__admin-sanctions-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	margin-bottom: 0.42rem;
}

.compte-chars-card__admin-sanctions-forms .admin-sanctions__field {
	margin-bottom: 0;
}

.compte-chars-grid__admin-footnote {
	margin: 0.75rem 0 0;
	max-width: 52rem;
}

.compte-chars-card__delete-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	padding: 0.7rem;
	background: rgba(166, 14, 14, 0.48);
	backdrop-filter: blur(0.625rem);
	-webkit-backdrop-filter: blur(0.625rem);
	text-align: center;
	color: #ffffff;
}

.compte-chars-card__suspend-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	padding: 0.7rem;
	background: rgba(191, 113, 18, 0.5);
	backdrop-filter: blur(0.625rem);
	-webkit-backdrop-filter: blur(0.625rem);
	text-align: center;
	color: #ffffff;
}

.compte-chars-card__delete-icon {
	font-size: 1.3rem;
	filter: drop-shadow(0 0.08rem 0.15rem rgba(0, 0, 0, 0.55));
}

.compte-chars-card__suspend-icon {
	font-size: 1.3rem;
	filter: drop-shadow(0 0.08rem 0.15rem rgba(0, 0, 0, 0.55));
}

.compte-chars-card__delete-title {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
}

.compte-chars-card__suspend-title {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
}

.compte-chars-card__delete-time {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.compte-chars-card__suspend-time {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.compte-chars-card__window {
	display: flex;
	flex-direction: column;
}

.compte-chars-card__window-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.4rem;
	padding: 0.3rem 0.45rem;
	border-bottom: 0.0625rem solid #9eb3c3;
	background: linear-gradient(to bottom, #d5e5f1 0%, #c3d8e7 100%);
}

.compte-chars-card__header-text {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.4rem;
	width: 100%;
	min-width: 0;
	flex: 1 1 auto;
}

.compte-chars-card__header-right {
	display: none;
}

.compte-chars-card__header-guild {
	min-width: 0;
}

.compte-chars-card__header-guild-name,
.compte-chars-card__header-guild-position {
	margin: 0;
}

.compte-chars-card__header-emblem {
	display: none;
}

.compte-chars-card__window-title {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.4rem;
	color: #2a4d68;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.compte-chars-card__window-meta {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	min-width: 0;
	margin-left: auto;
	color: #3d6079;
	font-size: 0.625rem;
	font-weight: 600;
	text-align: right;
}

.compte-chars-card__window-meta span {
	display: block;
	max-width: 100%;
	overflow-wrap: anywhere;
	white-space: normal;
}

.compte-chars-card__guild-emblem {
	display: block;
	width: 1rem;
	height: 1rem;
	border: 0.0625rem solid rgba(61, 96, 121, 0.35);
	border-radius: 0.12rem;
	background: #f5f8fb;
	object-fit: contain;
	object-position: center;
	image-rendering: pixelated;
}

.compte-chars-card__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 6.25rem minmax(0, 1fr);
	gap: 0.35rem;
	align-items: center;
	padding: 0.4rem;
	background: #edf2f7;
}

.compte-chars-card__slots {
	display: flex;
	flex-direction: column;
	gap: 0.22rem;
}

.compte-chars-card__slot {
	margin: 0;
	padding: 0.2rem 0.24rem;
	min-height: 2.65rem;
	border: 0.0625rem solid #d4dde4;
	border-radius: 0.2rem;
	background: #ffffff;
	font-size: 0.625rem;
	line-height: 1.2;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.compte-chars-card__slot-label {
	display: block;
	margin-bottom: 0.08rem;
	color: #718596;
}

.compte-chars-card__slot strong {
	display: block;
	color: #2f4355;
	font-size: 0.6875rem;
	font-weight: 700;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	overflow-wrap: anywhere;
	word-break: break-word;
	line-height: 1.2;
}

.compte-chars-card__slot-value {
	display: flex;
	align-items: center;
	gap: 0.28rem;
	min-width: 0;
}

.compte-chars-card__slot-value strong {
	flex: 1 1 auto;
}

.compte-chars-card__slot-value--reverse {
	justify-content: flex-end;
}

.compte-chars-card__slot-cards {
	display: inline-flex;
	align-items: center;
	gap: 0.08rem;
	flex: 0 0 auto;
}

.compte-chars-card__slot-card-icon {
	display: block;
	width: 1.5rem !important;
	height: 1.5rem !important;
	min-width: 1.5rem !important;
	min-height: 1.5rem !important;
	max-width: 1.5rem !important;
	max-height: 1.5rem !important;
	flex: 0 0 1.5rem !important;
	object-fit: contain;
	aspect-ratio: 1 / 1;
	filter: grayscale(1) brightness(0.35) drop-shadow(0 0 0.25rem rgba(0, 0, 0, 0.8));
	image-rendering: pixelated;
}

.compte-chars-card__item-icon {
	display: block;
	width: 1.5rem !important;
	height: 1.5rem !important;
	min-width: 1.5rem !important;
	min-height: 1.5rem !important;
	max-width: 1.5rem !important;
	max-height: 1.5rem !important;
	flex: 0 0 1.5rem !important;
	object-fit: contain;
	aspect-ratio: 1 / 1;
	border: 0.0625rem solid #ccd7e0;
	border-radius: 0.15rem;
	background: #f8fbfd;
	image-rendering: pixelated;
}

.compte-chars-card__slots--right .compte-chars-card__slot-value strong {
	text-align: right;
}

.compte-chars-card__mobile-equip {
	display: none;
}

.compte-chars-card__portrait-col {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.16rem;
}

.compte-chars-card__portrait-wrap {
	box-sizing: border-box;
	position: relative;
	width: 6.25rem;
	height: 8rem;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	overflow: hidden;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0.12rem;
	box-shadow: none;
}

.compte-chars-card__portrait-emblem {
	position: absolute;
	top: -0.08rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	object-fit: contain;
	image-rendering: pixelated;
	filter: drop-shadow(0 0.04rem 0.06rem rgba(0, 0, 0, 0.3));
	pointer-events: none;
}

.compte-chars-card__portrait {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	object-position: bottom center;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	filter: drop-shadow(0 0.04rem 0.06rem rgba(0, 0, 0, 0.3));
}

.compte-chars-card__portrait-wrap--mounted {
	height: 9.35rem;
	overflow: visible;
}

.compte-chars-card__portrait-wrap--mounted .compte-chars-card__portrait-emblem {
	top: -0.72rem;
	z-index: 3;
}

.compte-chars-card__portrait--mounted {
	max-height: 100%;
}

.compte-chars-card__guild-name {
	margin: 0;
	max-width: 6.25rem;
	color: #3a4f62;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.compte-chars-card__guild-position {
	margin: 0;
	max-width: 6.25rem;
	color: #5d7488;
	font-size: 0.5625rem;
	font-weight: 600;
	line-height: 1.1;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.compte-guild-window {
	margin-top: 0.75rem;
	border: 0.0625rem solid #bcc8d3;
	border-radius: 0.3rem;
	background: linear-gradient(to bottom, #f7f8fa 0%, #edf1f5 100%);
	overflow: hidden;
}

.compte-guild-window + .compte-guild-window {
	margin-top: 0.55rem;
}

.compte-guild-window__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-bottom: 0.0625rem solid #b4bec8;
	background: linear-gradient(to bottom, #d7e3ef 0%, #c7d8e8 100%);
}

.compte-guild-window__tab {
	display: inline-flex;
	align-items: center;
	padding: 0.24rem 0.48rem;
	border-right: 0.0625rem solid #b4bec8;
	border-top: 0;
	border-left: 0;
	border-bottom: 0;
	background: transparent;
	cursor: pointer;
	color: #4b5f74;
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1.2;
}

.compte-guild-window__tab.is-active {
	background: linear-gradient(to bottom, #eef4fb 0%, #dfeaf6 100%);
	color: #243f58;
}

.compte-guild-window__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.65rem;
	padding: 0.58rem;
}

.compte-guild-window__panel {
	padding: 0;
}

.compte-guild-window__panel.is-active {
	display: block;
}

.compte-guild-window__panel:not([data-tab-panel="infos"]) {
	padding: 0.58rem;
}

.compte-guild-window__list {
	display: grid;
	gap: 0.2rem;
}

.compte-guild-window__list-line {
	margin: 0;
	padding: 0.2rem 0.25rem;
	border: 0.0625rem solid #c9d4de;
	background: #f7fafc;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.35rem;
	font-size: 0.6875rem;
	line-height: 1.25;
}

.compte-guild-window__list-line strong {
	color: #22384d;
}

.compte-guild-window__skill-name-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
}

.compte-guild-window__skill-icon {
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	display: block;
	image-rendering: pixelated;
}

.compte-guild-window__list-line span {
	color: #435d74;
	text-align: right;
	display: inline-flex;
	align-items: center;
}

.compte-guild-window__empty {
	margin: 0;
	color: #5f7284;
	font-size: 0.6875rem;
}


.compte-guild-window__line {
	margin: 0 0 0.25rem;
	color: #2c2c2c;
	font-size: 0.75rem;
	line-height: 1.25;
}

.compte-guild-window__line span {
	color: #313131;
}

.compte-guild-window__line strong {
	color: #1d3347;
	font-weight: 700;
}

.compte-guild-window__line .compte-guild-window__online-count {
	color: #1c9f43;
}

.compte-guild-window__line--emblem {
	display: flex;
	align-items: center;
	gap: 0.32rem;
}

.compte-guild-window__emblem-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8rem;
	height: 1.8rem;
	border: 0.0625rem solid #afbfcb;
	background: #d6e3ee;
}

.compte-guild-window__emblem {
	display: block;
	max-width: 1.5rem;
	max-height: 1.5rem;
	image-rendering: pixelated;
}

.compte-guild-window__emblem-empty {
	color: #6d7e8f;
	font-size: 0.75rem;
}

.compte-guild-window__box {
	margin-top: 0.28rem;
}

.compte-guild-window__box-title {
	margin: 0 0 0.12rem;
	color: #273c52;
	font-size: 0.6875rem;
	font-weight: 700;
}

.compte-guild-window__box-content {
	height: 2.85rem;
	border: 0.0625rem solid #c1cad2;
	background: #d7d7d7;
	padding: 0.3rem;
	color: #4b4b4b;
	font-size: 0.625rem;
	line-height: 1.25;
}

.compte-chars-card__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.2rem;
	padding: 0.35rem 0.4rem 0.45rem;
	border-top: 0.0625rem solid #c8d5df;
	background: #f7fafc;
}

.compte-chars-card__stat {
	margin: 0;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.2rem 0.35rem;
	align-items: baseline;
	padding: 0.12rem 0.22rem;
	border: 0.0625rem solid #d7e0e7;
	border-radius: 0.15rem;
	background: #ffffff;
	font-size: 0.625rem;
	line-height: 1.2;
}

.compte-chars-card__stat span {
	margin: 0;
	color: #607486;
	font-weight: 600;
}

.compte-chars-card__stat strong {
	color: #253646;
	text-align: right;
	font-weight: 700;
	font-size: 0.6875rem;
}

.info-features {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.38rem;
}

.info-features__item {
	position: relative;
	padding-left: 1rem;
	color: #565656;
	font-size: 0.75rem;
	line-height: 1.35;
}

.info-features__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.33rem;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
}

.info-command-badges {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 42rem;
	margin-inline: auto;
	gap: 0.38rem;
}

.info-command-badges__item {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.5rem;
	border: 0.0625rem solid #b7ded9;
	border-radius: 999rem;
	background: linear-gradient(to top, #edf9f8 0%, #ffffff 100%);
	color: #209c8f;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
}

.patch-notes-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.patch-note-card {
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.5rem;
	background-color: #fcfcfc;
	padding: 0.7rem;
}

.patch-note-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.55rem;
}

.patch-note-card__title {
	margin: 0;
	color: #363636;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
}

.patch-note-card__date {
	color: #209c8f;
	font-size: 0.6875rem;
	font-weight: 700;
}

.patch-note-card__items {
	margin: 0;
	padding-left: 1.05rem;
	color: #666666;
	font-size: 0.75rem;
	line-height: 1.5;
}

.patch-note-card__body {
	margin: 0;
	color: #666666;
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.55;
}

.patch-note-card__body ul,
.patch-note-card__body ol {
	margin: 0.35rem 0 0.35rem 1.25rem;
	padding: 0;
}

.patch-note-card__body p {
	margin: 0 0 0.5rem;
}

.patch-note-card__body p:last-child {
	margin-bottom: 0;
}

/* —— Patch notes devblog (liste + article) —— */
.patch-notes-list--devblog {
	display: grid;
	gap: 1rem;
}

.patch-note-card--devblog {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	padding: 0;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #fff 0%, #f6fcfb 100%);
	overflow: hidden;
	box-shadow: 0 0.12rem 0.35rem rgba(30, 140, 128, 0.1);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.patch-note-card--devblog:hover {
	box-shadow: 0 0.2rem 0.55rem rgba(30, 140, 128, 0.16);
	transform: translateY(-0.05rem);
}

.patch-note-card__hero {
	display: block;
	width: 100%;
	aspect-ratio: 21 / 9;
	object-fit: cover;
	background: #e8f7f5;
}

.patch-note-card__inner {
	padding: 0.85rem 1rem 1rem;
}

.patch-note-card__head--devblog {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	margin-bottom: 0.45rem;
}

.patch-note-card__title--devblog {
	font-size: 1rem;
	text-transform: none;
	letter-spacing: 0.01em;
	line-height: 1.25;
}

.patch-note-card__summary {
	margin: 0 0 0.65rem;
	color: #5a6f84;
	font-size: 0.8125rem;
	line-height: 1.55;
}

.patch-note-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: #1e8c80;
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
}

.patch-note-card__cta:hover {
	color: #145a52;
	text-decoration: underline;
}

.devblog-article {
	max-width: 46rem;
	margin: 0 auto;
}

.devblog-article__back {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
	color: #1e8c80;
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
}

.devblog-article__back:hover {
	color: #145a52;
	text-decoration: underline;
}

.devblog-article__hero {
	display: block;
	width: 100%;
	max-height: 22rem;
	object-fit: cover;
	border-radius: 0.55rem;
	margin: 0 0 1rem;
	border: 0.0625rem solid #cfe4e0;
	box-shadow: 0 0.15rem 0.45rem rgba(30, 140, 128, 0.12);
}

.devblog-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.85rem;
	margin: 0 0 0.55rem;
	color: #209c8f;
	font-size: 0.72rem;
	font-weight: 700;
}

.devblog-article__title {
	margin: 0 0 1rem;
	color: #1f3d38;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
}

.devblog-article__body {
	color: #4a5f68;
	font-size: 0.875rem;
	line-height: 1.65;
}

.devblog-article__body h2,
.devblog-article__body h3,
.devblog-article__body h4 {
	margin: 1.35rem 0 0.55rem;
	color: #1f3d38;
	font-weight: 700;
	line-height: 1.25;
}

.devblog-article__body h2 { font-size: 1.05rem; }
.devblog-article__body h3 { font-size: 0.95rem; }
.devblog-article__body h4 { font-size: 0.88rem; }

.devblog-article__body p {
	margin: 0 0 0.75rem;
}

.devblog-article__body ul,
.devblog-article__body ol {
	margin: 0.35rem 0 0.85rem 1.35rem;
	padding: 0;
}

.devblog-article__body blockquote {
	margin: 0.85rem 0;
	padding: 0.65rem 0.85rem;
	border-left: 0.22rem solid #52cdc0;
	border-radius: 0 0.35rem 0.35rem 0;
	background: #e8f7f5;
	color: #234640;
}

.devblog-figure {
	margin: 1rem 0;
	text-align: center;
}

.devblog-figure__img {
	max-width: 100%;
	height: auto;
	border-radius: 0.45rem;
	border: 0.0625rem solid #cfe4e0;
	box-shadow: 0 0.12rem 0.35rem rgba(30, 140, 128, 0.1);
}

.devblog-figure__caption {
	margin-top: 0.45rem;
	color: #5a7a74;
	font-size: 0.72rem;
	font-style: italic;
}

.admin-patch-notes-ide {
	display: grid;
	gap: 0.85rem;
	margin-top: 0.35rem;
}

.admin-patch-notes-ide__panel {
	padding: 0.85rem 1rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #fff 0%, #f4faf8 100%);
	box-shadow: inset 0.22rem 0 0 #52cdc0;
}

.admin-patch-notes-ide__path {
	margin: 0.35rem 0 0;
	padding: 0.45rem 0.65rem;
	border-radius: 0.35rem;
	background: #1f3d38;
	color: #d4f0ec;
	font-family: ui-monospace, Consolas, monospace;
	font-size: 0.72rem;
	overflow-x: auto;
}

.admin-patch-notes-ide__pre {
	margin: 0.55rem 0 0;
	padding: 0.65rem 0.75rem;
	border-radius: 0.35rem;
	background: #152826;
	color: #c8ebe6;
	font-family: ui-monospace, Consolas, monospace;
	font-size: 0.68rem;
	line-height: 1.5;
	overflow-x: auto;
	white-space: pre;
}

.admin-patch-notes-ide__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.78rem;
}

.admin-patch-notes-ide__table th,
.admin-patch-notes-ide__table td {
	padding: 0.45rem 0.55rem;
	border-bottom: 0.0625rem solid #e6f2f0;
	text-align: left;
	vertical-align: top;
}

.admin-patch-notes-ide__table th {
	color: #145a52;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.admin-patch-notes-ide__status {
	display: inline-block;
	padding: 0.12rem 0.42rem;
	border-radius: 999px;
	font-size: 0.62rem;
	font-weight: 700;
}

.admin-patch-notes-ide__status--published {
	background: #e8f7f5;
	color: #145a52;
}

.admin-patch-notes-ide__status--draft {
	background: #fff6e8;
	color: #8a5a12;
}

.info-page-alert {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.45;
}

.info-page-alert__date {
	font-weight: 600;
}

.rules-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

.admin-dashboard {
	--admin-accent: #1e8c80;
	--admin-accent-soft: #52cdc0;
	--admin-accent-wash: #e8f7f5;
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.admin-dashboard__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.55rem;
}

.admin-kpi-card {
	position: relative;
	padding: 0.55rem 2.2rem 0.55rem 0.6rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.4rem;
	background: linear-gradient(180deg, #ffffff 0%, #f3faf8 100%);
	box-shadow: inset 0.18rem 0 0 #52cdc0;
}

.admin-kpi-card__label {
	margin: 0;
	color: #4f6f6a;
	font-size: 0.65rem;
}

.admin-kpi-card__value {
	margin: 0.15rem 0 0;
	color: #1a3d38;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.15;
}

.admin-kpi-card__icon {
	position: absolute;
	right: 0.55rem;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 0.25rem;
	background: #e8f7f5;
	color: #1e8c80;
}

.admin-kpi-card--blue {
	box-shadow: inset 0.18rem 0 0 #3ca2ff;
	border-color: #c9dff3;
	background: linear-gradient(180deg, #ffffff 0%, #f3f8fc 100%);
}

.admin-kpi-card--blue .admin-kpi-card__icon {
	background: #e8f3fc;
	color: #2b8fd9;
}

.admin-kpi-card--green {
	box-shadow: inset 0.18rem 0 0 #3ac279;
	border-color: #c9e8d6;
	background: linear-gradient(180deg, #ffffff 0%, #f3faf5 100%);
}

.admin-kpi-card--green .admin-kpi-card__icon {
	background: #e8f7ee;
	color: #2fa86e;
}

.admin-kpi-card--cyan {
	box-shadow: inset 0.18rem 0 0 #1e8c80;
	border-color: #cfe4e0;
	background: linear-gradient(180deg, #ffffff 0%, #f0faf8 100%);
}

.admin-kpi-card--cyan .admin-kpi-card__icon {
	background: #e8f7f5;
	color: #1e8c80;
}

.admin-kpi-card--orange {
	box-shadow: inset 0.18rem 0 0 #f7a347;
	border-color: #f0dcc0;
	background: linear-gradient(180deg, #ffffff 0%, #fff8f0 100%);
}

.admin-kpi-card--orange .admin-kpi-card__icon {
	background: #fff3e6;
	color: #e08a2a;
}

.admin-dashboard__row {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 0.7rem;
}

.admin-dashboard__row--bottom {
	grid-template-columns: 1fr 3fr;
}

.admin-panel {
	padding: 0.7rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.45rem;
	background: linear-gradient(180deg, #ffffff 0%, #f4faf8 100%);
	color: #2f465d;
	box-shadow: 0 0.08rem 0.35rem rgba(30, 140, 128, 0.06);
}

.admin-contenus-news-actions {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 0.45rem;
}

.admin-contenus-cat-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.75rem;
	margin: 0 0 0.65rem;
}

.admin-contenus-cat-filter__label {
	font-size: 0.62rem;
	font-weight: 700;
	color: #1a3d38;
	white-space: nowrap;
}

.admin-contenus-cat-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.admin-contenus-cat-tabs__link {
	display: inline-block;
	font-size: 0.64rem;
	padding: 0.22rem 0.5rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.3rem;
	text-decoration: none;
	color: #2f465d;
	background: #fff;
	line-height: 1.2;
}

.admin-contenus-cat-tabs__link:hover {
	border-color: #52cdc0;
	color: #1a3d38;
	background: #f3faf8;
}

.admin-contenus-cat-tabs__link.is-active {
	background: linear-gradient(180deg, #e8f7f5 0%, #d5f0ec 100%);
	border-color: #1e8c80;
	font-weight: 700;
	color: #145a52;
}

.admin-table__lang-flags {
	display: inline-flex;
	align-items: center;
	gap: 0.32rem;
	flex-wrap: wrap;
	vertical-align: middle;
}

.admin-table__lang-flags .site-topbar__lang-flag {
	box-shadow:
		0 0 0.12rem rgba(255, 255, 255, 0.4),
		0 0 0.35rem rgba(100, 190, 230, 0.35);
}

.admin-table__lang-none {
	color: #8a9aa8;
	font-size: 0.7rem;
}

.admin-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem;
	margin-bottom: 0.55rem;
}

.admin-panel__title {
	margin: 0;
	color: #145a52;
	font-size: 0.77rem;
	font-weight: 700;
}

.admin-panel__meta {
	font-size: 0.625rem;
}

.admin-panel__meta.is-ok {
	color: #2fa86e;
	font-weight: 600;
}

.admin-panel__meta.is-danger {
	color: #e56b6b;
}

.admin-panel__link {
	color: #1e8c80;
	font-size: 0.64rem;
	font-weight: 700;
	text-decoration: none;
}

.admin-panel__link:hover {
	color: #145a52;
	text-decoration: underline;
}

.admin-traffic-chart {
	position: relative;
	border: 0.0625rem solid #d5e1ec;
	border-radius: 0.35rem;
	background: #f8fbff;
	overflow: hidden;
}

.admin-traffic-chart__canvas-wrap {
	position: relative;
	height: 11rem;
	padding: 0.35rem 0.4rem 0.15rem;
}

.admin-traffic-chart__canvas-wrap[hidden] {
	display: none !important;
}

.admin-traffic-chart__empty {
	margin: 0;
	padding: 1.25rem 0.75rem;
	text-align: center;
	color: #6a7d90;
	font-size: 0.68rem;
	line-height: 1.35;
}

.admin-traffic-chart__empty[hidden] {
	display: none !important;
}

.admin-traffic-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.55rem 0.85rem;
	padding: 0.35rem 0.5rem 0.45rem;
	border-top: 0.0625rem solid #e6eef6;
	background: #f4f8fd;
}

.admin-traffic-legend[hidden] {
	display: none !important;
}

.admin-traffic-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	font-size: 0.6rem;
	font-weight: 600;
	color: #4a5f73;
}

.admin-traffic-legend__swatch {
	display: inline-block;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 999px;
	flex-shrink: 0;
}

.admin-traffic-legend__swatch--peak {
	background: #1a8be0;
}

.admin-traffic-legend__swatch--online {
	background: #2fa86e;
}

.admin-traffic-legend__swatch--autotrade {
	background: #f7a347;
}

.admin-traffic-metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.3rem;
	margin-top: 0.55rem;
}

.admin-traffic-metrics p {
	margin: 0;
	text-align: center;
}

.admin-traffic-metrics strong {
	display: block;
	font-size: 0.88rem;
}

.admin-traffic-metrics__item--peak strong {
	color: #1a8be0;
}

.admin-traffic-metrics__item--online strong {
	color: #2fa86e;
}

.admin-traffic-metrics__item--autotrade strong {
	color: #f7a347;
}

.admin-traffic-metrics span {
	color: #5f7285;
	font-size: 0.64rem;
}

.admin-panel--woe {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-height: 100%;
	height: 100%;
	text-align: center;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

.admin-panel--woe--has-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, rgba(248, 251, 255, 0.9) 38%, rgba(255, 255, 255, 0.92) 100%),
		var(--admin-woe-bg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.admin-panel--woe > * {
	position: relative;
	z-index: 1;
}

.admin-woe__top {
	flex: 0 0 auto;
	width: 100%;
}

.admin-woe__top .admin-panel__title {
	margin-bottom: 0.15rem;
}

.admin-woe__middle {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 5rem;
	padding: 0.2rem 0;
}

.admin-woe__next {
	margin: 0.35rem 0 0;
	color: #6a7d90;
	font-size: 0.62rem;
	text-transform: uppercase;
}

.admin-woe-ring {
	--woe-ring-angle: 360deg;
	position: relative;
	z-index: 0;
	isolation: isolate;
	width: 7rem;
	height: 7rem;
	margin: 0 auto;
	border-radius: 50%;
	flex-shrink: 0;
	background: #e8eef4;
}

.admin-woe-ring__layers {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.admin-woe-ring-layer {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border-style: solid;
	box-sizing: border-box;
	background: transparent;
	pointer-events: auto;
}

.admin-woe-ring__progress {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 50%;
	pointer-events: none;
	background: conic-gradient(
		from 0deg,
		rgba(204, 86, 99, 0.32) 0deg,
		rgba(228, 138, 99, 0.32) var(--woe-ring-angle),
		transparent var(--woe-ring-angle)
	);
}

.admin-woe-ring::after {
	content: '';
	position: absolute;
	z-index: 2;
	inset: 0.42rem;
	border-radius: 50%;
	background: #ffffff;
	border: 0.0625rem solid #dbe5ee;
}

.admin-woe-ring__core {
	position: absolute;
	z-index: 3;
	inset: 1.3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(180deg, #f9fbfe 0%, #eef3f8 100%);
	border: 0.0625rem solid #d3dee8;
	overflow: hidden;
}

.admin-woe-ring__emblem {
	position: relative;
	z-index: 1;
	display: block;
	width: 72%;
	height: 72%;
	object-fit: contain;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	-ms-interpolation-mode: nearest-neighbor;
}

.admin-woe-ring__no-owner {
	margin: 0;
	max-width: 5.5rem;
	color: #5a7085;
	font-size: 0.58rem;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
}

.admin-woe-ring__fallback {
	color: #5a7085;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.admin-woe__timer {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	width: 100%;
	flex: 0 0 auto;
	padding-top: 0.35rem;
}

.admin-woe__timer-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.25rem;
	text-align: center;
	align-items: center;
}

.admin-woe__timer-row--labels span {
	margin: 0;
	color: #657a8f;
	font-size: 0.58rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.admin-woe__timer-row--values {
	min-height: 1.35rem;
}

.admin-woe__unit {
	display: inline-flex;
	justify-content: center;
	align-items: stretch;
	gap: 0.12rem;
}

.admin-woe__digit-slot {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1ch;
	overflow: visible;
	line-height: 1;
}

.admin-woe__digit-inner {
	display: inline-block;
	color: #22394f;
	font-size: 0.92rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	font-feature-settings: 'tnum' 1;
	font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', monospace;
}

.admin-donut {
	width: 8rem;
	height: 8rem;
	margin: 0 auto 0.65rem;
	border-radius: 50%;
	background: #f2f6f9;
	position: relative;
	overflow: hidden;
}

.admin-donut__chart {
	display: block;
	width: 100%;
	height: 100%;
}

.admin-donut__segment {
	stroke: #ffffff;
	stroke-width: 0.55;
	stroke-linejoin: round;
	pointer-events: auto;
	cursor: pointer;
}

.admin-donut__center {
	position: absolute;
	inset: 1.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #ffffff;
	color: #1f354a;
	font-size: 1.1rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	pointer-events: none;
	line-height: 1;
}

.admin-donut__center--empty {
	font-size: 0.95rem;
	color: #6a7d90;
	font-weight: 600;
}

.admin-donut__tip {
	position: fixed;
	z-index: 20000;
	box-sizing: border-box;
	max-width: min(18rem, calc(100vw - 1.25rem));
	padding: 0.4rem 0.55rem;
	border-radius: 0.35rem;
	background: rgba(31, 53, 74, 0.95);
	color: #f0f6fb;
	font-size: 0.65rem;
	line-height: 1.38;
	font-weight: 500;
	box-shadow: 0 0.15rem 0.55rem rgba(15, 30, 45, 0.28);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.1s ease;
}

.admin-donut__tip--visible {
	opacity: 1;
}

.admin-class-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.admin-class-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	color: #3c556f;
	font-size: 0.67rem;
	cursor: pointer;
}

.admin-class-list li span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

.admin-class-list li strong {
	font-variant-numeric: tabular-nums;
}

.admin-table-wrap {
	overflow-x: auto;
}

.admin-accounts-directory__tabs {
	margin-top: 0.35rem;
	margin-bottom: 0.65rem;
}

.admin-accounts-directory__hint {
	margin: 0 0 0.65rem;
}

.admin-accounts-directory__meta {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	color: #5c5c5c;
}

.admin-accounts-directory__masked {
	font-size: 0.8125rem;
}

.admin-accounts-directory__status {
	display: inline-block;
	max-width: 16rem;
	padding: 0.18rem 0.48rem;
	border-radius: 0.3rem;
	font-weight: 700;
	font-size: 0.66rem;
	line-height: 1.3;
	white-space: normal;
	vertical-align: middle;
}

.admin-accounts-directory__status--success {
	background-color: rgba(46, 160, 92, 0.2);
	color: #0d5c2e;
	border: 0.0625rem solid rgba(46, 160, 92, 0.45);
}

.admin-accounts-directory__status--warning {
	background-color: rgba(232, 138, 36, 0.22);
	color: #8f5207;
	border: 0.0625rem solid rgba(232, 138, 36, 0.48);
}

.admin-accounts-directory__status--danger {
	background-color: rgba(211, 56, 56, 0.18);
	color: #8f1818;
	border: 0.0625rem solid rgba(211, 56, 56, 0.42);
}

.admin-table__cell--wrap {
	white-space: normal;
	vertical-align: middle;
	max-width: 14rem;
}

.admin-panel--guilds-directory {
	box-shadow: 0 0.25rem 1rem rgba(21, 52, 80, 0.055);
	border-color: #c8d4e4;
}

.admin-guilds-directory__hint {
	margin: 0 0 0.65rem;
}

.admin-guilds-board__head {
	margin-bottom: 0.65rem;
	padding-bottom: 0.55rem;
	border-bottom: 0.0625rem solid #e4ecf5;
}

.admin-guilds-board__meta {
	margin: 0;
	max-width: 42rem;
	font-size: 0.8125rem;
	color: #5c6f82;
	line-height: 1.35;
}

.admin-guilds-board__sheet {
	border: 0.0625rem solid #dce5ef;
	border-radius: 0.5rem;
	background: #fbfcfe;
	overflow: hidden;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.admin-guilds-board__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.admin-guilds-board__empty {
	margin: 0;
	padding: 1.35rem 1rem;
	text-align: center;
	font-size: 0.8rem;
	color: #647892;
	background: #f6f8fb;
}

.admin-guild-strip {
	display: grid;
	grid-template-columns: 3rem minmax(9rem, 16rem) minmax(0, 1fr);
	grid-template-areas: 'emblem main kpis';
	align-items: center;
	gap: 0.65rem 0.85rem;
	padding: 0.55rem 0.85rem;
	background: #ffffff;
	border-bottom: 0.0625rem solid #e9eef6;
	transition: background-color 0.12s ease;
}

.admin-guild-strip:last-child {
	border-bottom: none;
}

.admin-guild-strip:hover {
	background: #f7fafd;
}

.admin-guild-strip__emblem-wrap {
	grid-area: emblem;
	justify-self: center;
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.admin-guild-strip__emblem {
	width: 100%;
	height: 100%;
	object-fit: contain;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.admin-guild-strip__emblem--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 1.1rem;
	color: #a8bbd2;
}

.admin-guild-strip__main {
	grid-area: main;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.admin-guild-strip__name {
	display: block;
	font-size: 0.84rem;
	font-weight: 800;
	color: #0f2740;
	line-height: 1.25;
	letter-spacing: -0.01em;
	word-break: break-word;
}

.admin-guild-strip__meta {
	font-size: 0.65rem;
	font-weight: 600;
	color: #5f7590;
	line-height: 1.35;
	word-break: break-word;
}

.admin-guild-strip__leader {
	color: #3d5a73;
}

.admin-guild-strip__kpis {
	grid-area: kpis;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.45rem;
	justify-content: flex-end;
	align-items: stretch;
}

.admin-guild-kpi {
	flex: 0 1 auto;
	min-width: 4.1rem;
	max-width: 8rem;
	padding: 0.32rem 0.5rem;
	border-radius: 0.35rem;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border: 0.0625rem solid #e2e9f2;
	box-shadow: 0 0.04rem 0.12rem rgba(31, 54, 76, 0.04);
	text-align: center;
}

.admin-guild-kpi__lbl {
	display: block;
	font-size: 0.52rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #7d93ab;
	line-height: 1.2;
	margin-bottom: 0.12rem;
}

.admin-guild-kpi__val {
	display: block;
	font-size: 0.74rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: #153450;
	line-height: 1.2;
	word-break: break-word;
}

@media (max-width: 52rem) {
	.admin-guild-strip {
		grid-template-columns: 2.85rem 1fr;
		grid-template-areas:
			'emblem main'
			'emblem kpis';
		grid-template-rows: auto auto;
		align-items: start;
		padding: 0.55rem 0.65rem;
		gap: 0.45rem 0.65rem;
	}

	.admin-guild-strip__kpis {
		justify-content: flex-start;
		padding-left: 0;
	}
}

@media (max-width: 28rem) {
	.admin-guild-strip {
		grid-template-columns: 2.75rem 1fr;
		grid-template-areas:
			'emblem main'
			'kpis kpis';
	}

	.admin-guild-strip__kpis {
		grid-area: kpis;
	}
}

.admin-guild-strip__name-link {
	display: block;
	font-size: 0.84rem;
	font-weight: 800;
	color: #0f2740;
	line-height: 1.25;
	letter-spacing: -0.01em;
	word-break: break-word;
	text-decoration: none;
}

.admin-guild-strip__name-link:hover {
	color: #1e8c80;
	text-decoration: underline;
}

.admin-panel--super-whos-online .admin-super-whos-online__woe-banner {
	margin-bottom: 0.85rem;
}

.admin-guild-detail__char-link {
	font-weight: 700;
	color: #1e8c80;
	text-decoration: none;
}

.admin-guild-detail__char-link:hover {
	text-decoration: underline;
}

.admin-guild-detail__back-wrap {
	margin: 0 0 0.75rem;
}

.admin-guild-detail__back {
	font-size: 0.8125rem;
	font-weight: 700;
	color: #1e8c80;
	text-decoration: none;
}

.admin-guild-detail__back:hover {
	text-decoration: underline;
}

.admin-guild-detail {
	border: 0.0625rem solid #dce5ef;
	border-radius: 0.5rem;
	background: #fbfcfe;
	padding: 1rem 1rem 1.15rem;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.admin-guild-detail__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.85rem 1rem;
	margin-bottom: 1.15rem;
	padding-bottom: 1rem;
	border-bottom: 0.0625rem solid #e4ecf5;
}

.admin-guild-detail__emblem-wrap {
	flex: 0 0 auto;
	width: 3.5rem;
	height: 3.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.admin-guild-detail__emblem {
	width: 100%;
	height: 100%;
	object-fit: contain;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.admin-guild-detail__emblem--placeholder {
	font-size: 1.35rem;
	color: #a8bbd2;
}

.admin-guild-detail__identity {
	flex: 1 1 14rem;
	min-width: 0;
}

.admin-guild-detail__name {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 800;
	color: #0f2740;
	line-height: 1.25;
	word-break: break-word;
}

.admin-guild-detail__master {
	margin: 0.35rem 0 0;
	font-size: 0.72rem;
	font-weight: 600;
	color: #5f7590;
}

.admin-guild-detail__kpis {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.45rem;
	margin-top: 0.65rem;
}

.admin-guild-detail__columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(12rem, 22rem);
	gap: 1.25rem 1.5rem;
	align-items: start;
}

@media (max-width: 52rem) {
	.admin-guild-detail__columns {
		grid-template-columns: 1fr;
	}
}

.admin-guild-detail__block-title {
	margin: 0 0 0.5rem;
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #5f7590;
}

.admin-guild-detail__table-wrap {
	max-height: min(70vh, 28rem);
	overflow: auto;
	border-radius: 0.35rem;
	border: 0.0625rem solid #e2e9f2;
}

.admin-guild-detail__table {
	margin: 0;
	font-size: 0.72rem;
}

.admin-guild-detail__table th,
.admin-guild-detail__table td {
	padding: 0.38rem 0.5rem;
}

.admin-table tbody tr.admin-table__row--muted td {
	color: #8a9aad;
}

.admin-guild-detail__deleted-tag {
	font-size: 0.62rem;
	font-weight: 600;
	font-style: italic;
	color: #9aa9bc;
}

.admin-guild-detail__online {
	font-weight: 700;
	font-size: 0.68rem;
}

.admin-guild-detail__online--yes {
	color: #1e8c80;
}

.admin-guild-detail__online--no {
	color: #8a97a8;
}

.admin-guild-detail__empty {
	margin: 0;
	font-size: 0.78rem;
	color: #647892;
}

.admin-guild-detail__castle-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.admin-guild-detail__castle-item {
	font-size: 0.78rem;
	font-weight: 600;
	color: #1f364c;
	padding: 0.35rem 0.5rem;
	border-radius: 0.3rem;
	background: #ffffff;
	border: 0.0625rem solid #e7eef6;
}

.admin-accounts-directory__pagination,
.admin-guilds-directory__pagination {
	justify-content: flex-start;
	padding-top: 0.85rem;
}

.admin-accounts-directory__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.22rem 0.55rem;
	border-radius: 0.28rem;
	border: 0.0625rem solid #1e8c80;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	font-size: 0.65rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.2;
}

.admin-accounts-directory__action:hover {
	color: #ffffff;
	filter: brightness(1.06);
}

.admin-table__cell--actions {
	text-align: center;
	vertical-align: middle;
}

.admin-account-detail__back-wrap {
	margin: 0 0 0.35rem;
}

.admin-account-detail__back {
	font-size: 0.8125rem;
	font-weight: 600;
	color: #1a6b62;
	text-decoration: none;
}

.admin-account-detail__back:hover {
	text-decoration: underline;
}

.admin-account-detail__chars-wrap {
	margin-top: 1.25rem;
}

.admin-account-detail__chars-grid-wrap {
	margin-top: 0.45rem;
	width: 100%;
	max-width: 100%;
}

/* Panneau sanctions admin — harmonisé avec la modération RocMS (teal, bordures WoE / admin-table) */
.admin-sanctions {
	--sanctions-accent: #1e8c80;
	--sanctions-accent-deep: #1a6b62;
	--sanctions-accent-soft: #e8f7f5;
	--sanctions-border: #dce4ed;
	--sanctions-border-strong: #d8e2ec;
	--sanctions-border-input: #c5d7e3;
	--sanctions-text: #2b435a;
	--sanctions-text-muted: #5c5c5c;
	--sanctions-surface: #fcfcfc;
	--sanctions-control-h: 2.375rem;
	--sanctions-radius: 0.45rem;

	margin-top: 1.25rem;
	padding: 0;
	border-radius: var(--sanctions-radius);
	border: 0.0625rem solid var(--sanctions-border);
	background: #ffffff;
	box-shadow: 0 0.0625rem 0.25rem rgba(43, 67, 90, 0.07);
	overflow: hidden;
}

.admin-sanctions__header {
	padding: 1rem 1.15rem 0.95rem;
	border-bottom: 0.0625rem solid var(--sanctions-border);
	background: linear-gradient(180deg, #f9fbff 0%, #ffffff 100%);
}

.admin-sanctions__title {
	margin: 0 0 0.45rem;
	padding-left: 0.55rem;
	border-left: 0.1875rem solid var(--sanctions-accent);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #3c3c3c;
}

.admin-sanctions__intro {
	margin: 0 0 0.45rem;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--sanctions-text-muted);
	max-width: 52rem;
}

.admin-sanctions__tech {
	margin: 0;
	font-size: 0.6875rem;
	line-height: 1.45;
	color: #7a8fa3;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.admin-sanctions__alert {
	margin: 0;
	padding: 0.6rem 1.15rem;
	border-bottom: 0.0625rem solid var(--sanctions-border);
	font-size: 0.8125rem;
}

.admin-sanctions__alert--success {
	background: rgba(46, 160, 92, 0.08);
	color: #0d5c2e;
	border-left: 0.1875rem solid #2ea05c;
}

.admin-sanctions__alert--error {
	background: rgba(211, 56, 56, 0.07);
	color: #8f1818;
	border-left: 0.1875rem solid #d43838;
}

.admin-sanctions__alert-text {
	margin: 0;
}

.admin-sanctions__section {
	padding: 0.95rem 1.15rem 1rem;
	border-bottom: 0.0625rem solid var(--sanctions-border);
}

.admin-sanctions__section:last-child {
	border-bottom: none;
}

.admin-sanctions__section-heading {
	margin: 0 0 0.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: #3c3c3c;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.admin-sanctions__muted {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--sanctions-text-muted);
}

.admin-sanctions__muted--inline {
	max-width: 36rem;
}

.admin-sanctions__account-layout {
	display: grid;
	grid-template-columns: minmax(11rem, 15rem) 1fr;
	gap: 1rem 1.5rem;
	align-items: stretch;
}

@media (max-width: 720px) {
	.admin-sanctions__account-layout {
		grid-template-columns: 1fr;
	}
}

.admin-sanctions__account-layout--tool-only {
	grid-template-columns: 1fr;
}

.admin-sanctions__stat-card {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-height: 0;
	height: 100%;
	padding: 0.75rem 0.85rem;
	border-radius: var(--sanctions-radius);
	border: 0.0625rem solid var(--sanctions-border);
	background: var(--sanctions-surface);
}

.admin-sanctions__stat-label {
	display: block;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #536b84;
	margin-bottom: 0.4rem;
}

.admin-sanctions__stat-body {
	flex: 1 1 auto;
	min-height: var(--sanctions-control-h);
	display: flex;
	align-items: center;
}

.admin-sanctions__pill {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.5rem;
	border-radius: 0.3rem;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

.admin-sanctions__pill--clear {
	background-color: rgba(46, 160, 92, 0.2);
	color: #0d5c2e;
	border: 0.0625rem solid rgba(46, 160, 92, 0.45);
}

.admin-sanctions__pill--restrict {
	background-color: rgba(232, 138, 36, 0.22);
	color: #8f5207;
	border: 0.0625rem solid rgba(232, 138, 36, 0.48);
}

.admin-sanctions__tool-card {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-height: 0;
	height: 100%;
	padding: 0.75rem 0.85rem;
	border-radius: var(--sanctions-radius);
	border: 0.0625rem solid var(--sanctions-border);
	background: #ffffff;
}

.admin-sanctions__tool-card .admin-sanctions__tool-actions {
	margin-bottom: 1rem;
}

.admin-sanctions__tool-card > .admin-sanctions__hint {
	margin-top: auto;
	margin-bottom: 0;
	padding-top: 0.75rem;
}

.admin-sanctions__tool-label {
	margin: 0 0 0.55rem;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--sanctions-text);
}

.admin-sanctions__tool-actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.admin-sanctions__stack-form {
	margin: 0;
}

.admin-sanctions__lift-form {
	margin: 0;
}

.admin-sanctions__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.admin-sanctions__field-label {
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #536b84;
}

.admin-sanctions__field-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

/* Ligne compte : grille lisible (liste + heures perso + bouton) */
.admin-sanctions__field-row--account {
	display: grid;
	grid-template-columns: minmax(9rem, 1fr) minmax(7rem, 9rem) auto;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	max-width: 38rem;
}

@media (max-width: 540px) {
	.admin-sanctions__field-row--account {
		grid-template-columns: 1fr;
	}

	.admin-sanctions__field-row--account .admin-sanctions__btn--primary {
		width: 100%;
		justify-content: center;
	}
}

.admin-sanctions__field-row--account .admin-sanctions__select--grow {
	flex: unset;
	min-width: 0;
	width: 100%;
}

.admin-sanctions__field-row--account .admin-sanctions__input--hours {
	width: 100%;
	max-width: none;
}

.admin-sanctions__field-row--char-card {
	flex-direction: column;
	align-items: stretch;
	gap: 0.45rem;
}

.admin-sanctions__field-row--char-card .admin-sanctions__select--grow {
	flex: none;
	width: 100%;
	min-width: 0;
}

.admin-sanctions__field-row--char-card .admin-sanctions__input--hours {
	flex: none;
	width: 100%;
	max-width: none;
}

.admin-sanctions__field-row--char-card .admin-sanctions__btn {
	width: 100%;
}

.admin-sanctions__select {
	box-sizing: border-box;
	height: var(--sanctions-control-h);
	min-height: var(--sanctions-control-h);
	max-height: var(--sanctions-control-h);
	padding: 0.2rem 0.45rem;
	border-radius: 0.28rem;
	border: 0.0625rem solid var(--sanctions-border-input);
	background: #ffffff;
	font-size: 0.75rem;
	line-height: 1.25;
	color: var(--sanctions-text);
	vertical-align: middle;
	appearance: auto;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-sanctions__select:hover {
	border-color: #a8c4d4;
}

.admin-sanctions__select:focus {
	outline: none;
	border-color: var(--sanctions-accent);
	box-shadow: 0 0 0 0.125rem rgba(30, 140, 128, 0.22);
}

.admin-sanctions__select--grow {
	flex: 1 1 12rem;
	min-width: 10rem;
}

.admin-sanctions__input {
	box-sizing: border-box;
	height: var(--sanctions-control-h);
	min-height: var(--sanctions-control-h);
	max-height: var(--sanctions-control-h);
	padding: 0.2rem 0.45rem;
	border-radius: 0.28rem;
	border: 0.0625rem solid var(--sanctions-border-input);
	font-size: 0.75rem;
	line-height: 1.25;
	color: var(--sanctions-text);
	vertical-align: middle;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-sanctions__input:hover {
	border-color: #a8c4d4;
}

.admin-sanctions__input:focus {
	outline: none;
	border-color: var(--sanctions-accent);
	box-shadow: 0 0 0 0.125rem rgba(30, 140, 128, 0.22);
}

.admin-sanctions__input--hours {
	flex: 0 0 7.5rem;
	width: 7.5rem;
	max-width: 100%;
}

.admin-sanctions__input--block {
	display: block;
	width: 100%;
	max-width: 100%;
}

.admin-sanctions__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--sanctions-control-h);
	height: var(--sanctions-control-h);
	padding: 0 0.85rem;
	border-radius: 0.28rem;
	font-size: 0.72rem;
	font-weight: 700;
	cursor: pointer;
	transition: filter 0.15s ease, border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.admin-sanctions__btn--primary {
	border: 0.0625rem solid var(--sanctions-accent);
	background: linear-gradient(to top, var(--sanctions-accent) 0%, #52cdc0 100%);
	color: #ffffff;
}

.admin-sanctions__btn--primary:hover {
	filter: brightness(1.05);
	color: #ffffff;
}

.admin-sanctions__btn--outline-warn {
	border: 0.0625rem solid rgba(232, 138, 36, 0.55);
	background: #ffffff;
	color: #8f5207;
	font-weight: 700;
}

.admin-sanctions__btn--outline-warn:hover {
	background: rgba(232, 138, 36, 0.1);
	border-color: rgba(232, 138, 36, 0.75);
}

.admin-sanctions__btn--outline {
	border: 0.0625rem solid rgba(70, 95, 115, 0.4);
	background: #ffffff;
	color: #3a5166;
	font-weight: 600;
}

.admin-sanctions__btn--outline:hover {
	background: rgba(70, 95, 115, 0.08);
	border-color: rgba(70, 95, 115, 0.65);
}

.compte-chars-card__offense-clear-form {
	margin-top: 0.25rem;
}

.admin-sanctions__btn--block {
	width: 100%;
}

.admin-sanctions__hint {
	margin: 0.85rem 0 0;
	padding-top: 0.65rem;
	border-top: 0.0625rem dashed var(--sanctions-border-strong);
	font-size: 0.6875rem;
	line-height: 1.5;
	color: #7a8fa3;
}

.admin-sanctions__mono {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: 0.6875rem;
	color: #536b84;
	background: var(--sanctions-surface);
	padding: 0.12rem 0.35rem;
	border-radius: 0.25rem;
	border: 0.0625rem solid var(--sanctions-border);
}

.admin-sanctions__btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 0.125rem rgba(30, 140, 128, 0.35);
}

.admin-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.66rem;
}

.admin-table th,
.admin-table td {
	padding: 0.42rem 0.35rem;
	border-bottom: 0.0625rem solid #d8e2ec;
	text-align: left;
	white-space: nowrap;
}

.admin-table th {
	color: #1e8c80;
	font-weight: 700;
}

.admin-table td {
	color: #2b435a;
}

.woe-page {
	gap: 1rem;
}

.woe-hero {
	padding: 1rem 1.1rem;
	border: 0.0625rem solid #dce4ed;
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #f9fbff 0%, #f4f8fd 100%);
}

.woe-hero__intro,
.woe-hero__closing {
	margin: 0;
	color: #3f4d5d;
	font-size: 0.8125rem;
	line-height: 1.7;
	text-align: center;
}

.woe-hero__quote {
	margin: 0.9rem 0;
	padding: 0.85rem 0.9rem;
	border: 0.0625rem solid #e3e8ef;
	border-radius: 0.45rem;
	background: #ffffff;
}

.woe-hero__speaker {
	margin: 0 0 0.4rem;
	color: #2f4051;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.woe-hero__quote p {
	margin: 0;
	color: #354658;
	font-size: 0.8125rem;
	line-height: 1.65;
	text-align: center;
}

.woe-hero__quote cite {
	display: block;
	margin-top: 0.5rem;
	color: #6a7683;
	font-size: 0.75rem;
	font-style: italic;
	text-align: center;
}

.woe-hero__closing strong {
	color: #2b3e52;
}

.woe-hero__question {
	margin: 0.7rem 0 0;
	color: #25384a;
	font-size: 0.84rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.woe-sections {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

.woe-card {
	padding: 0.85rem 0.95rem;
	border: 0.0625rem solid #d7dfe8;
	border-radius: 0.5rem;
	background: #fcfdff;
}

.woe-card--full {
	grid-column: 1 / -1;
}

.woe-card__title {
	margin: 0 0 0.55rem;
	padding-bottom: 0.45rem;
	border-bottom: 0.125rem solid #2f7dbf;
	color: #23384f;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.3;
}

.woe-card__text {
	margin: 0;
	color: #4b5d70;
	font-size: 0.78rem;
	line-height: 1.65;
}

.woe-card__text + .woe-card__text {
	margin-top: 0.55rem;
}

.woe-card__text--muted {
	margin-top: 0.6rem;
	color: #6f7f8f;
	font-size: 0.72rem;
}

.woe-card__list {
	margin: 0;
	padding-left: 1.05rem;
	color: #4b5d70;
	font-size: 0.78rem;
	line-height: 1.6;
}

.woe-card__list li + li {
	margin-top: 0.35rem;
}

.woe-castle-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 0.65rem;
	margin-top: 0.65rem;
}

.woe-castle-gallery__item {
	margin: 0;
	padding: 0.45rem;
	border: 0.0625rem solid #d8e0ea;
	border-radius: 0.45rem;
	background: #ffffff;
}

.woe-castle-gallery__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0.35rem;
	border: 0.0625rem solid #e7edf5;
	background: #f7f9fc;
}

.woe-castle-gallery__caption {
	margin-top: 0.4rem;
	color: #2f465f;
	font-size: 0.69rem;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
}

.woe-table-wrap {
	overflow-x: auto;
}

.woe-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.78rem;
	color: #31475e;
}

.woe-table th,
.woe-table td {
	padding: 0.48rem 0.52rem;
	border: 0.0625rem solid #d6e0ea;
	text-align: left;
	white-space: nowrap;
}

.woe-table thead th {
	background: #edf5fd;
	color: #1f3852;
	font-weight: 700;
}

.woe-table__empty {
	color: #5a6d7e;
	font-style: italic;
	white-space: normal;
}

.woe-spotlight {
	position: relative;
	min-height: 13rem;
	border-radius: 0.55rem;
	border: 0.0625rem solid rgba(90, 125, 157, 0.35);
	background:
		radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 62%),
		linear-gradient(160deg, rgba(8, 22, 38, 0.92) 0%, rgba(12, 32, 54, 0.88) 58%, rgba(12, 29, 47, 0.9) 100%);
	background-image:
		radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 62%),
		linear-gradient(160deg, rgba(8, 22, 38, 0.92) 0%, rgba(12, 32, 54, 0.88) 58%, rgba(12, 29, 47, 0.9) 100%),
		var(--woe-spotlight-bg, none);
	background-size: auto, auto, cover;
	background-position: center;
	background-repeat: no-repeat;
	box-shadow: inset 0 0 0.8rem rgba(0, 0, 0, 0.32);
	overflow: hidden;
}

.woe-spotlight::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(4, 11, 19, 0.45), rgba(4, 11, 19, 0.05));
}

.woe-spotlight__inner {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	min-height: 13rem;
}

.woe-spotlight__stack {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	text-align: center;
}

.woe-spotlight__emblem {
	width: 96px;
	height: 96px;
	display: block;
	object-fit: contain;
	object-position: center;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	-ms-interpolation-mode: nearest-neighbor;
}

.woe-spotlight__guild-name {
	margin: 0;
	max-width: 14rem;
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.25;
	color: #f3f8ff;
	text-shadow: 0 0.06rem 0.35rem rgba(0, 0, 0, 0.75);
}

.woe-spotlight__no-owner {
	margin: 0;
	max-width: 16rem;
	padding: 0.65rem 0.85rem;
	border-radius: 0.35rem;
	border: 0.0625rem solid rgba(255, 255, 255, 0.28);
	background: rgba(0, 0, 0, 0.28);
	color: #f0f6ff;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	text-shadow: 0 0.06rem 0.35rem rgba(0, 0, 0, 0.75);
}

.woe-spotlight__fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 6rem;
	min-height: 6rem;
	padding: 0.5rem;
	border-radius: 0.35rem;
	border: 0.0625rem solid rgba(255, 255, 255, 0.3);
	background: rgba(0, 0, 0, 0.25);
	color: #f0f6ff;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.market-overview {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}

.market-overview-card {
	padding: 0.65rem 0.7rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.5rem;
	background: linear-gradient(to top, #f7fbfa 0%, #ffffff 100%);
}

.market-overview-card__label {
	margin: 0 0 0.35rem;
	color: #666666;
	font-size: 0.6875rem;
}

.market-overview-card__value {
	margin: 0;
	color: #363636;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
}

.market-overview-card__trend {
	margin: 0.35rem 0 0;
	font-size: 0.6875rem;
	font-weight: 700;
}

.market-overview-card__trend--up {
	color: #239f91;
}

.market-overview-card__trend--down {
	color: #c75c5c;
}

.market-listings {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.market-listing-card {
	padding: 0.65rem 0.7rem;
	border: 0.0625rem solid #e1e1e1;
	border-radius: 0.45rem;
	background-color: #ffffff;
}

.market-listing-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.market-listing-card__title {
	margin: 0;
	color: #3a3a3a;
	font-size: 0.8125rem;
	font-weight: 700;
}

.market-listing-card__price {
	display: inline-flex;
	align-items: center;
	padding: 0.14rem 0.45rem;
	border: 0.0625rem solid #b7ded9;
	border-radius: 999rem;
	background: linear-gradient(to top, #edf9f8 0%, #ffffff 100%);
	color: #209c8f;
	font-size: 0.6875rem;
	font-weight: 700;
	white-space: nowrap;
}

.market-listing-card__meta {
	margin: 0.38rem 0 0;
	color: #7a7a7a;
	font-size: 0.6875rem;
}

.market-listing-card__text {
	margin: 0.3rem 0 0;
	color: #5f5f5f;
	font-size: 0.75rem;
	line-height: 1.45;
}

.market-shop-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}

.market-shop-card {
	padding: 0.65rem 0.7rem;
	border: 0.0625rem solid #e1e1e1;
	border-radius: 0.5rem;
	background-color: #ffffff;
}

.market-shop-card__head {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: 0.55rem;
}

.market-shop-card__portrait {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.05rem;
	height: 2.05rem;
	border: 0.0625rem solid #b7ded9;
	border-radius: 50%;
	background: linear-gradient(to top, #edf9f8 0%, #ffffff 100%);
	color: #239f91;
	font-size: 0.85rem;
	flex: 0 0 auto;
}

.market-shop-card__identity {
	min-width: 0;
}

.market-shop-card__name {
	margin: 0;
	color: #363636;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
}

.market-shop-card__meta {
	margin: 0.18rem 0 0;
	color: #7a7a7a;
	font-size: 0.6875rem;
	line-height: 1.2;
}

.market-shop-card__items {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.market-tooltip-top {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.16rem 0.5rem;
	border: 0.0625rem solid #d4e9e6;
	border-radius: 999rem;
	background: #f9fcfb;
	color: #4f5e5c;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out, background-color 0.2s ease-in-out;
}

.market-tooltip-top::after {
	content: attr(data-price);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.45rem);
	transform: translateX(-50%);
	padding: 0.2rem 0.45rem;
	border-radius: 0.25rem;
	background: #2f3a39;
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 5;
}

.market-tooltip-top::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.22rem);
	transform: translateX(-50%);
	border-left: 0.25rem solid transparent;
	border-right: 0.25rem solid transparent;
	border-top: 0.25rem solid #2f3a39;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 5;
}

.market-tooltip-top:hover,
.market-tooltip-top:focus-visible {
	border-color: #b7ded9;
	background: #ffffff;
	color: #239f91;
	outline: none;
}

.market-tooltip-top:hover::after,
.market-tooltip-top:hover::before,
.market-tooltip-top:focus-visible::after,
.market-tooltip-top:focus-visible::before {
	opacity: 1;
}

.market-shop-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
}

.market-shop-list__item {
	display: grid;
	grid-template-columns: 5.625rem minmax(0, 1fr);
	align-items: center;
	gap: 0.65rem;
	width: min(100%, 34rem);
	padding: 0.6rem;
	border-top: 0.0625rem solid #e1e1e1;
	border-bottom: 0.0625rem solid #e1e1e1;
	border-left: 0;
	border-right: 0;
	border-radius: 0.25rem;
	background: linear-gradient(to top, #fbfbfb 0%, #ffffff 100%);
	min-height: 6.5rem;
}

.market-shop-list__item:last-child {
	border-bottom: 0.0625rem solid #e1e1e1;
}

/* Cadre fixe : sprite zrenderer en taille native (découpe, visage en haut). */
.market-shop-list__portrait-wrap {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex: 0 0 auto;
	width: 5.625rem;
	height: 5.625rem;
	overflow: hidden;
	border: 0.0625rem solid #d0d8dd;
	border-radius: 0.22rem;
	background: #f3f5f7;
	box-sizing: border-box;
}

.market-shop-list__portrait {
	display: block;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	flex-shrink: 0;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.market-shop-list__content {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"name items"
		"owner items";
	column-gap: 0.8rem;
	row-gap: 0.18rem;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
}

.market-shop-list__name {
	grid-area: name;
	margin: 0;
	color: #3a3a3a;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.25;
}

.market-shop-list__owner {
	grid-area: owner;
	margin: 0;
	color: #666666;
	font-size: 0.6875rem;
	line-height: 1.35;
}

.market-shop-items {
	grid-area: items;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 0.28rem;
	margin-top: 0;
	max-width: none;
	width: max-content;
}

.market-shop-items__slot {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.625rem;
	height: 1.625rem;
	padding: 0;
	border: 0.0625rem solid #d5d5d5;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #f5f5f5 0%, #ffffff 100%);
	box-sizing: border-box;
}

.market-shop-items__slot--filled {
	cursor: pointer;
}

.market-shop-items__slot--empty {
	border-color: #e4e4e4;
	background: #fafafa;
}

.market-shop-items__icon {
	width: 1.5rem;
	height: 1.5rem;
	display: block;
	image-rendering: auto;
}

.market-shop-items__slot--filled::after {
	content: attr(data-price);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.35rem);
	transform: translateX(-50%);
	padding: 0.2rem 0.45rem;
	border-radius: 0.25rem;
	background: #2f3a39;
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 5;
}

.market-shop-items__slot--filled::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.12rem);
	transform: translateX(-50%);
	border-left: 0.25rem solid transparent;
	border-right: 0.25rem solid transparent;
	border-top: 0.25rem solid #2f3a39;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 5;
}

.market-shop-items__slot--filled:hover,
.market-shop-items__slot--filled:focus-visible {
	border-color: #b7ded9;
	background: #ffffff;
	outline: none;
}

.market-shop-items__slot--filled:hover::after,
.market-shop-items__slot--filled:hover::before,
.market-shop-items__slot--filled:focus-visible::after,
.market-shop-items__slot--filled:focus-visible::before {
	opacity: 1;
}

.register-card {
	padding: 0.85rem;
}

.register-card > .register-alert--danger {
	margin: 0;
}

.admin-beta-approve {
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
	border: 0.0625rem solid #ecd194;
	background: linear-gradient(180deg, #fff8e8 0%, #fff3d8 100%);
}

/* Page connexion requise (compte / admin déconnecté) */
.login-gate {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	max-width: 72rem;
	margin: 0 auto;
	padding: 2.5rem 1rem 3.5rem;
}

.login-gate__card {
	width: min(100%, 26rem);
	padding: 1.25rem 1.2rem 1.15rem;
	border: 0.0625rem solid #d7e8e4;
	border-radius: 0.5rem;
	background: linear-gradient(180deg, #ffffff 0%, #f8fcfb 100%);
	box-shadow: 0 0.15rem 0.65rem rgba(30, 140, 128, 0.1);
}

.login-gate__alert {
	margin-bottom: 1rem;
}

.login-gate__form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.login-gate__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.login-gate__label {
	color: #3d5a73;
	font-size: 0.8125rem;
	font-weight: 600;
}

.login-gate__input {
	width: 100%;
}

.login-gate__remember {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #4a5c68;
	font-size: 0.8125rem;
	cursor: pointer;
}

.login-gate__checkbox {
	margin: 0;
}

.login-gate__submit {
	width: 100%;
	margin-top: 0.15rem;
	background: linear-gradient(180deg, #52cdc0 0%, #239f91 55%, #1e8c80 100%);
	border: 0.0625rem solid #1e8c80;
}

.login-gate__submit:hover {
	filter: brightness(1.06);
}

.login-gate__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.35rem 0.75rem;
	margin-top: 0.15rem;
	font-size: 0.8125rem;
}

.login-gate__links a {
	color: #20869c;
	text-decoration: none;
}

.login-gate__links a:hover {
	text-decoration: underline;
}

.register-alert {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.75rem;
	border: 0.0625rem solid transparent;
	border-radius: 0.375rem;
	background: #f9fbfa;
	font-size: 0.72rem;
	line-height: 1.4;
	transition: opacity 0.24s ease-in-out, transform 0.24s ease-in-out;
}

.register-alert.is-dismissing {
	opacity: 0;
	transform: translateY(-0.2rem);
}

.register-alert--error {
	border-color: #e8caca;
	background: linear-gradient(180deg, #fff7f7 0%, #fff1f1 100%);
}

.register-alert--success {
	border-color: #bde7de;
	background: linear-gradient(180deg, #f4fbf9 0%, #eef9f6 100%);
}

.register-alert--warning {
	border-color: #ecd194;
	background: linear-gradient(180deg, #fff8e8 0%, #fff3d8 100%);
}

.register-alert--info {
	border-color: #b8d9f4;
	background: linear-gradient(180deg, #f3f9ff 0%, #eaf4ff 100%);
}

.register-alert--danger {
	border-color: #c45a5a;
	background: linear-gradient(180deg, #fff0f0 0%, #fde8e8 100%);
}

.register-alert__title {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 700;
}

.register-alert--error .register-alert__title {
	color: #8b3e3e;
}

.register-alert--success .register-alert__title {
	color: #1b7f73;
}

.register-alert--warning .register-alert__title {
	color: #8b5f1c;
}

.register-alert--info .register-alert__title {
	color: #255f8f;
}

.register-alert--danger .register-alert__title {
	color: #7a1f1f;
}

.register-alert--info .register-alert__text {
	color: #2e5c82;
}

.register-alert--danger .register-alert__text {
	color: #5c2a2a;
}

.register-alert--warning .register-alert__text {
	color: #7a5b22;
}

.register-alert--danger .register-alert__text a {
	color: #8b1a1a;
	font-weight: 700;
	text-decoration: underline;
}

.register-alert--danger .register-alert__text a:hover {
	color: #5c1010;
}

.register-alert__text {
	margin: 0.25rem 0 0;
	color: #4f4f4f;
}

.register-alert__list {
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
}

.register-alert__list-item {
	position: relative;
	padding-left: 0.7rem;
	color: #5a4a4a;
}

.register-alert__list-item + .register-alert__list-item {
	margin-top: 0.18rem;
}

.register-alert__list-item::before {
	content: '';
	position: absolute;
	top: 0.42rem;
	left: 0;
	width: 0.25rem;
	height: 0.25rem;
	border-radius: 50%;
	background: #b15656;
}

.register-form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.register-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.65rem;
}

.register-form__group {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.register-form__label {
	margin: 0;
	color: #666666;
	font-size: 0.6875rem;
	font-weight: 400;
}

.register-form__required {
	color: #c75c5c;
	font-weight: 700;
}

.register-form__input {
	width: 100%;
	height: 2rem;
	padding: 0 0.55rem;
	box-sizing: border-box;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.2rem;
	background-color: #ffffff;
	color: #333333;
	font-size: 0.75rem;
}

.register-form__input:focus {
	outline: none;
	border-color: #209c8f;
}

.register-form__input.is-valid {
	border-color: #209c8f;
}

.register-form__input.is-invalid {
	border-color: #c75c5c;
}

.register-form__checkbox {
	margin-right: 0.35rem;
}

.register-form__feedback {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.2;
}

.register-form__feedback:empty {
	display: none;
}

.register-form__feedback.is-valid {
	color: #209c8f;
}

.register-form__feedback.is-invalid {
	color: #c75c5c;
}

.register-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	min-height: 2rem;
	padding: 0.45rem 0.9rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.25rem;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	cursor: pointer;
	transition: filter 0.2s ease-in-out;
}

.register-form__submit:hover {
	filter: brightness(1.04);
}

.register-form__submit:disabled {
	cursor: not-allowed;
	filter: saturate(0.5);
	opacity: 0.72;
}

a.register-form__submit {
	text-decoration: none;
}

.register-form__submit--danger {
	border-color: #a82a2a;
	background: linear-gradient(to top, #b83232 0%, #d85555 100%);
}

.register-form__submit--danger:hover {
	filter: brightness(1.04);
}

/* Page inscription — refonte visuelle (scopée) */
.home-content-main--register {
	padding-bottom: 0.5rem;
}

.register-page {
	gap: 1rem;
}

.register-page__intro {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding-bottom: 0.15rem;
}

.register-page__eyebrow {
	margin: 0;
	color: #239f91;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.register-page__panel {
	border: 0.0625rem solid #d7e8e4;
	border-radius: 0.75rem;
	background:
		linear-gradient(180deg, rgba(239, 250, 247, 0.85) 0%, rgba(255, 255, 255, 0.96) 7.5rem),
		#ffffff;
	box-shadow: 0 0.2rem 0.75rem rgba(24, 58, 54, 0.06);
	overflow: hidden;
}

.register-page__form {
	gap: 0;
}

.register-page__block {
	padding: 1.05rem 1.1rem 1.15rem;
	border-bottom: 0.0625rem solid #e5efec;
}

.register-page__block-head {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin-bottom: 0.9rem;
}

.register-page__block-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #52cdc0 0%, #239f91 100%);
	color: #ffffff;
	font-size: 0.9rem;
	box-shadow: 0 0.15rem 0.35rem rgba(30, 140, 128, 0.25);
}

.register-page__block-title {
	margin: 0;
	color: #1a1a1a;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.25;
}

.register-page__block-lead {
	margin: 0.2rem 0 0;
	color: #667270;
	font-size: 0.78rem;
	line-height: 1.4;
}

.register-page__grid {
	gap: 0.8rem 0.85rem;
}

.register-page__group .register-form__label {
	color: #4a5a58;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.register-page__group .register-form__input {
	height: 2.45rem;
	padding: 0 0.75rem;
	border-radius: 0.45rem;
	border-color: #d4e2df;
	background: #ffffff;
	color: #1f2a28;
	font-size: 0.875rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.register-page__group .register-form__input::placeholder {
	color: #9aa8a5;
}

.register-page__group .register-form__input:focus {
	border-color: #239f91;
	box-shadow: 0 0 0 0.18rem rgba(35, 159, 145, 0.14);
}

.register-page__hint {
	margin: 0.2rem 0 0;
	color: #7a8a87;
	font-size: 0.7rem;
	line-height: 1.35;
}

.register-page__password {
	position: relative;
}

.register-page__password .register-form__input {
	padding-right: 2.55rem;
}

.register-page__toggle-pass {
	position: absolute;
	top: 50%;
	right: 0.35rem;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	padding: 0;
	border: 0;
	border-radius: 0.35rem;
	background: transparent;
	color: #6b7c79;
	cursor: pointer;
}

.register-page__toggle-pass:hover,
.register-page__toggle-pass:focus-visible {
	color: #239f91;
	background: #eef8f5;
	outline: none;
}

.register-page__footer {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	padding: 1rem 1.1rem 1.15rem;
	background: #f7fbfa;
	border-top: 0.0625rem solid #e5efec;
}

.register-page__terms {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0;
	color: #4f5e5c;
	font-size: 0.8125rem;
	line-height: 1.45;
	cursor: pointer;
}

.register-page__terms .register-form__checkbox {
	margin: 0.2rem 0 0;
	flex: 0 0 auto;
	accent-color: #239f91;
}

.register-page__terms a {
	color: #1e8c80;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.register-page__terms a:hover {
	color: #176f66;
}

.register-page__submit {
	width: 100%;
	min-height: 2.7rem;
	justify-content: center;
	gap: 0.55rem;
	border-radius: 0.55rem;
	font-size: 0.9375rem;
}

.register-page__submit i {
	font-size: 0.85rem;
	transition: transform 0.15s ease;
}

.register-page__submit:not(:disabled):hover i {
	transform: translateX(0.15rem);
}

@media (min-width: 40rem) {
	.register-page__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.register-page__group--full {
		grid-column: 1 / -1;
	}
}

.home-content-sidebar {
	min-height: var(--home-sidebar-height);
	padding-left: var(--content-divider-gap);
	border-left: 0.0625rem solid #d7d7d7;
	border-radius: 0;
}

.sidebar-live-events {
	--live-accent: #2f7d6d;
	--live-accent-soft: rgba(47, 125, 109, 0.14);
	--live-ink: #2a4558;
	--live-muted: #5a7388;
	--live-banner-height: 4.375rem; /* ~70px — un peu plus de place pour les sprites */
	--live-npc-slot: 4.75rem;
	position: relative;
	display: flex;
	align-items: center;
	height: var(--live-banner-height);
	min-height: var(--live-banner-height);
	margin: 0 0 0.75rem;
	padding: 0 0.65rem;
	border: 0.0625rem solid #c5d6e8;
	border-radius: 0.35rem;
	background: linear-gradient(180deg, #ffffff 0%, #f3f8fc 100%);
	box-shadow: inset 0 0.0625rem 0 rgba(255, 255, 255, 0.9);
	overflow: hidden;
}

.sidebar-live-events--live {
	--live-accent: #1f8a5a;
	--live-ink: #1e5c40;
	--live-muted: #3d7a5c;
	border-color: #7bc9a0;
	background: linear-gradient(180deg, #f3fcf7 0%, #dff5e9 100%);
	box-shadow:
		0 0 0.45rem rgba(46, 168, 110, 0.42),
		0 0 0.95rem rgba(46, 168, 110, 0.22),
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.85);
	animation: sidebar-live-events-glow 2.2s ease-in-out infinite;
}

.sidebar-live-events--with-npc {
	padding-right: var(--live-npc-slot);
}

/* MVP Express : card un peu plus haute ; cadrage vertical calculé en JS (bbox sprite) */
.sidebar-live-events--mvp-mob {
	--live-banner-height: 4.75rem; /* ~76px */
	--live-npc-slot: 5.75rem;
}

.sidebar-live-events__text {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.12rem;
	min-width: 0;
	flex: 1 1 auto;
}

.sidebar-live-events__live {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-width: 0;
	color: var(--live-accent);
	font-size: 0.58rem;
	font-weight: 750;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	line-height: 1.15;
}

.sidebar-live-events__live-dot {
	flex: 0 0 auto;
	width: 0.38rem;
	height: 0.38rem;
	border-radius: 50%;
	background: #2f9e7a;
	box-shadow: 0 0 0 0.12rem rgba(47, 158, 122, 0.22);
	animation: sidebar-live-events-pulse 1.7s ease-in-out infinite;
}

.sidebar-live-events__type-label {
	color: var(--live-ink);
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.15;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sidebar-live-events__meta {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	min-width: 0;
}

.sidebar-live-events__time {
	flex: 0 0 auto;
	color: var(--live-muted);
	font-size: 0.68rem;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}

.sidebar-live-events__countdown {
	flex: 0 0 auto;
	color: #168a52;
	font-size: 0.72rem;
	font-weight: 750;
	line-height: 1.15;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}

.sidebar-live-events--live .sidebar-live-events__countdown {
	color: #0f7a48;
}

.sidebar-live-events__npc {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 0;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	height: 100%;
	margin: 0;
	padding: 0;
	overflow: visible;
	background: transparent;
	border: 0;
	line-height: 0;
	pointer-events: none;
	/* PNJ standard (petit) : décalage bas-gauche, taille native */
	transform: translate(-0.85rem, 1.65rem);
}

/* MVP / mobs larges : taille native ; le JS décale pour cadrer la tête */
.sidebar-live-events--mvp-mob .sidebar-live-events__npc {
	right: 0;
	transform: translate(0.5rem, 0);
}

.sidebar-live-events--mvp-mob .sidebar-live-events__npc-sprite {
	filter: drop-shadow(0 0 0.2rem rgba(20, 40, 30, 0.45));
}

.sidebar-live-events__npc-sprite {
	display: block;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	flex-shrink: 0;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.sidebar-live-events--live .sidebar-live-events__live {
	color: #168a52;
}

.sidebar-live-events--live .sidebar-live-events__live-dot {
	background: #22b86a;
	box-shadow: 0 0 0 0.14rem rgba(34, 184, 106, 0.28);
}

.sidebar-live-events--live .sidebar-live-events__time {
	color: #3d7a5c;
}

.sidebar-live-events--next .sidebar-live-events__live {
	color: var(--live-muted);
}

.sidebar-live-events--next .sidebar-live-events__live-dot {
	background: #7a8fa3;
	box-shadow: 0 0 0 0.12rem rgba(122, 143, 163, 0.22);
	animation: none;
}

@keyframes sidebar-live-events-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.45; transform: scale(0.82); }
}

@keyframes sidebar-live-events-glow {
	0%, 100% {
		box-shadow:
			0 0 0.35rem rgba(46, 168, 110, 0.32),
			0 0 0.7rem rgba(46, 168, 110, 0.16),
			inset 0 0.0625rem 0 rgba(255, 255, 255, 0.85);
	}
	50% {
		box-shadow:
			0 0 0.65rem rgba(46, 168, 110, 0.58),
			0 0 1.25rem rgba(46, 168, 110, 0.34),
			inset 0 0.0625rem 0 rgba(255, 255, 255, 0.9);
	}
}

/* Sidebar poll widget */
.sidebar-poll {
	margin: 0.85rem 0 0;
}

.sidebar-poll__question {
	margin: 0 0 0.45rem;
	color: #3a3a3a;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.35;
}

.sidebar-poll__hint,
.sidebar-poll__gate,
.sidebar-poll__total {
	margin: 0 0 0.55rem;
	color: #6a6a6a;
	font-size: 0.6875rem;
	line-height: 1.35;
}

.sidebar-poll__preview-badge {
	display: inline-block;
	margin: 0 0 0.55rem;
	padding: 0.15rem 0.4rem;
	border-radius: 0.2rem;
	background: #fff4d6;
	color: #8a6a12;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.3;
	text-transform: uppercase;
}

.sidebar-poll__gate--ok {
	color: #1e8c80;
	font-weight: 600;
}

.sidebar-poll__alert {
	margin-bottom: 0.55rem;
}

.sidebar-poll__options {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.sidebar-poll__option-label {
	--poll-color: #1e8c80;
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 2.55rem;
	padding: 0.55rem 0.7rem 0.55rem 0.65rem;
	border: 0.0625rem solid color-mix(in srgb, var(--poll-color) 28%, #d0d8d6);
	border-radius: 0.85rem;
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--poll-color) 12%, #ffffff) 0%, #ffffff 48%, #f7faf9 100%);
	box-shadow:
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.92),
		0 0.08rem 0.28rem rgba(36, 64, 58, 0.05);
	cursor: pointer;
	overflow: hidden;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.18s ease,
		background 0.2s ease;
}

.sidebar-poll__option-label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35rem;
	bottom: 0.35rem;
	width: 0.22rem;
	border-radius: 999px;
	background: var(--poll-color);
	opacity: 0.85;
	transition: width 0.2s ease, opacity 0.2s ease;
}

.sidebar-poll__option-label:hover {
	border-color: color-mix(in srgb, var(--poll-color) 55%, #b8c4c1);
	transform: translateY(-0.05rem);
	box-shadow:
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.95),
		0 0.22rem 0.55rem color-mix(in srgb, var(--poll-color) 18%, transparent);
}

.sidebar-poll__option-label:hover::before {
	width: 0.3rem;
	opacity: 1;
}

.sidebar-poll__input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.sidebar-poll__option-check {
	position: relative;
	z-index: 1;
	flex: 0 0 1.15rem;
	width: 1.15rem;
	height: 1.15rem;
	border: 0.1rem solid color-mix(in srgb, var(--poll-color) 45%, #9aa8a4);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: inset 0 0.05rem 0.12rem rgba(0, 0, 0, 0.04);
	transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.sidebar-poll__option-check::after {
	content: "";
	position: absolute;
	inset: 0.22rem;
	border-radius: inherit;
	background: var(--poll-color);
	opacity: 0;
	transform: scale(0.35);
	transition: opacity 0.16s ease, transform 0.18s ease;
}

.sidebar-poll__input[type="checkbox"] + .sidebar-poll__option-check {
	border-radius: 0.28rem;
}

.sidebar-poll__input[type="checkbox"] + .sidebar-poll__option-check::after {
	inset: 0.18rem;
	border-radius: 0.12rem;
	background: transparent;
	border: solid #fff;
	border-width: 0 0.12rem 0.12rem 0;
	opacity: 0;
	transform: rotate(45deg) scale(0.4);
	width: 0.28rem;
	height: 0.5rem;
	left: 0.34rem;
	top: 0.14rem;
	right: auto;
	bottom: auto;
}

.sidebar-poll__option-body {
	position: relative;
	z-index: 1;
	flex: 1 1 auto;
	min-width: 0;
}

.sidebar-poll__option-text {
	display: block;
	color: #2f3f3c;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.01em;
}

.sidebar-poll__input:focus-visible + .sidebar-poll__option-check {
	outline: 0.12rem solid color-mix(in srgb, var(--poll-color) 70%, #fff);
	outline-offset: 0.12rem;
}

.sidebar-poll__input:checked + .sidebar-poll__option-check {
	border-color: var(--poll-color);
	background: color-mix(in srgb, var(--poll-color) 18%, #ffffff);
	box-shadow: 0 0 0 0.14rem color-mix(in srgb, var(--poll-color) 22%, transparent);
	transform: scale(1.04);
}

.sidebar-poll__input:checked + .sidebar-poll__option-check::after {
	opacity: 1;
	transform: scale(1);
}

.sidebar-poll__input[type="checkbox"]:checked + .sidebar-poll__option-check {
	background: var(--poll-color);
	box-shadow: 0 0 0 0.14rem color-mix(in srgb, var(--poll-color) 22%, transparent);
}

.sidebar-poll__input[type="checkbox"]:checked + .sidebar-poll__option-check::after {
	opacity: 1;
	transform: rotate(45deg) scale(1);
	background: transparent;
}

.sidebar-poll__option-label:has(.sidebar-poll__input:checked) {
	border-color: color-mix(in srgb, var(--poll-color) 70%, #9eb0ab);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--poll-color) 22%, #ffffff) 0%, #ffffff 55%, color-mix(in srgb, var(--poll-color) 8%, #f4faf8) 100%);
	box-shadow:
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.95),
		0 0.18rem 0.5rem color-mix(in srgb, var(--poll-color) 24%, transparent);
}

.sidebar-poll__option-label:has(.sidebar-poll__input:checked)::before {
	width: 0.34rem;
	opacity: 1;
	box-shadow: 0 0 0.45rem color-mix(in srgb, var(--poll-color) 45%, transparent);
}

.sidebar-poll__option-label:has(.sidebar-poll__input:checked) .sidebar-poll__option-text {
	color: color-mix(in srgb, var(--poll-color) 35%, #243532);
}

.sidebar-poll__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.35rem;
	margin-bottom: 0.7rem;
	border: 0;
	border-radius: 0.85rem;
	background: linear-gradient(180deg, #2aa899 0%, #1e8c80 55%, #18756b 100%);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	cursor: pointer;
	box-shadow:
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.28),
		0 0.18rem 0.45rem rgba(30, 140, 128, 0.28);
	transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.sidebar-poll__submit:hover {
	filter: brightness(1.04);
	transform: translateY(-0.04rem);
	box-shadow:
		inset 0 0.0625rem 0 rgba(255, 255, 255, 0.32),
		0 0.28rem 0.65rem rgba(30, 140, 128, 0.34);
}

.sidebar-poll__submit:active {
	transform: translateY(0);
}

.sidebar-poll__results {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.sidebar-poll__bar-meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.2rem;
}

.sidebar-poll__bar-label {
	color: #3f3f3f;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.25;
}

.sidebar-poll__bar.is-mine .sidebar-poll__bar-label {
	color: #1e8c80;
}

.sidebar-poll__bar-count {
	color: #707070;
	font-size: 0.625rem;
	white-space: nowrap;
}

.sidebar-poll__bar-track {
	height: 0.55rem;
	border-radius: 999px;
	background: #e8eceb;
	overflow: hidden;
}

.sidebar-poll__bar-fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--poll-color, #1e8c80);
	min-width: 0;
	transition: width 0.35s ease;
}

.admin-poll-preview {
	margin-top: 0.55rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.admin-poll-preview__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(4rem, 2.5fr) auto;
	gap: 0.45rem;
	align-items: center;
}

.admin-poll-preview__label {
	font-size: 0.75rem;
	color: #4a4a4a;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.admin-poll-preview__track {
	height: 0.45rem;
	border-radius: 999px;
	background: #e8eceb;
	overflow: hidden;
}

.admin-poll-preview__fill {
	display: block;
	height: 100%;
	border-radius: 999px;
}

.admin-poll-preview__pct {
	font-size: 0.6875rem;
	color: #707070;
	min-width: 2.2rem;
	text-align: right;
}

.admin-poll-options {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.admin-poll-options__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr)) 5.5rem auto;
	gap: 0.65rem;
	align-items: end;
	padding: 0.75rem;
	border: 0.0625rem solid #dcdcdc;
	border-radius: 0.35rem;
	background: #fafafa;
}

.admin-poll-options__color {
	padding: 0.15rem;
	min-height: 2.4rem;
	cursor: pointer;
}

@media (max-width: 720px) {
	.admin-poll-options__row {
		grid-template-columns: 1fr;
	}
}

.sidebar-title {
	margin: 0;
	color: #363636;
	font-size: 0.9375rem; /* 15px */
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.sidebar-divider {
	width: 100%;
	height: 0.0625rem;
	margin: 0.5rem 0 0.7rem;
	border: 0;
	background-color: #d7d7d7;
}

.sidebar-login-form {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.sidebar-login-form__alert {
	margin: 0 0 0.55rem;
	padding: 0.42rem 0.5rem;
	border-radius: 0.25rem;
	font-size: 0.6875rem;
	line-height: 1.35;
}

.sidebar-login-form__alert--error {
	border: 0.0625rem solid #e7cdcd;
	background: #fff4f4;
	color: #8c3f3f;
}

.sidebar-login-form__alert--success {
	border: 0.0625rem solid #c7e7df;
	background: #f1fbf8;
	color: #1f8073;
}

.sidebar-login-form__state {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.sidebar-login-form__state-text {
	margin: 0;
	color: #555555;
	font-size: 0.75rem;
	line-height: 1.35;
}

.sidebar-login-form__state form {
	margin: 0;
}

.sidebar-login-menu {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.sidebar-login-menu__item {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.55rem;
	padding: 0.35rem 0.55rem;
	border: 0.0625rem solid #c9daee;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #f4f8fe 0%, #ffffff 100%);
	color: #39516d;
	text-decoration: none;
	transition: color 0.18s ease-in-out, border-color 0.18s ease-in-out, background 0.18s ease-in-out;
}

.sidebar-login-menu__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.55rem;
	height: 1.55rem;
	flex: 0 0 1.55rem;
	border-radius: 0.2rem;
	background-color: rgba(53, 114, 184, 0.12);
}

.sidebar-login-menu__icon i {
	font-size: 0.8rem;
	text-align: center;
	color: #3572b8;
}

.sidebar-login-menu__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
}

.sidebar-login-menu__title {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-width: 0;
	color: #334b69;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
}

.sidebar-login-menu__title-text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sidebar-login-menu__badge-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 0.28rem;
	border: 0.0625rem solid #a82a2a;
	border-radius: 999px;
	background: linear-gradient(to top, #b83232 0%, #d85555 100%);
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 0.05rem 0.15rem rgba(168, 42, 42, 0.35);
}

.sidebar-login-menu__meta {
	color: #637992;
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-login-menu__badge-warn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	margin-left: auto;
	width: 1.35rem;
	height: 1.35rem;
	border: 0.0625rem solid #a82a2a;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #b83232 0%, #d85555 100%);
	color: #ffffff;
	font-size: 0.65rem;
	line-height: 1;
	box-shadow: 0 0.05rem 0.15rem rgba(168, 42, 42, 0.35);
}

.sidebar-login-menu__badge-warn i {
	color: #ffffff;
}

.sidebar-login-menu__item:hover .sidebar-login-menu__badge-warn,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__badge-warn,
.sidebar-login-menu__item.is-active .sidebar-login-menu__badge-warn,
.sidebar-login-menu__item:hover .sidebar-login-menu__badge-count,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__badge-count,
.sidebar-login-menu__item.is-active .sidebar-login-menu__badge-count {
	filter: brightness(1.06);
}

.sidebar-login-menu__item:hover,
.sidebar-login-menu__item:focus-visible {
	border-color: #3d81cd;
	background: linear-gradient(to top, #3f86d4 0%, #6bafe9 100%);
	color: #ffffff;
	outline: none;
}

.sidebar-login-menu__item:hover .sidebar-login-menu__icon,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.2);
}

.sidebar-login-menu__item:hover .sidebar-login-menu__icon i,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon i,
.sidebar-login-menu__item:hover .sidebar-login-menu__title,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__title,
.sidebar-login-menu__item:hover .sidebar-login-menu__meta,
.sidebar-login-menu__item:focus-visible .sidebar-login-menu__meta {
	color: #ffffff;
}

.sidebar-login-menu__item.is-active {
	border-color: #3d81cd;
	background: linear-gradient(to top, #3f86d4 0%, #6bafe9 100%);
	color: #ffffff;
}

.sidebar-login-menu__item.is-active .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.2);
}

.sidebar-login-menu__item.is-active .sidebar-login-menu__icon i,
.sidebar-login-menu__item.is-active .sidebar-login-menu__title,
.sidebar-login-menu__item.is-active .sidebar-login-menu__meta {
	color: #ffffff;
}

.sidebar-login-form__state .sidebar-login-menu + .sidebar-login-menu {
	margin-top: 0.45rem;
}

.sidebar-login-menu--admin .sidebar-login-menu__item {
	border-color: #e8c4c8;
	background: linear-gradient(to top, #fdf5f6 0%, #ffffff 100%);
	color: #5c2a32;
}

.sidebar-login-menu--admin .sidebar-login-menu__icon {
	background-color: rgba(160, 42, 55, 0.14);
}

.sidebar-login-menu--admin .sidebar-login-menu__icon i {
	color: #9e2f3d;
}

.sidebar-login-menu--admin .sidebar-login-menu__title {
	color: #5a252d;
}

.sidebar-login-menu--admin .sidebar-login-menu__meta {
	color: #7a4a52;
}

.sidebar-login-menu--admin .sidebar-login-menu__item:hover,
.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible {
	border-color: #a63d4a;
	background: linear-gradient(to top, #7d2f3a 0%, #b85563 100%);
	color: #ffffff;
}

.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__icon,
.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.22);
}

.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__icon i,
.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon i,
.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__title,
.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__title,
.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__meta,
.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__meta {
	color: #ffffff;
}

.sidebar-login-menu--admin .sidebar-login-menu__item.is-active {
	border-color: #a63d4a;
	background: linear-gradient(to top, #7d2f3a 0%, #b85563 100%);
	color: #ffffff;
}

.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.2);
}

.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__icon i,
.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__title,
.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__meta {
	color: #ffffff;
}

.sidebar-admin-dd {
	margin: 0 0 0.45rem;
}

.sidebar-admin-dd__summary {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.55rem;
	padding: 0.35rem 0.55rem;
	border: 0.0625rem solid #e8c4c8;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #fdf5f6 0%, #ffffff 100%);
	color: #5c2a32;
	list-style: none;
	cursor: pointer;
	user-select: none;
	transition: color 0.18s ease-in-out, border-color 0.18s ease-in-out, background 0.18s ease-in-out;
}

.sidebar-admin-dd__summary::-webkit-details-marker {
	display: none;
}

.sidebar-admin-dd__summary::marker {
	content: '';
	font-size: 0;
}

.sidebar-admin-dd__summary .sidebar-login-menu__icon {
	background-color: rgba(160, 42, 55, 0.14);
}

.sidebar-admin-dd__summary .sidebar-login-menu__icon i {
	color: #9e2f3d;
}

.sidebar-admin-dd__summary .sidebar-login-menu__title {
	color: #9e2f3d;
}

.sidebar-admin-dd__summary .sidebar-login-menu__meta {
	color: #7a4a52;
}

.sidebar-admin-dd__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1rem;
	color: #9e2f3d;
	font-size: 0.55rem;
	line-height: 1;
	transition: transform 0.16s ease;
}

.sidebar-admin-dd[open] .sidebar-admin-dd__chevron {
	transform: rotate(180deg);
}

.sidebar-admin-dd__summary:hover,
.sidebar-admin-dd__summary:focus-visible {
	border-color: #a63d4a;
	background: linear-gradient(to top, #7d2f3a 0%, #b85563 100%);
	color: #ffffff;
	outline: none;
}

.sidebar-admin-dd__summary:hover .sidebar-login-menu__icon,
.sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.22);
}

.sidebar-admin-dd__summary:hover .sidebar-login-menu__icon i,
.sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__icon i,
.sidebar-admin-dd__summary:hover .sidebar-login-menu__title,
.sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__title,
.sidebar-admin-dd__summary:hover .sidebar-login-menu__meta,
.sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__meta,
.sidebar-admin-dd__summary:hover .sidebar-admin-dd__chevron,
.sidebar-admin-dd__summary:focus-visible .sidebar-admin-dd__chevron {
	color: #ffffff;
}

.sidebar-admin-dd[open] > .sidebar-admin-dd__summary {
	border-color: #a63d4a;
	background: linear-gradient(to top, #7d2f3a 0%, #b85563 100%);
	color: #ffffff;
}

.sidebar-admin-dd[open] > .sidebar-admin-dd__summary .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.2);
}

.sidebar-admin-dd[open] > .sidebar-admin-dd__summary .sidebar-login-menu__icon i,
.sidebar-admin-dd[open] > .sidebar-admin-dd__summary .sidebar-login-menu__title,
.sidebar-admin-dd[open] > .sidebar-admin-dd__summary .sidebar-login-menu__meta,
.sidebar-admin-dd[open] > .sidebar-admin-dd__summary .sidebar-admin-dd__chevron {
	color: #ffffff;
}

.sidebar-admin-dd__menu {
	margin-top: 0.35rem;
	padding-left: 0.35rem;
	border-left: 0.125rem solid #e8c4c8;
}

/* Dropdown Client (Aether) — tons violets, group_id 99 */
.sidebar-admin-dd--client > .sidebar-admin-dd__summary {
	border-color: #d4c4e8;
	background: linear-gradient(to top, #f7f3fc 0%, #ffffff 100%);
	color: #3d2a5c;
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary .sidebar-login-menu__icon {
	background-color: rgba(108, 58, 168, 0.14);
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary .sidebar-login-menu__icon i,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary .sidebar-login-menu__title,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary .sidebar-admin-dd__chevron {
	color: #6c3aa8;
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary .sidebar-login-menu__meta {
	color: #6a5580;
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary {
	border-color: #7a45b8;
	background: linear-gradient(to top, #5a2d8a 0%, #8b55c4 100%);
	color: #ffffff;
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover .sidebar-login-menu__icon,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__icon,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.22);
}

.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover .sidebar-login-menu__icon i,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__icon i,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover .sidebar-login-menu__title,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__title,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover .sidebar-login-menu__meta,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible .sidebar-login-menu__meta,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:hover .sidebar-admin-dd__chevron,
.sidebar-admin-dd--client > .sidebar-admin-dd__summary:focus-visible .sidebar-admin-dd__chevron,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary .sidebar-login-menu__icon i,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary .sidebar-login-menu__title,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary .sidebar-login-menu__meta,
.sidebar-admin-dd--client[open] > .sidebar-admin-dd__summary .sidebar-admin-dd__chevron {
	color: #ffffff;
}

.sidebar-admin-dd--client > .sidebar-admin-dd__menu {
	border-left-color: #d4c4e8;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item {
	border-color: #d4c4e8;
	background: linear-gradient(to top, #f7f3fc 0%, #ffffff 100%);
	color: #3d2a5c;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__icon {
	background-color: rgba(108, 58, 168, 0.14);
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__icon i {
	color: #6c3aa8;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__title {
	color: #4a2d6e;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__meta {
	color: #6a5580;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:hover,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item.is-active {
	border-color: #7a45b8;
	background: linear-gradient(to top, #5a2d8a 0%, #8b55c4 100%);
	color: #ffffff;
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__icon,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__icon {
	background-color: rgba(255, 255, 255, 0.22);
}

.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__icon i,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__icon i,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__title,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__title,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:hover .sidebar-login-menu__meta,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item:focus-visible .sidebar-login-menu__meta,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__icon i,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__title,
.sidebar-login-menu--client.sidebar-login-menu--admin .sidebar-login-menu__item.is-active .sidebar-login-menu__meta {
	color: #ffffff;
}

.sidebar-login-form__group {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.sidebar-login-form__label {
	margin: 0;
	color: #666666;
	font-size: 0.6875rem;
	font-weight: 400;
}

.sidebar-login-form__input {
	width: 100%;
	height: 2rem;
	padding: 0 0.55rem;
	box-sizing: border-box;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.2rem;
	background-color: #ffffff;
	color: #333333;
	font-size: 0.75rem;
}

.sidebar-login-form__input:focus {
	outline: none;
	border-color: #209c8f;
}

.sidebar-login-form__remember {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	color: #666666;
	font-size: 0.6875rem;
	font-weight: 400;
}

.sidebar-login-form__checkbox {
	margin: 0;
	width: 0.8125rem;
	height: 0.8125rem;
}

.sidebar-login-form__submit {
	height: 2rem;
	padding: 0 0.6rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.25rem;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: filter 0.2s ease-in-out;
}

.sidebar-login-form__submit:hover {
	filter: brightness(1.04);
}

.sidebar-login-form__submit--logout {
	border-color: #b01010;
	background: linear-gradient(to top, #d01818 0%, #ff4545 100%);
}

.sidebar-login-form__submit--logout:hover {
	filter: brightness(1.05);
}

.sidebar-login-form__links {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.sidebar-login-form__links a {
	color: #2b7b95;
	font-size: 0.6875rem;
	font-weight: 400;
	text-decoration: none;
}

.sidebar-login-form__links a:hover {
	text-decoration: underline;
}

.sidebar-widget {
	margin-top: 3.5rem;
}

.sidebar-nav {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.sidebar-nav__link {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.55rem;
	padding: 0.35rem 0.55rem;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #f8f8f8 0%, #ffffff 100%);
	color: #4a4a4a;
	text-decoration: none;
	transition: color 0.18s ease-in-out, border-color 0.18s ease-in-out, background 0.18s ease-in-out;
}

.sidebar-nav__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.55rem;
	height: 1.55rem;
	flex: 0 0 1.55rem;
	border-radius: 0.2rem;
	background-color: rgba(35, 159, 145, 0.1);
}

.sidebar-nav__icon i {
	font-size: 0.8rem;
	text-align: center;
	color: #239f91;
}

.sidebar-nav__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
}

.sidebar-nav__title {
	color: #3f3f3f;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
}

.sidebar-nav__meta {
	color: #707070;
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-nav__badge {
	margin-left: auto;
	padding: 0.1rem 0.28rem;
	border-radius: 0.15rem;
	background: linear-gradient(to top, #f7a900 0%, #fccb1e 100%);
	color: #ffffff;
	font-size: 0.5625rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.sidebar-nav__badge-new {
	margin-left: auto;
	padding: 0.1rem 0.28rem;
	border-radius: 0.15rem;
	background: linear-gradient(to top, #f7a900 0%, #fccb1e 100%);
	color: #ffffff;
	font-size: 0.5625rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.sidebar-nav__badge-building {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	margin-left: auto;
	width: 1.35rem;
	height: 1.35rem;
	border: 0.0625rem solid #c07a1b;
	border-radius: 0.2rem;
	background: linear-gradient(to top, #d18a24 0%, #efac3d 100%);
	color: #ffffff;
	font-size: 0.65rem;
	line-height: 1;
	box-shadow: 0 0.05rem 0.15rem rgba(173, 109, 22, 0.35);
}

.sidebar-nav__badge-building i {
	color: #ffffff;
}

.tooltip-right {
	position: relative;
}

.tooltip-right::after {
	content: attr(data-tooltip);
	position: absolute;
	top: 50%;
	left: calc(100% + 0.45rem);
	transform: translateY(-50%);
	padding: 0.22rem 0.48rem;
	border-radius: 0.25rem;
	background: #2f3a39;
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 6;
}

.tooltip-right::before {
	content: '';
	position: absolute;
	top: 50%;
	left: calc(100% + 0.22rem);
	transform: translateY(-50%);
	border-top: 0.25rem solid transparent;
	border-bottom: 0.25rem solid transparent;
	border-right: 0.25rem solid #2f3a39;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease-in-out;
	z-index: 6;
}

.tooltip-right:hover::after,
.tooltip-right:hover::before,
.tooltip-right:focus-visible::after,
.tooltip-right:focus-visible::before {
	opacity: 1;
}

.sidebar-nav__link:hover .sidebar-nav__badge-building,
.sidebar-nav__link:focus-visible .sidebar-nav__badge-building,
.sidebar-nav__link.is-active .sidebar-nav__badge-building {
	filter: brightness(1.06);
}

.sidebar-nav__link:hover,
.sidebar-nav__link:focus-visible,
.sidebar-nav__link.is-active {
	border-color: #1e8c80;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	outline: none;
}

.sidebar-nav__link:hover .sidebar-nav__icon,
.sidebar-nav__link:focus-visible .sidebar-nav__icon,
.sidebar-nav__link.is-active .sidebar-nav__icon {
	background-color: rgba(255, 255, 255, 0.18);
}

.sidebar-nav__link:hover .sidebar-nav__icon i,
.sidebar-nav__link:focus-visible .sidebar-nav__icon i,
.sidebar-nav__link.is-active .sidebar-nav__icon i,
.sidebar-nav__link:hover .sidebar-nav__title,
.sidebar-nav__link:focus-visible .sidebar-nav__title,
.sidebar-nav__link.is-active .sidebar-nav__title,
.sidebar-nav__link:hover .sidebar-nav__meta,
.sidebar-nav__link:focus-visible .sidebar-nav__meta,
.sidebar-nav__link.is-active .sidebar-nav__meta {
	color: #ffffff;
}

.news-title-bar {
	display: flex;
	align-items: center;
	width: 100%;
	height: 2.0625rem; /* 33px */
	padding: 0 0.75rem;
	box-sizing: border-box;
	background-color: #f5f5f5;
	border: 0.0625rem solid #e7e7e7;
	/* Biseautage interne : liseré blanc en haut et à gauche */
	box-shadow: inset 0.0625rem 0 0 #ffffff, inset 0 0.0625rem 0 #ffffff;
}

.news-title-bar__label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	color: #666666;
	font-size: 0.6875rem; /* 11px */
	font-weight: 400;
	line-height: 1;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.news-title-bar__tail {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin-left: auto;
	flex-shrink: 0;
}

.news-title-bar__admin {
	display: flex;
	align-items: center;
	gap: 0.28rem;
}

.news-title-bar__admin-hide-form {
	display: inline-flex;
	align-items: center;
	align-self: center;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

.news-title-bar__admin-btn {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 1.375rem;
	padding: 0.12rem 0.38rem;
	border-radius: 0.22rem;
	border: 0.0625rem solid rgba(0, 0, 0, 0.12);
	font-family: inherit;
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1.15;
	text-decoration: none;
	cursor: pointer;
	background: #ffffff;
	color: #20869c;
	box-shadow: 0 0.06rem 0.16rem rgba(0, 0, 0, 0.06);
	vertical-align: middle;
}

.news-title-bar__admin-btn--link:hover,
.news-title-bar__admin-btn--link:focus-visible {
	background: rgba(32, 134, 156, 0.08);
	outline: none;
}

.news-title-bar__admin-btn--danger {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	border-color: rgba(180, 60, 60, 0.35);
	color: #a83232;
	background: #fff8f8;
}

.news-title-bar__admin-btn--danger:hover,
.news-title-bar__admin-btn--danger:focus-visible {
	background: #fdeeee;
	outline: none;
}

.news-title-bar__meta {
	margin: 0;
	color: #666666;
	font-size: 0.6875rem; /* 11px */
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
}

.news-title-bar__meta-hr {
	display: none;
}

.news-article {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	padding: 0.9rem 0;
}

.news-article__avatar {
	box-sizing: border-box;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	width: 5rem;
	padding: 0.28rem;
	overflow: hidden;
	background: #343434;
	border: 0.0625rem solid #8d8d8d;
	border-radius: 0.4rem;
}

.news-article__avatar-media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #1c1c20;
	border-radius: 0.22rem;
}

.news-article__avatar-image {
	display: block;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	flex-shrink: 0;
	transform: translateY(0.75rem);
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.news-article__avatar-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #8a8a8a;
	font-size: 1.75rem;
	line-height: 1;
}

.news-article__avatar-foot {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	height: 28px;
	margin-top: 0.28rem;
}

.news-article__avatar-foot-icon {
	display: block;
	width: 24px;
	height: 24px;
	object-fit: none;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.news-article__avatar-foot-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #cfcfcf;
	font-size: 0.75rem;
	line-height: 1;
}

.news-article__body {
	flex: 1 1 auto;
	min-width: 0;
}

.news-article__text {
	margin: 0;
	color: #666666;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.55;
}

.news-article__text img,
.site-event-detail__body img,
.patch-note-card__body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0.75rem 0;
	border-radius: 0.35rem;
}

.news-article__text s,
.news-article__text strike,
.news-article__text del,
.site-event-detail__body s,
.site-event-detail__body strike,
.site-event-detail__body del,
.patch-note-card__body s,
.patch-note-card__body strike,
.patch-note-card__body del {
	text-decoration: line-through;
}

.news-article__hr {
	display: block;
	width: 100%;
	height: 0.0625rem;
	margin: 0;
	border: 0;
	background-color: #d7d7d7;
}

.news-article__hr + .news-title-bar {
	margin-top: 4.6875rem; /* 75px */
}

.news-pagination {
	display: flex;
	justify-content: flex-end;
	padding-top: 1.25rem;
}

.news-pagination__list {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.news-pagination__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.8rem;
	height: 1.8rem;
	padding: 0 0.4rem;
	border: 0.0625rem solid #1e8c80;
	border-radius: 0.25rem;
	background: linear-gradient(to top, #239f91 0%, #52cdc0 100%);
	color: #ffffff;
	font-size: 0.75rem;
	text-decoration: none;
}

.news-pagination__link.is-active {
	background: linear-gradient(to top, #f7a900 0%, #fccb1e 100%);
	border-color: #ffb400;
	color: #ffffff;
	font-weight: 600;
}

.news-title-bar__vrule {
	flex: 0 0 auto;
	width: 0.0625rem;
	height: 1rem;
	margin: 0 0.375rem; /* 6px left/right */
	border: 0;
	background-color: #bfbfbf;
}

.news-category-pills {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.news-category-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.1rem 0.3rem;
	border-radius: 0.125rem; /* 2px */
	font-family: "Orbitron", "Segoe UI", system-ui, sans-serif;
	font-size: 0.6875rem; /* 11px */
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #ffffff;
	white-space: nowrap;
}

.news-category-pill__abbr {
	display: none;
}

.news-category-pill--news {
	background-color: #3498db;
}

.news-category-pill--event {
	background-color: #8e44ad;
}

.news-category-pill--patch {
	background-color: #16a085;
}

.news-category-pill--staff {
	background-color: #d28712;
}

.news-category-pill--urgent {
	background-color: #c0392b;
}

@media (max-width: 64rem) {
	.hero-section {
		height: 28rem;
		min-height: 28rem;
	}

	.hero-visual {
		--topbar-height: 4.85rem;
		--visual-group-shift-x: 0%;
	}

	.hero-visual__image--shifu {
		top: calc(var(--topbar-height) - 1.9rem);
		transform: translateX(-70%) scale(0.56);
	}

	.hero-visual__fanart-slot--curi {
		top: calc(var(--topbar-height) - 4.85rem);
	}

	.hero-visual__image--samayo {
		top: auto;
		bottom: clamp(0.85rem, 4vh, 2.35rem);
		left: 46%;
		transform: translateX(-84%) translateY(6rem);
	}

	.site-topbar {
		height: auto;
		min-height: 2.375rem;
		flex-wrap: wrap;
		gap: 0;
		padding: 0.22rem 0 0;
	}

	.site-topbar__spacer {
		display: none;
	}

	.site-topbar__cluster {
		order: 1;
		flex: 1 1 100%;
		justify-content: center;
		margin-inline-end: 0;
		gap: 0;
		padding: 0 0.45rem;
	}

	.site-topbar__panel {
		display: none;
	}

	.site-topbar__nav-pill {
		align-self: center;
	}

	.site-topbar__rail {
		order: 2;
		flex: 1 1 100%;
		width: 100%;
		min-height: 1.95rem;
		justify-content: center;
		padding: 0 0.5rem;
		border-radius: 0;
	}

	.site-topbar__nav-list {
		gap: 0.35rem 0.75rem;
	}

	.site-topbar__nav-pill .site-topbar__nav-link {
		font-size: 0.75rem;
	}

	.site-topbar__servers {
		justify-content: center;
		gap: 0.3rem 0.5rem;
	}

	.site-topbar__servers-label,
	.site-topbar__players-line,
	.site-topbar__nav-pill .site-topbar__nav-link {
		font-size: 0.75rem;
	}

	.hero-bottom-bar {
		height: 2.85rem;
	}

	.hero-bottom-bar__content {
		width: min(78%, 34rem);
	}

	.hero-bottom-bar__ticker {
		min-height: 1.85rem;
	}

	.hero-bottom-bar__ticker-text {
		font-size: 0.8125rem;
	}

	.home-content-container {
		--home-main-height: 16rem;
		--home-sidebar-height: 16rem;
		--home-sidebar-width: 14rem;
	}

	.news-title-bar {
		--news-meta-gap: 0.2rem;
		--news-meta-line-height: 0.625rem;
		position: relative;
		height: auto;
		min-height: 2.0625rem;
		padding-top: 0.25rem;
		padding-bottom: 0.25rem;
		margin-bottom: 1.2rem;
	}

	.news-category-pill__full {
		display: none;
	}

	.news-category-pill__abbr {
		display: inline;
	}

	.news-category-pill {
		font-size: 0.625rem; /* 10px */
	}

	.news-title-bar__label {
		font-size: 0.625rem;
	}

	.news-title-bar__tail {
		position: absolute;
		top: calc(100% + var(--news-meta-gap));
		right: 0.75rem;
		margin: 0;
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: 0.28rem 0.45rem;
		max-width: calc(100% - 1.5rem);
	}

	.news-title-bar__admin-btn {
		font-size: 0.5625rem;
		padding: 0.1rem 0.3rem;
	}

	.news-title-bar__meta {
		margin: 0;
		font-size: 0.625rem;
		line-height: var(--news-meta-line-height);
	}

	.news-title-bar__meta-hr {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(
			100% + var(--news-meta-gap) + var(--news-meta-line-height) + var(--news-meta-gap)
		);
		display: block;
		height: 0.0625rem;
		margin: 0;
		border: 0;
		background-color: #d7d7d7;
	}

	.news-article {
		padding-top: 1.5rem;
	}

	.news-article__avatar {
		display: none;
	}

	.info-page-section__title {
		font-size: 1.0625rem;
	}

	.info-page-section__text {
		font-size: 0.8125rem;
	}

	.info-specs__subtitle {
		font-size: 0.75rem;
	}

	.info-specs__label,
	.info-specs__value,
	.info-features__item,
	.info-command-badges__item {
		font-size: 0.6875rem;
	}

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

	.admin-dashboard__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.admin-dashboard__row,
	.admin-dashboard__row--bottom {
		grid-template-columns: 1fr;
	}

	.admin-donut {
		width: 6.6rem;
		height: 6.6rem;
	}

	.admin-donut__center {
		inset: 1.15rem;
		font-size: 0.92rem;
	}

	.woe-sections {
		grid-template-columns: 1fr;
	}

	.woe-hero {
		padding: 0.85rem 0.8rem;
	}

	.woe-card__title {
		font-size: 0.8125rem;
	}

	.woe-card__text,
	.woe-card__list {
		font-size: 0.72rem;
	}

	.market-overview {
		grid-template-columns: 1fr;
	}

	.market-shop-grid {
		grid-template-columns: 1fr;
	}

	.compte-chars-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.compte-chars-card__panel {
		grid-template-columns: minmax(0, 1fr) 6.25rem;
		grid-template-areas:
			"left portrait"
			"right portrait";
		align-items: start;
	}

	.compte-chars-card__slots {
		gap: 0.18rem;
	}

	.compte-chars-card__slots--right {
		grid-column: 1;
	}

	.compte-chars-card__portrait-wrap {
		grid-area: portrait;
	}

	.register-form__grid {
		grid-template-columns: 1fr;
	}

	.patch-note-card__title {
		font-size: 0.8125rem;
	}

	.patch-note-card__items {
		font-size: 0.6875rem;
	}

	.patch-note-card__body {
		font-size: 0.75rem;
	}

	.policy-page__title {
		font-size: 1.0625rem;
	}

	.policy-page__text,
	.policy-page__item {
		font-size: 0.75rem;
	}
}

@media (max-width: 48rem) {
	.hero-section {
		height: 24rem;
		min-height: 24rem;
	}

	.hero-visual {
		--topbar-height: 5rem;
		--visual-group-shift-x: 0%;
	}

	.hero-visual__image--shifu {
		top: calc(var(--topbar-height) - 2.1rem);
		transform: translateX(calc(-60% + var(--visual-group-shift-x))) scale(0.48);
	}

	.hero-visual__fanart-slot--curi {
		top: calc(var(--topbar-height) - 5.1rem);
	}

	.hero-visual__image--samayo {
		top: auto;
		bottom: clamp(0.65rem, 3.5vh, 2rem);
		left: 45%;
		transform: translateX(calc(-76% + var(--visual-group-shift-x))) translateY(6rem);
	}

	.site-topbar {
		gap: 0;
		padding: 0.22rem 0 0;
	}

	.site-topbar__cluster {
		min-height: 2.05rem;
		align-items: center;
		padding: 0 0.35rem;
	}

	.site-topbar__nav-pill {
		align-self: stretch;
		display: flex;
		align-items: center;
	}

	.site-topbar__nav-list {
		gap: 0.28rem 0.58rem;
	}

	.site-topbar__shard {
		width: 1.25rem;
		min-width: 1.25rem;
		max-width: 1.25rem;
		height: 1.25rem;
		min-height: 1.25rem;
		max-height: 1.25rem;
	}

	.site-topbar__shard-dot {
		width: 0.4375rem;
		min-width: 0.4375rem;
		max-width: 0.4375rem;
		height: 0.4375rem;
		min-height: 0.4375rem;
		max-height: 0.4375rem;
	}

	.site-topbar__servers-label,
	.site-topbar__players-line,
	.site-topbar__nav-pill .site-topbar__nav-link,
	.site-topbar__page-label {
		font-size: 0.6875rem;
	}

	.site-topbar__servers {
		min-height: 100%;
		align-items: center;
	}

	.hero-bottom-bar {
		height: 3.35rem;
		min-height: 3.1rem;
	}

	.hero-bottom-bar__content {
		width: min(96%, 32rem);
		gap: 0.55rem;
	}

	.hero-bottom-bar__item-icon {
		width: 1.65rem;
		height: 1.65rem;
	}

	.hero-bottom-bar__ticker {
		height: 90%;
		min-height: 2.35rem;
		border-radius: 0.3rem;
	}

	.hero-bottom-bar__ticker-text {
		font-size: 0.875rem;
		animation-duration: 22s;
	}

	.news-category-pill {
		font-size: 0.5625rem; /* 9px */
		padding: 0.08rem 0.26rem;
	}

	.news-title-bar__label {
		font-size: 0.5625rem;
	}

	.news-title-bar__tail {
		right: 0.5rem;
	}

	.news-title-bar__meta {
		font-size: 0.5625rem;
		line-height: var(--news-meta-line-height);
	}

	.news-title-bar__meta-hr {
		left: 0;
		right: 0;
	}

	.news-article {
		gap: 0.65rem;
		padding-top: 1.4rem;
	}

	.news-article__text {
		font-size: 0.75rem;
		line-height: 1.45;
	}

	.info-page-section__title {
		font-size: 0.9375rem;
	}

	.info-page-section__text {
		font-size: 0.75rem;
		line-height: 1.5;
	}

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

	.info-specs__value {
		text-align: left;
	}

	.info-specs__label,
	.info-specs__value,
	.info-features__item,
	.info-command-badges__item,
	.market-overview-card__label,
	.market-overview-card__trend,
	.market-listing-card__price,
	.market-listing-card__meta,
	.market-shop-card__meta,
	.market-tooltip-top {
		font-size: 0.6875rem;
	}

	.market-overview-card__value {
		font-size: 0.8125rem;
	}

	.market-listing-card__title {
		font-size: 0.75rem;
	}

	.market-listing-card__text {
		font-size: 0.6875rem;
	}

	.market-shop-card__name {
		font-size: 0.75rem;
	}

	.market-shop-list__item {
		grid-template-columns: 1fr;
		width: 100%;
	}

	.market-shop-list__portrait-wrap {
		margin-inline: auto;
	}

	.market-shop-list__content {
		grid-template-columns: 1fr;
		grid-template-areas:
			"name"
			"owner"
			"items";
	}

	.market-shop-items {
		width: 100%;
		max-width: 10.5rem;
	}

	.policy-page {
		padding-top: 2.25rem;
	}

	.policy-page__title {
		font-size: 0.9375rem;
	}

	.policy-page__text,
	.policy-page__item {
		font-size: 0.6875rem;
	}

	.patch-note-card__head {
		flex-direction: column;
		align-items: flex-start;
	}

	.patch-note-card__title {
		font-size: 0.75rem;
	}

	.patch-note-card__items {
		font-size: 0.6875rem;
	}

	.patch-note-card__body {
		font-size: 0.6875rem;
	}

	.home-content-container {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}

	.home-content-main {
		padding-right: 0;
	}

	.home-content-sidebar {
		padding-left: 0;
		border-left: 0;
	}
}

@media (min-width: 48.0625rem) and (max-width: 64rem) {
	.compte-chars-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.market-shop-list {
		gap: 0.5rem;
	}

	.market-shop-list__item {
		width: min(100%, 30rem);
		padding: 0.5rem;
		min-height: 5.75rem;
	}

	.market-shop-list__portrait-wrap {
		width: 4.875rem;
		height: 4.875rem;
	}

	.market-shop-items {
		gap: 0.22rem;
	}

	.market-shop-items__slot {
		width: 1.5rem;
		height: 1.5rem;
	}
}

@media (max-width: 48rem) {
	.compte-chars-grid {
		grid-template-columns: 1fr;
		gap: 0.65rem;
	}

	.compte-chars-card__window-top {
		padding: 0.24rem 0.35rem;
		flex-direction: row;
		align-items: center;
		gap: 0.35rem;
	}

	.compte-chars-card__header-text {
		display: flex;
		flex-direction: column;
		gap: 0.08rem;
		justify-content: flex-start;
		align-items: flex-start;
		flex: 1 1 auto;
		min-width: 0;
	}

	.compte-chars-card__header-right {
		display: inline-flex;
		align-items: center;
		gap: 0.24rem;
		flex: 0 0 auto;
		max-width: 48%;
	}

	.compte-chars-card__header-guild {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 0.04rem;
		min-width: 0;
	}

	.compte-chars-card__header-guild-name {
		color: #2f4a62;
		font-size: 0.56rem;
		font-weight: 700;
		line-height: 1.15;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 8rem;
	}

	.compte-chars-card__header-guild-position {
		color: #49657e;
		font-size: 0.52rem;
		font-weight: 600;
		line-height: 1.1;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 8rem;
	}

	.compte-chars-card__header-emblem {
		display: block;
		width: 1.4rem;
		height: 1.4rem;
		flex: 0 0 auto;
		object-fit: contain;
		image-rendering: pixelated;
		filter: drop-shadow(0 0.04rem 0.06rem rgba(0, 0, 0, 0.3));
	}

	.compte-chars-card__window-title {
		font-size: 0.6875rem;
	}

	.compte-chars-card__window-meta {
		display: block;
		width: 100%;
		margin-left: 0;
		text-align: left;
		font-size: 0.5625rem;
		line-height: 1.2;
	}

	.compte-chars-card__window-meta span {
		max-width: none;
		white-space: normal;
		overflow: visible;
		text-overflow: clip;
	}

	.compte-guild-window__body {
		grid-template-columns: 1fr;
		gap: 0.4rem;
	}

	.compte-chars-card__panel {
		grid-template-columns: minmax(0, 1fr) 5rem minmax(0, 1fr);
		gap: 0.24rem;
		padding: 0.28rem;
	}

	.compte-chars-card__panel,
	.compte-chars-card__portrait-col {
		display: none;
	}

	.compte-chars-card__mobile-equip {
		--compte-mobile-slot-size: 2.5rem;
		--compte-mobile-slot-gap: 0.2rem;
		display: grid;
		grid-template-columns: 5.1rem minmax(0, 1fr);
		gap: 0.4rem;
		align-items: center;
		padding: 0.34rem;
		background: #edf2f7;
	}

	.compte-chars-card__mobile-portrait-wrap {
		position: relative;
		width: 5.1rem;
		height: 7.8125rem;
		overflow: hidden;
		display: flex;
		align-items: flex-end;
		justify-content: center;
		background: transparent;
		align-self: center;
	}

	.compte-chars-card__mobile-portrait {
		display: block;
		width: auto;
		height: auto;
		max-width: 100%;
		max-height: 100%;
		object-fit: contain;
		object-position: bottom center;
		image-rendering: pixelated;
		image-rendering: crisp-edges;
		filter: drop-shadow(0 0.04rem 0.06rem rgba(0, 0, 0, 0.3));
	}

	.compte-chars-card__mobile-portrait-wrap--mounted {
		height: 9.65rem;
	}

	.compte-chars-card__mobile-portrait--mounted {
		max-height: 100%;
	}

	.compte-chars-card__mobile-slots {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: var(--compte-mobile-slot-gap);
		align-content: start;
		justify-content: stretch;
		align-self: center;
		width: 100%;
	}

	.compte-chars-card__mobile-slot {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		aspect-ratio: 1 / 1;
		border: 0.0625rem solid #c9d4dd;
		border-radius: 0.15rem;
		background: #ffffff;
	}

	.compte-chars-card__mobile-slot-icon {
		display: block;
		width: 1.25rem;
		height: 1.25rem;
		object-fit: contain;
		image-rendering: pixelated;
	}

	.compte-chars-card__mobile-slot-empty {
		color: #98a7b4;
		font-size: 0.75rem;
		font-weight: 700;
		line-height: 1;
	}

	.compte-chars-card__slots {
		gap: 0.16rem;
	}

	.compte-chars-card__slot {
		min-height: 2.2rem;
		padding: 0.16rem 0.18rem;
	}

	.compte-chars-card__slot-label {
		margin-bottom: 0.04rem;
		font-size: 0.5625rem;
	}

	.compte-chars-card__slot strong {
		font-size: 0.625rem;
		line-height: 1.15;
	}

	.compte-chars-card__slot-value {
		gap: 0.2rem;
	}

	.compte-chars-card__slot-cards {
		gap: 0.04rem;
	}

	.compte-chars-card__slot-card-icon,
	.compte-chars-card__item-icon {
		width: 1.25rem !important;
		height: 1.25rem !important;
		min-width: 1.25rem !important;
		min-height: 1.25rem !important;
		max-width: 1.25rem !important;
		max-height: 1.25rem !important;
		flex: 0 0 1.25rem !important;
	}

	.compte-chars-card__portrait-wrap {
		width: 5rem;
		height: 5.6rem;
		border-width: 0.1rem;
		align-items: center;
		padding-top: 0.72rem;
	}

	.compte-chars-card__portrait-emblem {
		width: 1.25rem;
		height: 1.25rem;
		top: -0.06rem;
	}

	.compte-chars-card__portrait-wrap--mounted {
		height: 5.6rem;
	}


	.compte-chars-card__portrait {
		transform: none;
	}

	.compte-chars-card__portrait--mounted {
		transform: none;
	}


	.compte-chars-card__guild-name {
		display: none;
	}

	.compte-chars-card__guild-position {
		display: none;
	}

	.compte-chars-card__stats {
		gap: 0.14rem;
		padding: 0.24rem 0.28rem 0.3rem;
	}

	.compte-chars-card__stat {
		padding: 0.1rem 0.16rem;
		font-size: 0.5625rem;
	}

	.compte-chars-card__stat strong {
		font-size: 0.625rem;
	}

	.market-shop-list {
		gap: 0.45rem;
	}

	.market-shop-list__item {
		padding: 0.45rem;
		min-height: auto;
	}

	.market-shop-list__portrait-wrap {
		width: 4.875rem;
		height: 4.875rem;
	}

	.market-shop-list__content {
		row-gap: 0.12rem;
	}

	.market-shop-items {
		gap: 0.2rem;
		max-width: 9.9rem;
	}

	.market-shop-items__slot {
		width: 1.5rem;
		height: 1.5rem;
	}

	.market-shop-items__icon {
		width: 1.375rem;
		height: 1.375rem;
	}
}

@media (max-width: 30rem) {
	.compte-chars-card__panel {
		grid-template-columns: 1fr;
		grid-template-areas: none;
	}

	.compte-chars-card__portrait-wrap {
		margin-inline: auto;
	}

	.compte-chars-card__slots--right {
		grid-column: auto;
	}

	.market-shop-list__item {
		gap: 0.5rem;
	}

	.market-shop-list__portrait-wrap {
		width: 4.125rem;
		height: 4.125rem;
	}

	.market-shop-items {
		max-width: 9rem;
	}

	.market-shop-items__slot {
		width: 1.375rem;
		height: 1.375rem;
	}

	.market-shop-items__icon {
		width: 1.25rem;
		height: 1.25rem;
	}
}


/* --- Admin Aether (patches / launcher) — teal dashboard --- */
.admin-aether {
	--aether-accent: #1e8c80;
	--aether-accent-mid: #239f91;
	--aether-accent-soft: #52cdc0;
	--aether-accent-wash: #e8f7f5;
	--aether-border: #cfe4e0;
	--aether-shadow: rgba(30, 140, 128, 0.14);
}
.admin-aether__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 1rem;
	margin: 0.15rem 0 0.35rem;
}
.admin-aether__meta-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.28rem 0.62rem;
	border: 0.0625rem solid var(--aether-border);
	border-radius: 999px;
	background: linear-gradient(180deg, #fff 0%, var(--aether-accent-wash) 100%);
	color: #145a52;
	font-size: 0.72rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 0.08rem 0.2rem var(--aether-shadow);
}
.admin-aether__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--aether-accent);
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
}
.admin-aether__link:hover {
	color: #145a52;
	text-decoration: underline;
}
.admin-aether__alerts:empty {
	display: none;
}
.admin-aether__alerts:not(:empty) {
	margin-bottom: 0.5rem;
}
.admin-aether__composer {
	margin: 0.35rem 0 1rem;
	padding: 1rem 1.05rem;
	border: 0.0625rem solid var(--aether-border);
	border-radius: 0.55rem;
	background: linear-gradient(180deg, #ffffff 0%, #f4faf8 100%);
	box-shadow: inset 0.22rem 0 0 var(--aether-accent-soft), 0 0.15rem 0.45rem var(--aether-shadow);
}
.admin-aether__composer-form {
	display: grid;
	grid-template-columns: minmax(12rem, 1.4fr) minmax(9rem, 1fr) auto;
	gap: 0.75rem;
	align-items: end;
}
.admin-aether__pick {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 3.1rem;
	padding: 0.55rem 0.85rem;
	border: 0.125rem dashed #9fd9d1;
	border-radius: 0.45rem;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.admin-aether__pick:hover,
.admin-aether__pick:focus-within,
.admin-aether__pick.is-filled {
	border-color: var(--aether-accent-mid);
	background: var(--aether-accent-wash);
	box-shadow: 0 0 0 0.12rem rgba(30, 140, 128, 0.12);
}
.admin-aether__pick-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 0.35rem;
	background: linear-gradient(180deg, var(--aether-accent-soft) 0%, var(--aether-accent) 100%);
	color: #fff;
	font-size: 0.9rem;
	flex-shrink: 0;
	box-shadow: 0 0.12rem 0.3rem var(--aether-shadow);
}
.admin-aether__pick-copy {
	display: grid;
	gap: 0.12rem;
	min-width: 0;
}
.admin-aether__pick-copy strong {
	color: #1f3d38;
	font-size: 0.82rem;
	font-weight: 700;
}
.admin-aether__pick-copy small {
	color: #5a7a74;
	font-size: 0.68rem;
	font-family: ui-monospace, Consolas, monospace;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.admin-aether__pick-copy small.is-filled {
	color: #145a52;
	font-weight: 700;
}
.admin-aether__file-input {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
}
.admin-aether__field--inline {
	display: grid;
	gap: 0.32rem;
	color: #3f5f59;
	font-size: 0.72rem;
	font-weight: 700;
}
.admin-aether__field--inline input {
	width: 100%;
	padding: 0.58rem 0.68rem;
	border: 0.0625rem solid var(--aether-border);
	border-radius: 0.35rem;
	background: #fff;
	color: #234640;
	font-size: 0.8125rem;
}
.admin-aether__field--inline input:focus {
	outline: none;
	border-color: var(--aether-accent-mid);
	box-shadow: 0 0 0 0.12rem rgba(30, 140, 128, 0.18);
}
.admin-aether__primary-btn,
.admin-aether__action-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	border: 0.0625rem solid transparent;
	border-radius: 0.35rem;
	cursor: pointer;
	font-weight: 700;
}
.admin-aether__primary-btn {
	padding: 0.62rem 1.1rem;
	background: linear-gradient(180deg, var(--aether-accent-soft) 0%, var(--aether-accent-mid) 55%, var(--aether-accent) 100%);
	border-color: var(--aether-accent);
	color: #fff;
	font-size: 0.78rem;
	white-space: nowrap;
	box-shadow: 0 0.12rem 0.35rem var(--aether-shadow);
}
.admin-aether__primary-btn:hover {
	background: linear-gradient(180deg, #5fd4c7 0%, var(--aether-accent) 100%);
}
.admin-aether__primary-btn:disabled {
	opacity: 0.65;
	cursor: wait;
}
.admin-aether__composer-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.6rem;
	margin-top: 0.75rem;
	padding-top: 0.72rem;
	border-top: 0.0625rem solid var(--aether-border);
}
.admin-aether__composer-hint {
	color: #5a7a74;
	font-size: 0.7rem;
	line-height: 1.45;
}
.admin-aether__chip {
	display: inline-flex;
	align-items: center;
	padding: 0.18rem 0.48rem;
	border-radius: 999px;
	border: 0.0625rem solid var(--aether-border);
	background: #fff;
	color: #145a52;
	font-size: 0.62rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}
.admin-aether__chip--gpf,
.admin-aether__chip--rgz,
.admin-aether__chip--thor {
	background: var(--aether-accent-wash);
	border-color: #9fd9d1;
	color: #145a52;
}
.admin-aether__board {
	border: 0.0625rem solid var(--aether-border);
	border-radius: 0.55rem;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 0.12rem 0.35rem var(--aether-shadow);
}
.admin-aether__board-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.72rem 1rem;
	border-bottom: 0.0625rem solid var(--aether-border);
	background: linear-gradient(180deg, #fff 0%, var(--aether-accent-wash) 100%);
}
.admin-aether__board-head h3 {
	margin: 0;
	color: #145a52;
	font-size: 0.82rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.admin-aether__rows {
	list-style: none;
	margin: 0;
	padding: 0;
}
.admin-aether__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem;
	padding: 0.78rem 1rem;
	border-bottom: 0.0625rem solid #e6f2f0;
}
.admin-aether__row:last-child { border-bottom: 0; }
.admin-aether__row.is-live {
	background: linear-gradient(90deg, rgba(232, 247, 245, 0.55) 0%, transparent 100%);
}
.admin-aether__row.is-staging {
	background: transparent;
}
.admin-aether__row:hover { background: #f7fcfb; }
.admin-aether__row-main {
	display: flex;
	align-items: flex-start;
	gap: 0.72rem;
	min-width: 0;
	flex: 1;
}
.admin-aether__id {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	padding: 0.22rem 0.42rem;
	border-radius: 0.3rem;
	border: 0.0625rem solid var(--aether-border);
	background: var(--aether-accent-wash);
	color: #145a52;
	font-size: 0.7rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.admin-aether__row-copy { min-width: 0; }
.admin-aether__file {
	margin: 0;
	color: #1f3d38;
	font-size: 0.8125rem;
	font-weight: 700;
	font-family: ui-monospace, Consolas, monospace;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.admin-aether__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.55rem;
	margin: 0.28rem 0 0;
	color: #5a7a74;
	font-size: 0.7rem;
}
.admin-aether__meta code {
	font-family: ui-monospace, Consolas, monospace;
	color: #145a52;
	background: var(--aether-accent-wash);
	padding: 0.08rem 0.28rem;
	border-radius: 0.2rem;
}
.admin-aether__row-side {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex-shrink: 0;
}
.admin-aether__status {
	display: inline-block;
	padding: 0.18rem 0.5rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.65rem;
	line-height: 1.3;
	border: 0.0625rem solid transparent;
}
.admin-aether__status--on {
	background-color: var(--aether-accent-wash);
	color: #145a52;
	border-color: #9fd9d1;
}
.admin-aether__status--off {
	background-color: #f5f5f5;
	color: #666;
	border-color: #ddd;
}
.admin-aether__action-btn {
	padding: 0.35rem 0.62rem;
	font-size: 0.68rem;
	background: #fff;
	border-color: var(--aether-border);
	color: #234640;
}
.admin-aether__action-btn:hover {
	background: var(--aether-accent-wash);
	border-color: var(--aether-accent-mid);
}
.admin-aether__action-btn--ok {
	border-color: #9fd9d1;
	color: #145a52;
	background: var(--aether-accent-wash);
}
.admin-aether__action-btn--warn {
	border-color: #ddd;
	color: #555;
	background: #fafafa;
}
.admin-aether__action-btn--danger {
	border-color: #e2b6b6;
	color: #8f1f1f;
	background: #fdf5f5;
}
.admin-aether__empty {
	display: grid;
	justify-items: center;
	gap: 0.4rem;
	padding: 2rem 1rem;
	color: #5a7a74;
	font-size: 0.8125rem;
	text-align: center;
}
.admin-aether__empty-icon {
	font-size: 1.35rem;
	color: var(--aether-accent-soft);
}
.admin-aether__footnote {
	margin: 0;
	padding: 0.62rem 1rem 0.78rem;
	border-top: 0.0625rem solid var(--aether-border);
	color: #5a7a74;
	font-size: 0.7rem;
	line-height: 1.45;
	background: var(--aether-accent-wash);
}
.admin-aether__progress {
	margin-top: 0.75rem;
}
.admin-aether__progress[hidden] { display: none !important; }
.admin-aether__progress-track {
	height: 0.4rem;
	border-radius: 999px;
	background: #e6f2f0;
	overflow: hidden;
	border: 0.0625rem solid var(--aether-border);
}
.admin-aether__progress-fill {
	display: block;
	height: 100%;
	width: 0;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--aether-accent-soft) 0%, var(--aether-accent) 100%);
	transition: width 0.12s linear;
}
.admin-aether__progress-label {
	margin: 0.38rem 0 0;
	color: #145a52;
	font-size: 0.7rem;
	font-weight: 700;
}
.admin-aether__progress.is-error .admin-aether__progress-fill {
	background: #c94444;
}
.admin-aether__progress.is-error .admin-aether__progress-label {
	color: #a33a3a;
}
.admin-aether__debug-btn {
	margin-left: auto;
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.22rem 0.5rem;
	border: 0.0625rem solid var(--aether-border);
	border-radius: 0.3rem;
	background: #fff;
	color: #5a7a74;
	font-size: 0.62rem;
	font-weight: 700;
	cursor: pointer;
}
.admin-aether__debug-btn:hover {
	border-color: var(--aether-accent-mid);
	color: #145a52;
	background: var(--aether-accent-wash);
}
@media (max-width: 900px) {
	.admin-aether__composer-form { grid-template-columns: 1fr; }
	.admin-aether__primary-btn { width: 100%; }
	.admin-aether__row {
		flex-direction: column;
		align-items: stretch;
	}
	.admin-aether__row-side { justify-content: space-between; }
}

/* Devices + shared sober panels */
.admin-devices__note {
	margin: 0;
	color: #777;
	font-size: 0.78rem;
	line-height: 1.45;
}
.admin-devices__kpis {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 0.15rem 0 0.35rem;
}
.admin-devices__kpi {
	min-width: 7rem;
	padding: 0.5rem 0.7rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.2rem;
	background: linear-gradient(180deg, #ffffff 0%, #f3faf8 100%);
	box-shadow: inset 0.15rem 0 0 #52cdc0;
}
.admin-devices__kpi dt {
	margin: 0;
	color: #4f6f6a;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.3;
}
.admin-devices__kpi dd {
	margin: 0.2rem 0 0;
	color: #145a52;
	font-size: 1.15rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.admin-devices__kpi--alert {
	border-color: #e2b6b6;
	background: #fdf7f7;
}
.admin-devices__kpi--alert dd {
	color: #8f1f1f;
}
.admin-devices__alert {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.8rem;
	border-radius: 0.2rem;
	border: 0.0625rem solid transparent;
	font-size: 0.8125rem;
	line-height: 1.4;
}
.admin-devices__alert--error {
	border-color: #e2b6b6;
	background: #fdf5f5;
	color: #8f1f1f;
}
.admin-devices__alert--success {
	border-color: #b7d7c2;
	background: #f3faf5;
	color: #1f5c38;
}
.admin-devices__panel {
	margin-bottom: 0.85rem;
	border: 0.0625rem solid #cfe4e0;
	border-radius: 0.25rem;
	background: #fff;
	overflow: hidden;
}
.admin-devices__panel-head {
	padding: 0.6rem 0.9rem;
	border-bottom: 0.0625rem solid #d9ebe8;
	background: linear-gradient(180deg, #f3faf8 0%, #eaf6f4 100%);
}
.admin-devices__panel-title {
	margin: 0;
	color: #145a52;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.admin-devices__empty {
	margin: 0;
	padding: 1.35rem 1rem;
	color: #777;
	font-size: 0.8125rem;
	text-align: center;
}
.admin-devices__table-wrap {
	overflow-x: auto;
}
.admin-devices__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.8125rem;
}
.admin-devices__table th,
.admin-devices__table td {
	padding: 0.6rem 0.75rem;
	border-bottom: 0.0625rem solid #eee;
	text-align: left;
	vertical-align: middle;
}
.admin-devices__table th {
	color: #1e8c80;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: #f3faf8;
	white-space: nowrap;
}
.admin-devices__table tbody tr:last-child td {
	border-bottom: 0;
}
.admin-devices__table tbody tr:hover td {
	background: #fafafa;
}
.admin-devices__table tbody tr.is-banned td {
	background: #fdf8f8;
}
.admin-devices__mono {
	display: inline-block;
	padding: 0.1rem 0.35rem;
	border: 0.0625rem solid #e0e0e0;
	border-radius: 0.15rem;
	background: #f5f5f5;
	color: #333;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.75rem;
	font-weight: 600;
}
.admin-devices__badge {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.1rem 0.35rem;
	border: 0.0625rem solid #e2b6b6;
	border-radius: 0.15rem;
	background: #fdf5f5;
	color: #8f1f1f;
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	vertical-align: middle;
}
.admin-devices__accounts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}
.admin-devices__accounts a {
	color: #1e8c80;
	font-weight: 600;
	text-decoration: none;
}
.admin-devices__accounts a:hover {
	text-decoration: underline;
	color: #145a52;
}
.admin-devices__cell-muted {
	color: #999;
}
.admin-devices__cell-num {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: #444;
}
.admin-devices__col-actions {
	min-width: 12rem;
	width: 14rem;
}
.admin-devices__inline-form,
.admin-devices__ban-form {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	min-width: 11rem;
}
.admin-devices__ban-form {
	flex-direction: column;
	align-items: stretch;
}
.admin-devices__input {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 0.0625rem solid #d0d0d0;
	border-radius: 0.2rem;
	background: #fff;
	padding: 0.38rem 0.5rem;
	font: inherit;
	font-size: 0.78rem;
	color: #333;
}
.admin-devices__input:focus {
	outline: none;
	border-color: #1e8c80;
	box-shadow: 0 0 0 0.1rem rgba(30, 140, 128, 0.2);
}
.admin-devices__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.3rem;
	padding: 0.38rem 0.6rem;
	border-radius: 0.2rem;
	border: 0.0625rem solid transparent;
	font: inherit;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
}
.admin-devices__btn--secondary {
	border-color: #b7d9d3;
	background: #f3faf8;
	color: #145a52;
}
.admin-devices__btn--secondary:hover {
	border-color: #1e8c80;
	background: #e8f7f5;
}
.admin-devices__btn--danger {
	border-color: #c98383;
	background: #8f1f1f;
	color: #fff;
}
.admin-devices__btn--danger:hover {
	background: #751818;
}
.admin-aether-ui-form__block {
	margin: 0.35rem 0 1rem;
}
.admin-aether-ui-form__subtitle {
	margin: 0 0 0.45rem;
	color: #363636;
	font-size: 0.85rem;
	font-weight: 700;
}
.admin-aether-ui-form__chrome {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
	gap: 0.45rem;
	margin-top: 0.55rem;
}
.admin-aether-ui-form__check {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.55rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.2rem;
	background: #fafafa;
	font-size: 0.78rem;
	font-weight: 600;
	color: #333;
	cursor: pointer;
}
.admin-aether-ui-form__check:hover {
	background: #f3f3f3;
}
.admin-aether-ui-form__links {
	display: grid;
	gap: 0.55rem;
}
@media (max-width: 1100px) {
	.admin-devices__kpis {
		width: 100%;
	}
	.admin-devices__kpi {
		flex: 1;
	}
	.admin-devices__col-actions {
		min-width: 10rem;
		width: auto;
	}
}
/* —— Events module (admin + public) —— */
.admin-events__topbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	margin-bottom: 0.35rem;
}
.admin-events__eyebrow {
	margin: 0;
	color: #6a7c8e;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.admin-events__title { margin-top: 0.15rem; }
.admin-events__primary-btn,
.admin-events__ghost-btn,
.admin-events__danger-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.65rem;
	border-radius: 0.35rem;
	font-size: 0.68rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	border: 0.0625rem solid transparent;
	line-height: 1.2;
}
.admin-events__primary-btn {
	background: linear-gradient(180deg, #3f8fd8 0%, #2f6fad 100%);
	border-color: #2a6299;
	color: #fff;
}
.admin-events__ghost-btn {
	background: #f5f8fb;
	border-color: #d5e0ea;
	color: #3d5368;
}
.admin-events__danger-btn {
	background: #fff5f5;
	border-color: #e8caca;
	color: #9b3b3b;
}
.admin-events__rows {
	list-style: none;
	margin: 0.85rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}
.admin-events__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem 1rem;
	padding: 0.7rem 0.8rem;
	border: 0.0625rem solid #e6eef5;
	border-radius: 0.45rem;
	background: #fbfcfd;
}
.admin-events__row-title {
	margin: 0 0 0.3rem;
	font-size: 0.86rem;
	font-weight: 700;
	color: #243746;
}
.admin-events__row-meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem 0.4rem;
}
.admin-events__pill {
	display: inline-flex;
	padding: 0.12rem 0.4rem;
	border-radius: 999px;
	border: 0.0625rem solid #d5e0ea;
	background: #f0f4f8;
	color: #4a6074;
	font-size: 0.58rem;
	font-weight: 700;
}
.admin-events__pill--published { border-color: #b9dfc5; background: #eefaf1; color: #2f6b45; }
.admin-events__pill--draft { border-color: #e2d5b8; background: #fbf6ea; color: #7a6230; }
.admin-events__pill--launcher { border-color: #b7d4ef; background: #eef6ff; color: #2a628f; }
.admin-events__pill--ladder { border-color: #c5d9b8; background: #f3f8ee; color: #3f6a32; }
.admin-events__slug {
	font-size: 0.6rem;
	color: #6a7c8e;
	background: transparent;
}
.admin-events__row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
}
.admin-events__form { margin-top: 0.5rem; }
.admin-events__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem 0.85rem;
}
@media (max-width: 720px) {
	.admin-events__grid { grid-template-columns: 1fr; }
}
.admin-events__hint {
	display: block;
	margin-top: 0.25rem;
	color: #6a7c8e;
	font-size: 0.62rem;
}
.admin-events__check { display: flex; align-items: flex-end; }
.admin-events__check-label {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.72rem;
	color: #3d5368;
	font-weight: 600;
}
.admin-events__ladder {
	margin: 0.85rem 0 0.35rem;
	padding: 0.75rem;
	border: 0.0625rem solid #e6eef5;
	border-radius: 0.45rem;
	background: #f8fafc;
}
.admin-events__ladder .admin-events__hint {
	margin: 0.3rem 0 0.55rem;
}
.admin-events__ladder-fields {
	margin-top: 0.35rem;
}
.admin-events__banner-preview {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.45rem;
}
.admin-events__banner-preview img {
	max-width: 220px;
	max-height: 90px;
	object-fit: cover;
	border-radius: 0.35rem;
	border: 0.0625rem solid #d5e0ea;
}
.admin-events__rewards {
	margin: 1rem 0;
	padding: 0.75rem;
	border: 0.0625rem solid #e6eef5;
	border-radius: 0.45rem;
	background: #f8fafc;
}
.admin-events__rewards-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.65rem;
}
.admin-events__rewards-head h3 {
	margin: 0;
	font-size: 0.82rem;
	color: #243746;
}
.admin-events__reward-row {
	display: grid;
	grid-template-columns: 1.3fr 1.3fr 0.55fr minmax(7.5rem, 0.9fr) auto;
	gap: 0.45rem 0.55rem;
	align-items: end;
	padding: 0.55rem 0;
	border-top: 0.0625rem solid #e6eef5;
}
@media (max-width: 900px) {
	.admin-events__reward-row { grid-template-columns: 1fr 1fr; }
}
.admin-events__reward-row .admin-events__danger-btn {
	height: 2rem;
	box-sizing: border-box;
}
.admin-events__reward-item-field {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 2rem;
}
.admin-events__reward-item-field .register-form__input {
	flex: 1 1 auto;
	min-width: 0;
}
.admin-events__reward-thumb-box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	flex: 0 0 2rem;
	box-sizing: border-box;
	background: #ffffff;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.2rem;
	overflow: hidden;
}
.admin-events__reward-thumb-box[hidden] {
	display: none;
}
.admin-events__reward-thumb {
	width: auto;
	height: auto;
	max-width: none;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}
.admin-events__reward-thumb[hidden] {
	display: none;
}
.admin-events__form-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	align-items: center;
	margin-top: 0.85rem;
}


.site-events {
	gap: 1.15rem;
}

.site-events__featured {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	margin: 0.35rem 0 0.65rem;
	padding: 1.05rem 1.15rem;
	border: 0.0625rem solid #e2d3bc;
	border-radius: 0.45rem;
	background:
		linear-gradient(135deg, rgba(201, 133, 74, 0.12) 0%, rgba(255, 255, 255, 0.9) 45%, #faf6ef 100%);
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.site-events__featured:hover {
	border-color: #c9854a;
	box-shadow: 0 0.25rem 0.85rem rgba(90, 55, 25, 0.1);
}

.site-events__featured-kicker {
	color: #a86a32;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-events__featured-title {
	color: #2a1c12;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.2;
}

.site-events__featured-lead {
	color: #6a5a48;
	font-size: 0.85rem;
	line-height: 1.45;
}

.site-events__featured-cta {
	margin-top: 0.35rem;
	color: #b87333;
	font-size: 0.78rem;
	font-weight: 700;
}

.site-events__group {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.site-events__group-title {
	margin: 0.4rem 0 0.15rem;
	color: #8a8a8a;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-events__list {
	list-style: none;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border-top: 0.0625rem solid #ececec;
	border-radius: 4px;
}

.site-events__list > li {
	border-bottom: 0.0625rem solid #ececec;
}

.site-events__row {
	position: relative;
	display: grid;
	grid-template-columns: 4.25rem minmax(0, 1fr) auto;
	gap: 0.9rem 1.1rem;
	align-items: center;
	isolation: isolate;
	overflow: hidden;
	padding: 0.95rem 0.15rem 0.95rem 0;
	color: inherit;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.site-events__row:hover {
	background-color: #f7fbfa;
}

.site-events__row--art {
	min-height: 4.85rem;
	padding-right: 0.45rem;
}

.site-events__row--art:hover {
	background-color: transparent;
}

.site-events__row-art {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.site-events__row-art img {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 20%;
	width: 80%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.88;
	-webkit-mask-image: linear-gradient(
		90deg,
		transparent 0%,
		rgba(0, 0, 0, 0.06) 12%,
		rgba(0, 0, 0, 0.22) 28%,
		rgba(0, 0, 0, 0.48) 46%,
		rgba(0, 0, 0, 0.78) 68%,
		rgba(0, 0, 0, 0.94) 86%,
		#000 100%
	);
	mask-image: linear-gradient(
		90deg,
		transparent 0%,
		rgba(0, 0, 0, 0.06) 12%,
		rgba(0, 0, 0, 0.22) 28%,
		rgba(0, 0, 0, 0.48) 46%,
		rgba(0, 0, 0, 0.78) 68%,
		rgba(0, 0, 0, 0.94) 86%,
		#000 100%
	);
	transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-events__row-art::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		90deg,
		#fff 0%,
		#fff 22%,
		rgba(255, 255, 255, 0.97) 32%,
		rgba(255, 255, 255, 0.88) 42%,
		rgba(255, 255, 255, 0.68) 54%,
		rgba(255, 255, 255, 0.42) 66%,
		rgba(255, 255, 255, 0.2) 80%,
		rgba(255, 255, 255, 0.06) 92%,
		transparent 100%
	);
	opacity: 1;
	transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-events__row--art:hover .site-events__row-art img {
	opacity: 1;
}

.site-events__row--art:hover .site-events__row-art::after {
	opacity: 0.58;
}

.site-events__row--past.site-events__row--art .site-events__row-art img {
	filter: grayscale(0.35) saturate(0.7);
	opacity: 0.48;
}

.site-events__cal,
.site-events__row-main,
.site-events__row-aside {
	position: relative;
	z-index: 1;
}

.site-events__cal {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 3.6rem;
	padding: 0.35rem 0.2rem;
	border-right: 0.125rem solid #52cdc0;
	color: #363636;
	line-height: 1.05;
}

.site-events__cal--empty {
	border-right-color: #d7d7d7;
}

.site-events__cal-day {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.site-events__cal-month {
	margin-top: 0.12rem;
	color: #1e8c80;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.site-events__cal-year {
	margin-top: 0.08rem;
	color: #9a9a9a;
	font-size: 0.625rem;
}

.site-events__row-main {
	display: flex;
	flex-direction: column;
	gap: 0.22rem;
	min-width: 0;
}

.site-events__row-title {
	color: #2a2a2a;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
}

.site-events__row:hover .site-events__row-title {
	color: #1e8c80;
}

.site-events__row-summary {
	color: #7a7a7a;
	font-size: 0.75rem;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.site-events__row-aside {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: flex-end;
	justify-content: center;
	gap: 0.32rem;
	flex-shrink: 0;
}

.site-events__row-rewards {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.3rem;
}

.site-events__card-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.18rem 0.5rem;
	border-radius: 999px;
	background: #f3f8ee;
	color: #3f6a32;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.site-events__reward-box {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.125rem;
	height: 2.125rem;
	min-width: 2.125rem;
	min-height: 2.125rem;
	padding: 0;
	overflow: visible;
	border: 0.0625rem solid rgba(230, 238, 245, 0.85);
	border-radius: 0.28rem;
	background: rgba(248, 250, 252, 0.62);
	-webkit-backdrop-filter: blur(0.25rem);
	backdrop-filter: blur(0.25rem);
}

.site-events__row--art .site-events__reward-box {
	border-color: rgba(255, 255, 255, 0.55);
	background: rgba(255, 255, 255, 0.42);
	box-shadow: 0 0.08rem 0.35rem rgba(20, 40, 38, 0.08);
}

.site-events__reward-sprite {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.4));
}

.site-events__reward-qty {
	position: absolute;
	right: 0.0625rem;
	bottom: 0;
	color: #1e8c80;
	font-size: 0.5rem;
	font-weight: 700;
	line-height: 1;
	text-shadow: 0 0 0.15rem #fff, 0 0 0.15rem #fff;
}

.site-events__row-meta {
	color: #9a9a9a;
	font-size: 0.6875rem;
}

.site-events__status {
	display: inline-flex;
	align-items: center;
	padding: 0.18rem 0.5rem;
	border-radius: 999px;
	background: #eef7f5;
	color: #1e8c80;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
}

.site-events__status--upcoming {
	background: #f7f3ea;
	color: #b07a12;
}

.site-events__status--past,
.site-events__status--undated {
	background: #f2f2f2;
	color: #6f6f6f;
}

.site-event-detail {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.site-event-detail__back {
	margin: 0;
	font-size: 0.75rem;
}

.site-event-detail__back a {
	color: #7a7a7a;
	text-decoration: none;
}

.site-event-detail__back a:hover {
	color: #1e8c80;
}

.site-event-detail__banner {
	width: 100%;
	height: clamp(10rem, 26vw, 15.5rem);
	border-radius: 0.35rem;
	background: #eef4f3 center/cover no-repeat;
}

.site-event-detail__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.5rem;
}

.site-event-detail__title {
	flex: 1 0 100%;
	margin: 0;
	color: #2a2a2a;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.25;
}

.site-event-detail__dates {
	flex: 1 0 100%;
	margin: 0;
	color: #8a8a8a;
	font-size: 0.8125rem;
}

.site-event-detail__meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 0.75rem 1.25rem;
	margin: 0;
}

.site-event-detail__meta div {
	margin: 0;
}

.site-event-detail__meta dt {
	margin: 0 0 0.15rem;
	color: #9a9a9a;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.site-event-detail__meta dd {
	margin: 0;
	color: #2a2a2a;
	font-size: 0.875rem;
	font-weight: 600;
}

.site-event-detail__summary {
	margin: 0;
	color: #4a4a4a;
	font-size: 0.9rem;
	line-height: 1.55;
}

.site-event-detail__body {
	color: #5a5a5a;
	font-size: 0.875rem;
	line-height: 1.65;
}

.site-event-detail__body p:first-child {
	margin-top: 0;
}

.site-event-detail__rewards {
	margin-top: 0.35rem;
	padding-top: 1rem;
	border-top: 0.0625rem solid #ececec;
}

.site-event-detail__rewards-title {
	margin: 0 0 0.7rem;
	color: #2a2a2a;
	font-size: 0.8125rem;
	font-weight: 700;
}

.site-event-detail__rewards-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-event-detail__rewards-list li {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.55rem 0;
	border-bottom: 0.0625rem solid #f1f1f1;
	color: #2a2a2a;
	font-size: 0.8125rem;
}

.site-event-detail__rewards-list li:last-child {
	border-bottom: 0;
}

.site-event-detail__rewards-list img {
	width: auto;
	height: auto;
	flex-shrink: 0;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.site-event-detail__rewards-list span:first-of-type {
	flex: 1;
	min-width: 0;
}

.site-event-detail__ladder {
	margin-top: 0.35rem;
	padding-top: 1rem;
	border-top: 0.0625rem solid #ececec;
}

.site-event-detail__ladder-title {
	margin: 0 0 0.35rem;
	color: #2a2a2a;
	font-size: 0.8125rem;
	font-weight: 700;
}

.site-event-detail__ladder-metric {
	margin: 0 0 0.55rem;
	color: #4a4a4a;
	font-size: 0.8125rem;
	line-height: 1.45;
}

.site-event-detail__ladder-empty {
	margin: 0;
	color: #8a8a8a;
	font-size: 0.75rem;
	line-height: 1.45;
}

.site-event-detail__ladder-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 0.0625rem solid #ececec;
}

.site-event-detail__ladder-item {
	display: grid;
	grid-template-columns: 2.1rem 3.125rem minmax(0, 1fr) auto;
	gap: 0.45rem 0.65rem;
	align-items: center;
	padding: 0.5rem 0.4rem;
	border-bottom: 0.0625rem solid #ececec;
}

.site-event-detail__ladder-item--gold {
	background: linear-gradient(90deg, #f3e3a4 0%, #fbf4dc 48%, #fffaf0 100%);
}

.site-event-detail__ladder-item--silver {
	background: linear-gradient(90deg, #d5dbe3 0%, #f1f3f5 48%, #f8f9fb 100%);
}

.site-event-detail__ladder-item--bronze {
	background: linear-gradient(90deg, #e4c4a0 0%, #f4e8dc 48%, #faf4ec 100%);
}

.site-event-detail__ladder-rank {
	color: #1e8c80;
	font-size: 0.8125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.site-event-detail__ladder-sprite {
	position: relative;
	display: block;
	width: 3.125rem;
	height: 3.125rem;
	overflow: visible;
	box-sizing: border-box;
}

.site-event-detail__ladder-sprite-inner {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	overflow: hidden;
	border: 0;
	border-radius: 4px;
	background: #f4f7f8;
	box-sizing: border-box;
}

.site-event-detail__ladder-sprite-inner img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	object-position: bottom center;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.site-event-detail__ladder-frame {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	width: auto;
	height: auto;
	transform: translate(-50%, -50%);
	pointer-events: none;
	image-rendering: -moz-crisp-edges;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
}

.site-event-detail__ladder-item--gold .site-event-detail__ladder-sprite-inner {
	background: linear-gradient(180deg, #f8e9a8 0%, #e4c24a 100%);
}

.site-event-detail__ladder-item--silver .site-event-detail__ladder-sprite-inner {
	background: linear-gradient(180deg, #eef1f5 0%, #b4bcc6 100%);
}

.site-event-detail__ladder-item--bronze .site-event-detail__ladder-sprite-inner {
	background: linear-gradient(180deg, #f3d7b4 0%, #c8884a 100%);
}

.site-event-detail__ladder-who {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.4rem;
	min-width: 0;
}

.site-event-detail__ladder-emblem {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	flex-shrink: 0;
	object-fit: contain;
	image-rendering: pixelated;
}

.site-event-detail__ladder-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.site-event-detail__ladder-name {
	overflow: hidden;
	color: #2a2a2a;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-event-detail__ladder-guild {
	margin-top: 0.08rem;
	overflow: hidden;
	color: #8a8a8a;
	font-size: 0.6875rem;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-event-detail__ladder-score {
	color: #1e8c80;
	font-size: 0.875rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.site-event-detail__ladder-item--gold .site-event-detail__ladder-score,
.site-event-detail__ladder-item--silver .site-event-detail__ladder-score,
.site-event-detail__ladder-item--bronze .site-event-detail__ladder-score {
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.site-event-detail__ladder-item--gold .site-event-detail__ladder-score {
	background-image: linear-gradient(180deg, #d7b44a 0%, #b68a18 42%, #8a6410 78%, #c4a034 100%);
	filter: drop-shadow(0 0.05rem 0.06rem rgba(90, 62, 8, 0.28));
}

.site-event-detail__ladder-item--silver .site-event-detail__ladder-score {
	background-image: linear-gradient(180deg, #8e97a3 0%, #6a7380 42%, #4e5661 78%, #7b8490 100%);
	filter: drop-shadow(0 0.05rem 0.06rem rgba(40, 48, 56, 0.28));
}

.site-event-detail__ladder-item--bronze .site-event-detail__ladder-score {
	background-image: linear-gradient(180deg, #d49a5c 0%, #b06a32 42%, #7a4318 78%, #c8884a 100%);
	filter: drop-shadow(0 0.05rem 0.06rem rgba(80, 40, 12, 0.28));
}

.site-event-detail__qty {
	color: #1e8c80;
	font-weight: 700;
}

@media (max-width: 700px) {
	.site-events__row {
		grid-template-columns: 3.5rem minmax(0, 1fr);
		gap: 0.7rem 0.85rem;
		padding: 0.85rem 0;
	}

	.site-events__row-art img {
		opacity: 0.62;
	}

	.site-events__row-art::after {
		background: linear-gradient(
			90deg,
			#fff 0%,
			#fff 18%,
			rgba(255, 255, 255, 0.97) 30%,
			rgba(255, 255, 255, 0.86) 44%,
			rgba(255, 255, 255, 0.62) 60%,
			rgba(255, 255, 255, 0.36) 78%,
			rgba(255, 255, 255, 0.16) 100%
		);
	}

	.site-events__row--art:hover .site-events__row-art::after {
		opacity: 0.82;
	}

	.site-events__row-aside {
		grid-column: 2;
		align-items: flex-start;
	}

	.site-event-detail__title {
		font-size: 1.15rem;
	}
}

/* Admin RoDEX — cards layout (admin-events / vote-dash) */
.admin-rodex-dash-link {
	margin: 0 0 0.85rem;
}
.admin-rodex-dash-link .admin-events__primary-btn {
	font-size: 0.78rem;
	padding: 0.45rem 0.85rem;
}

.admin-rodex__lead {
	margin: 0.15rem 0 0.65rem;
	color: #5a6b69;
	font-size: 0.875rem;
	line-height: 1.45;
}

.admin-rodex__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(15rem, 0.85fr);
	gap: 0.85rem;
	align-items: start;
	margin-top: 0.35rem;
}

.admin-rodex__main {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-width: 0;
}

.admin-rodex__side {
	position: sticky;
	top: 0.75rem;
	min-width: 0;
}

.admin-rodex__card {
	padding: 0.95rem 1rem 1.05rem;
	border: 0.0625rem solid #d7d7d7;
	border-radius: 0.65rem;
	background: #fcfcfc;
	box-shadow: 0 0.08rem 0.2rem rgba(26, 40, 38, 0.04);
}

.admin-rodex__card--side {
	background: linear-gradient(180deg, #ffffff 0%, #f7fcfb 100%);
}

.admin-rodex__card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	margin-bottom: 0.75rem;
}

.admin-rodex__card-title {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	color: #5a6b69;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.admin-rodex__card-icon {
	color: #239f91;
	font-size: 0.85rem;
}

.admin-rodex__counter {
	color: #7a8a87;
	font-size: 0.72rem;
	font-weight: 700;
}

.admin-rodex__modes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.45rem;
	margin-bottom: 0.85rem;
}

.admin-rodex__mode {
	cursor: pointer;
}

.admin-rodex__mode input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.admin-rodex__mode-ui {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-height: 100%;
	padding: 0.55rem 0.6rem;
	border: 0.0625rem solid #d4e2df;
	border-radius: 0.5rem;
	background: #ffffff;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.admin-rodex__mode-ui strong {
	color: #1f2a28;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.25;
}

.admin-rodex__mode-ui small {
	color: #7a8a87;
	font-size: 0.68rem;
	line-height: 1.3;
}

.admin-rodex__mode input:checked + .admin-rodex__mode-ui {
	border-color: #239f91;
	background: #eef9f7;
	box-shadow: 0 0 0 0.08rem rgba(35, 159, 145, 0.22);
}

.admin-rodex__mode--danger input:checked + .admin-rodex__mode-ui {
	border-color: #d08888;
	background: #fff5f5;
	box-shadow: 0 0 0 0.08rem rgba(196, 90, 90, 0.18);
}

.admin-rodex__mode--danger input:checked + .admin-rodex__mode-ui strong {
	color: #9b3b3b;
}

.admin-rodex__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	min-height: 2.15rem;
	padding: 0.3rem 0.45rem;
	border: 0.0625rem solid #d8d8d8;
	border-radius: 0.2rem;
	background: #ffffff;
}

.admin-rodex__chips:focus-within {
	border-color: #209c8f;
}

.admin-rodex__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.15rem 0.4rem 0.15rem 0.5rem;
	border: 0;
	border-radius: 999px;
	background: #dff3ef;
	color: #17685f;
	font-size: 0.72rem;
	font-weight: 600;
	cursor: pointer;
}

.admin-rodex__chip i {
	font-size: 0.62rem;
	opacity: 0.7;
}

.admin-rodex__chip:hover {
	background: #cceae4;
}

.admin-rodex__chip-input {
	flex: 1 1 8rem;
	min-width: 7rem;
	min-height: 1.7rem;
	padding: 0.15rem 0.1rem;
	border: 0;
	background: transparent;
	color: #333;
	font-size: 0.75rem;
}

.admin-rodex__chip-input:focus {
	outline: none;
}

.admin-rodex__mass-banner {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-top: 0.15rem;
	padding: 0.65rem 0.75rem;
	border: 0.0625rem solid #e2d5b8;
	border-radius: 0.45rem;
	background: #fbf6ea;
}

.admin-rodex__mass-banner p {
	margin: 0;
	color: #7a6230;
	font-size: 0.75rem;
	line-height: 1.4;
}

.admin-rodex__audience {
	display: inline-flex;
	align-self: flex-start;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	background: #dff3ef;
	color: #17685f;
	font-size: 0.72rem;
	font-weight: 700;
}

.admin-rodex__audience.is-danger {
	background: #ffe6e6;
	color: #9b3b3b;
}

.admin-rodex__textarea {
	height: auto;
	min-height: 9.5rem;
	padding: 0.55rem;
	resize: vertical;
	line-height: 1.45;
}

.admin-rodex__slots {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin: 0.55rem 0 0.85rem;
}

.admin-rodex__slot {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) 4.5rem;
	align-items: start;
	gap: 0.45rem;
	padding: 0.45rem;
	border: 0.0625rem solid #d4e2df;
	border-radius: 0.45rem;
	background: #ffffff;
}

.admin-rodex__slot-icon-box {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2rem;
	border-radius: 0.3rem;
	background: linear-gradient(180deg, #f4faf8 0%, #e8f3f0 100%);
	border: 0.0625rem dashed #c9ded9;
}

.admin-rodex__slot-icon {
	width: 1.45rem;
	height: 1.45rem;
	object-fit: contain;
	image-rendering: pixelated;
}

.admin-rodex__slot-search {
	position: relative;
	min-width: 0;
}

.admin-rodex__slot-query {
	padding-right: 1.7rem;
}

.admin-rodex__slot-clear {
	position: absolute;
	top: 0.2rem;
	right: 0.2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: #7a8a87;
	cursor: pointer;
}

.admin-rodex__slot-clear:hover {
	background: #eef4f2;
	color: #1f2a28;
}

.admin-rodex__slot-qty {
	height: 2rem;
	padding: 0 0.3rem;
	font-size: 0.7rem;
	text-align: center;
}

.admin-rodex__suggest {
	position: absolute;
	z-index: 20;
	top: calc(100% + 0.15rem);
	left: 0;
	right: 0;
	margin: 0;
	padding: 0.25rem;
	list-style: none;
	max-height: 14rem;
	overflow: auto;
	border: 0.0625rem solid #d4e2df;
	border-radius: 0.4rem;
	background: #ffffff;
	box-shadow: 0 0.35rem 0.9rem rgba(22, 48, 44, 0.12);
}

.admin-rodex__suggest-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0.4rem;
	border-radius: 0.3rem;
	cursor: pointer;
}

.admin-rodex__suggest-item:hover,
.admin-rodex__suggest-item:focus {
	background: #eef9f7;
}

.admin-rodex__suggest-icon {
	width: 1.25rem;
	height: 1.25rem;
	object-fit: contain;
	image-rendering: pixelated;
	flex: 0 0 auto;
}

.admin-rodex__suggest-text {
	display: flex;
	flex-direction: column;
	gap: 0.05rem;
	min-width: 0;
}

.admin-rodex__suggest-text strong {
	color: #1f2a28;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
}

.admin-rodex__suggest-text small {
	color: #7a8a87;
	font-size: 0.65rem;
	line-height: 1.2;
}

.admin-rodex__suggest-empty {
	padding: 0.45rem 0.5rem;
	color: #7a8a87;
	font-size: 0.72rem;
}

.admin-rodex__zeny-group {
	max-width: 12rem;
}

.admin-rodex__stat {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	margin-bottom: 0.65rem;
	padding: 0.75rem 0.8rem;
	border-radius: 0.5rem;
	background: linear-gradient(135deg, #eef9f7 0%, #f7fcfb 100%);
	border: 0.0625rem solid #d4ebe6;
}

.admin-rodex__stat-num {
	color: #1e8c80;
	font-size: 1.65rem;
	font-weight: 800;
	line-height: 1;
}

.admin-rodex__stat-label {
	color: #5a6b69;
	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.3;
}

.admin-rodex__live {
	min-height: 1.2rem;
	margin: 0 0 0.85rem;
	color: #5a6b69;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.35;
}

.admin-rodex__live.is-ok { color: #1a7a38; }
.admin-rodex__live.is-err { color: #9b3b3b; }
.admin-rodex__live:empty { margin-bottom: 0.45rem; }

.admin-rodex__mass-safe {
	margin: 0.35rem 0 0.75rem;
	padding: 0.7rem 0.75rem;
	border: 0.0625rem solid #e8caca;
	border-radius: 0.45rem;
	background: #fff8f8;
}

.admin-rodex__ack {
	display: flex;
	align-items: flex-start;
	gap: 0.45rem;
	margin-bottom: 0.55rem;
	color: #6a3a3a;
	font-size: 0.72rem;
	line-height: 1.4;
	cursor: pointer;
}

.admin-rodex__ack input {
	margin-top: 0.12rem;
	accent-color: #c45a5a;
}

.admin-rodex__send {
	width: 100%;
	justify-content: center;
	gap: 0.45rem;
	min-height: 2.35rem;
	margin-top: 0.35rem;
	font-size: 0.84rem;
}

@media (max-width: 56rem) {
	.admin-rodex__layout {
		grid-template-columns: 1fr;
	}

	.admin-rodex__side {
		position: static;
	}
}

@media (max-width: 40rem) {
	.admin-rodex__modes {
		grid-template-columns: 1fr;
	}

	.admin-rodex__slot {
		grid-template-columns: 2.5rem minmax(0, 1fr);
	}
	.admin-rodex__slot-qty {
		grid-column: 2;
	}
}
