/**
 * Digital Golf World - Public styles
 * Diseño limpio, responsivo y neutral para integrarse con cualquier tema.
 */

.dgw-public-ranking,
.dgw-player-profile,
.dgw-player-dashboard,
.dgw-challenge-list,
.dgw-register-form,
.dgw-index-history {
	font-family: inherit;
	color: inherit;
	margin: 1em 0;
}

.dgw-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1em 0;
	font-size: 14px;
}

.dgw-table th,
.dgw-table td {
	padding: 8px 10px;
	text-align: left;
	border-bottom: 1px solid #e5e7eb;
}

.dgw-table th {
	background: #f9fafb;
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
}

.dgw-table tbody tr:hover {
	background: #f9fafb;
}

.dgw-pos {
	font-weight: 700;
	width: 50px;
	text-align: center;
}

.dgw-points {
	color: #1e3a8a;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.dgw-license {
	display: block;
	color: #6b7280;
	font-size: 11px;
	margin-top: 2px;
}

.dgw-empty {
	padding: 24px;
	text-align: center;
	color: #6b7280;
	background: #f9fafb;
	border: 1px dashed #d1d5db;
	border-radius: 6px;
}

/* (Estilos del perfil rediseñado están al final del archivo) */

/* Challenge cards */
.dgw-challenges-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}
.dgw-challenge-card {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 16px;
	background: #fff;
}
.dgw-challenge-card h3 {
	margin-top: 0;
}
.dgw-challenge-meta {
	color: #6b7280;
	font-size: 13px;
}
.dgw-challenge-tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.dgw-challenge-tags span {
	background: #f3f4f6;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
}

/* Register form */
.dgw-register-form input[type=text],
.dgw-register-form input[type=email],
.dgw-register-form input[type=password] {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #d1d5db;
	border-radius: 4px;
	font-size: 14px;
}
.dgw-register-form button {
	background: #1e40af;
	color: #fff;
	border: 0;
	padding: 10px 18px;
	border-radius: 4px;
	cursor: pointer;
	font-weight: 600;
}
.dgw-register-form button:hover { background: #1e3a8a; }
.dgw-notice {
	padding: 10px 14px;
	background: #ecfdf5;
	border: 1px solid #10b981;
	border-radius: 4px;
	margin-bottom: 12px;
}

.dgw-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.3px;
}

/* Registro: pasos y estados de lookup */
.dgw-step {
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	padding: 16px;
	margin: 12px 0;
}
.dgw-step legend {
	font-weight: 600;
	padding: 0 8px;
	color: #1e40af;
}
.dgw-federation-locked {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	border-radius: 4px;
	padding: 10px;
	color: #1e3a8a;
}
.dgw-hint {
	display: block;
	color: #6b7280;
	font-size: 12px;
	margin-top: 4px;
}
.dgw-lookup-status {
	margin-top: 8px;
	padding: 8px 12px;
	border-radius: 4px;
	font-size: 14px;
	min-height: 18px;
}
.dgw-lookup-status:empty {
	display: none;
}
.dgw-lookup-loading {
	background: #fef3c7;
	color: #92400e;
}
.dgw-lookup-success {
	background: #d1fae5;
	color: #065f46;
	border: 1px solid #10b981;
}
.dgw-lookup-error {
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #ef4444;
}
#dgw-reg-license[readonly],
#dgw-reg-first[readonly],
#dgw-reg-last[readonly],
#dgw-reg-club-display[readonly] {
	background: #f9fafb;
	color: #4b5563;
}
.dgw-btn-secondary {
	background: #6b7280;
	color: #fff;
	border: 0;
	padding: 8px 14px;
	border-radius: 4px;
	cursor: pointer;
	margin-left: 6px;
}
.dgw-btn-secondary:hover {
	background: #4b5563;
}

/* ====================================================================
 * LEADERBOARD ESTILO MASTERS — mobile first
 * ==================================================================== */
.dgw-leaderboard {
	/* v3.8.49 — Fondo del contenedor raíz TRANSPARENTE. Antes era #ffffff,
	 * lo que generaba "cajas blancas" cuando el usuario personalizaba el
	 * fondo del sitio (gris u otro color). Ahora todo lo que es contenedor
	 * externo es transparente; solo las tarjetas de fila, pastillas y bloques
	 * con borde conservan su fondo propio. */
	--dgw-bg: transparent;
	--dgw-bg-alt: #f8fafc;
	--dgw-bg-header: #0a3d2c;
	--dgw-text: #0f172a;
	--dgw-text-muted: #64748b;
	--dgw-border: #e2e8f0;
	--dgw-accent: #0a3d2c;
	/* Versión muy clara del accent (~6% alpha). Soporta color-mix en navegadores
	   modernos; si no, fallback al bg-alt gris claro. */
	--dgw-accent-soft: color-mix(in srgb, var(--dgw-accent) 8%, white);
	--dgw-accent-hover: color-mix(in srgb, var(--dgw-accent) 14%, white);
	--dgw-gold: #d4a017;
	--dgw-silver: #94a3b8;
	--dgw-bronze: #b45309;

	background: var(--dgw-bg);
	color: var(--dgw-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	border-radius: 0;
	overflow: visible;
	border: 0;
	box-shadow: none;
	margin: 1.5em 0;
}

/* HEADER minimalista — fondo TRANSPARENTE (v3.8.49) para respetar el
 * color de fondo que el usuario configure en su sitio. El emblema y el
 * texto siguen siendo protagonistas. */
.dgw-lb-header {
	background: transparent;
	color: var(--dgw-text);
	padding: 14px 20px 16px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	border-bottom: 0;
	text-align: center;
	position: relative;
}
/* Cuando no hay título visible (.dgw-no-title), achicamos aún más arriba.
 * El "título" en realidad es un h2 textual; cuando se oculta queda un hueco
 * vertical innecesario por gap+padding-top. */
.dgw-no-title .dgw-lb-header { padding-top: 10px; }
.dgw-no-title .dgw-lb-title { display: none; }
.dgw-lb-title h2 {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--dgw-text-muted);
}
.dgw-lb-subtitle {
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--dgw-text-muted);
	font-weight: 500;
}
.dgw-lb-meta {
	display: flex;
	flex-direction: row;
	gap: 14px;
	font-size: 11px;
	color: var(--dgw-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.6px;
	font-weight: 600;
	align-items: center;
}
.dgw-lb-meta span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.dgw-lb-count {
	color: var(--dgw-text);
}
.dgw-lb-count-num {
	color: var(--dgw-accent);
	font-weight: 800;
}

/* ====================================================================
 * LEADERBOARD TABLE — Diseño estilo LIV Golf (v2 — fixes simetría/mobile).
 * Cada "fila" es una card flex: bloque izquierdo (pos + avatar + nombre)
 * y bloque derecho (cifras alineadas a la derecha). Usa role="table".
 * Mantiene clases que el JS espera: .dgw-lb-row, .dgw-player-link, etc.
 *
 * v2 — cambios respecto al primer release:
 *   - thead y filas con MISMO padding horizontal (alineación perfecta).
 *   - Sin border-radius en filas (separadores 100% rectos y simétricos).
 *   - Team badge del club mucho más visible (32px en desktop, 28 en mobile).
 *   - Mobile: ya no se rompe el avatar (overflow correcto).
 *   - Mobile: muestra logo de club + idx + coins en una segunda fila debajo
 *     del nombre (en lugar de ocultarlos completamente).
 * ==================================================================== */

/* Wrapper sin scroll horizontal — todo entra en columnas flex que se ajustan. */
.dgw-lb-table-wrap {
	overflow: visible;
	background: var(--dgw-bg);
	margin-top: 24px;
}
/* Red de seguridad global: ninguna <img> dentro del leaderboard puede salirse
 * de su contenedor — algunos temas (Astra, Elementor, OceanWP) aplican
 * `img { width: 100%; height: auto }` que rompe nuestros círculos. */
.dgw-lb-table-wrap img,
.dgw-lb-table img {
	max-width: 100% !important;
	max-height: 100% !important;
	height: auto;
}
.dgw-lb-table-wrap .dgw-player-avatar,
.dgw-lb-table-wrap .dgw-col-club-logo img,
.dgw-lb-table-wrap .dgw-player-team-badge img,
.dgw-lb-table-wrap .dgw-player-meta-club-logo {
	height: 100% !important;
}
.dgw-lb-table {
	width: 100%;
	display: flex;
	flex-direction: column;
	font-variant-numeric: tabular-nums;
	font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	border: 0;
}

/* Padding horizontal uniforme tanto en thead como en cada fila. */
.dgw-lb-table { --dgw-row-pad-x: 16px; }

/* ---- THEAD ---- estilo LIV: minimal, sin fondo gris, sin borde duro.
 * Solo letras chicas uppercase con buen espacio arriba y abajo. La
 * separación visual con el body la da el padding generoso. */
.dgw-lb-thead {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 14px var(--dgw-row-pad-x);
	position: sticky;
	top: 0;
	z-index: 2;
	/* v3.8.49 — Fondo = color principal del desafío/federación (--dgw-accent),
	 * texto blanco, esquinas superiores redondeadas. Da una "barra de
	 * encabezado" prolija que separa visualmente las columnas del contenido. */
	background: var(--dgw-accent);
	border-bottom: 0;
	border-radius: 10px;
	margin-bottom: 4px;
}
.dgw-lb-thead .dgw-th {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: #ffffff;
	opacity: 0.95;
}
/* Las anchuras de las columnas (thead + body) deben coincidir exactamente. */
.dgw-th-pos      { width: 56px;  text-align: left; flex-shrink: 0; }
.dgw-th-player   { flex: 1 1 auto; min-width: 0; }
.dgw-th-club     { width: 200px; text-align: left; }
.dgw-th-idx      { width: 60px;  text-align: center; }
.dgw-th-best     { width: 70px;  text-align: center; }
.dgw-th-rounds   { width: 50px;  text-align: center; }
.dgw-th-points   { width: 88px;  text-align: right; }
.dgw-th-coins    { width: 88px;  text-align: right; }

/* ---- TBODY ---- sin padding extra, las filas tienen el suyo.
 *
 * v3.8.46 — Fondo gris muy suave para que las "tarjetas" blancas de cada
 * fila se destaquen (estilo PGA Championship). Pequeño padding superior
 * para no pegar la primera tarjeta al header. */
.dgw-lb-tbody {
	display: flex;
	flex-direction: column;
	/* v3.8.49 — Transparente: las tarjetas blancas con sombra resaltan
	 * igual sobre cualquier fondo que configure el usuario. Antes era
	 * #f7f8fa, lo que generaba un bloque gris fijo. */
	background: transparent;
	padding: 12px 0 0;
	border-radius: 0;
}

/* ---- ROW ---- mismo padding-x que el thead → alineación perfecta.
 * Usamos especificidad alta (.dgw-lb-tbody .dgw-lb-row) + !important en la
 * línea divisoria porque varios temas (Astra, OceanWP, Elementor, Bricks)
 * aplican `div { border: 0 }` o resetean box-shadow global, lo que borra
 * las divisorias entre filas y la barrita dorada del podio. */
.dgw-lb-table-wrap .dgw-lb-tbody .dgw-lb-row,
.dgw-lb-tbody .dgw-lb-row {
	display: flex;
	align-items: center;
	gap: 8px;
	/* v3.8.46 — Estilo "tarjeta flotante" inspirado en el leaderboard
	 * del PGA Championship: más padding vertical, separación entre filas,
	 * sombra sutil, fondo blanco, esquinas redondeadas. La línea divisoria
	 * de abajo se reemplaza con el gap natural entre tarjetas (margin-bottom). */
	padding: 18px var(--dgw-row-pad-x);
	margin-bottom: 8px;
	background: #ffffff;
	border-radius: 10px;
	border-top: 0 !important;
	border-left: 3px solid transparent !important;
	border-right: 0 !important;
	border-bottom: 0 !important;
	box-shadow:
		0 1px 2px rgba(15, 23, 42, 0.04),
		0 2px 6px rgba(15, 23, 42, 0.05);
	cursor: pointer;
	transition: box-shadow 0.18s ease, transform 0.18s ease, background-color 0.15s ease;
	box-sizing: border-box;
}
.dgw-lb-table-wrap .dgw-lb-tbody .dgw-lb-row:last-child,
.dgw-lb-tbody .dgw-lb-row:last-child { margin-bottom: 0; }

.dgw-lb-row:hover {
	background: #ffffff;
	box-shadow:
		0 2px 4px rgba(15, 23, 42, 0.06),
		0 6px 16px rgba(15, 23, 42, 0.08);
	transform: translateY(-1px);
}
.dgw-lb-row:focus-visible {
	outline: 2px solid var(--dgw-accent);
	outline-offset: -2px;
}

/* Highlight para el podio — barra accent a la izquierda como border-left real
 * (más robusto que inset box-shadow ante resets globales del tema). */
.dgw-lb-table-wrap .dgw-lb-tbody .dgw-row-pos-1,
.dgw-lb-tbody .dgw-row-pos-1 { border-left-color: var(--dgw-gold, #d4a017) !important; }
.dgw-lb-table-wrap .dgw-lb-tbody .dgw-row-pos-2,
.dgw-lb-tbody .dgw-row-pos-2 { border-left-color: var(--dgw-silver, #94a3b8) !important; }
.dgw-lb-table-wrap .dgw-lb-tbody .dgw-row-pos-3,
.dgw-lb-tbody .dgw-row-pos-3 { border-left-color: var(--dgw-bronze, #b45309) !important; }

/* ---- BLOQUE IZQUIERDO: link clickeable POS + AVATAR + NAME ---- */
.dgw-player-link {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	color: inherit;
	text-decoration: none !important;
}
.dgw-player-link:hover .dgw-player-name,
.dgw-player-link:focus .dgw-player-name {
	color: var(--dgw-accent);
}
.dgw-player-link:visited,
.dgw-player-link:visited .dgw-player-name {
	color: var(--dgw-text) !important;
}

/* POS LABEL — "1ST", "T3", "T11" */
.dgw-pos-label {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 44px;
	flex-shrink: 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.3px;
	color: var(--dgw-text);
	font-variant-numeric: tabular-nums;
}
.dgw-row-pos-1 .dgw-pos-label { color: var(--dgw-gold); }
.dgw-row-pos-2 .dgw-pos-label { color: var(--dgw-silver); }
.dgw-row-pos-3 .dgw-pos-label { color: var(--dgw-bronze); }

/* AVATAR — círculo robusto, inmune a temas que pisen estilos.
 * Usamos !important en width/height/max-width/max-height en el wrap y la img,
 * y NO usamos position: absolute (que en algunos temas mobile se escapa).
 *
 * v3.8.46 — Tamaño 56px (antes 44px) para acompañar el look "tarjeta" tipo
 * PGA Championship — un poco más prominente, similar a apps de scoring pro. */
.dgw-player-avatar-wrap {
	display: inline-block !important;
	width: 56px !important;
	height: 56px !important;
	max-width: 56px !important;
	max-height: 56px !important;
	min-width: 56px !important;
	min-height: 56px !important;
	flex: 0 0 56px !important;
	border-radius: 50%;
	background: color-mix(in srgb, var(--dgw-accent) 20%, white);
	overflow: hidden !important;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
	vertical-align: middle;
	box-sizing: border-box;
}
.dgw-player-avatar {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	object-fit: cover;
	object-position: top center;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50%;
	box-sizing: border-box;
}

/* NOMBRE Y CLUB */
.dgw-player-name-wrap {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 2px;
}
.dgw-player-name-row {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.dgw-player-name {
	font-size: 16px;
	font-weight: 600;
	color: var(--dgw-text) !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
	border-bottom: 0 !important;
	text-decoration: none !important;
	letter-spacing: -0.1px;
}

/* v3.8.93 — Insignias / badges del jugador, al lado del nombre.
 * Una o varias imágenes chicas; si tienen link son clickeables.
 * v3.8.94 — Tamaño MUY reducido: en los leaderboards el badge es un
 * acento al lado del nombre, no un banner. Alto y ancho máximos chicos
 * para que un logo apaisado (Titleist, etc.) no ocupe media fila. */
/* v3.9.3 — Insignias: columna avatar + tira de hasta 3 badges DEBAJO.
 * La columna y la tira tienen ANCHO FIJO igual al del avatar (56px /
 * 40px en mobile), así el nombre y los puntos NO se mueven ni se
 * ensancha ninguna columna. La tira hace wrap si entran 2 filas pero
 * limitada a 3 badges. Solo <img> (sin <a>: rompía el HTML dentro del
 * <a> de la fila). El link sigue activo en el perfil del jugador. */
.dgw-avatar-badge-col {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	flex: 0 0 56px !important;
	width: 56px !important;
	max-width: 56px !important;
}
.dgw-avatar-badge-col .dgw-player-avatar-wrap {
	position: relative !important;
	overflow: hidden !important;
}
.dgw-avatar-badge-col .dgw-player-avatar-wrap .dgw-player-avatar {
	border-radius: 50% !important;
}
.dgw-avatar-badge-col .dgw-player-badges {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 3px;
	width: 100% !important;
	max-width: 56px !important;
	line-height: 0;
}
.dgw-avatar-badge-col .dgw-player-badge {
	height: 15px !important;
	width: auto !important;
	max-width: 26px !important;
	max-height: 15px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	object-fit: contain;
	display: block !important;
}
@media (max-width: 1023px) {
	.dgw-avatar-badge-col {
		flex: 0 0 40px !important;
		width: 40px !important;
		max-width: 40px !important;
	}
	.dgw-avatar-badge-col .dgw-player-badges { max-width: 40px !important; }
	.dgw-avatar-badge-col .dgw-player-badge { height: 13px !important; max-width: 19px !important; max-height: 13px !important; }
}

/* TEAM BADGE — el logo del club al lado del nombre del jugador. Más chico ahora
 * que también lo mostramos en grande en la columna CLUB. */
.dgw-player-team-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--dgw-border);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.dgw-player-team-badge img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 2px;
}
.dgw-player-team {
	font-size: 12px;
	color: var(--dgw-text-muted);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 240px;
}
.dgw-player-license {
	font-size: 10px;
	color: var(--dgw-text-muted);
	letter-spacing: 0.4px;
}

/* ---- META MOBILE: chip-row con idx, coins, club ---- */
/* Esta zona es la que se vuelve visible en mobile para mostrar el detalle
 * que en desktop aparece en columnas. En desktop está oculta. */
.dgw-player-meta-row {
	display: none;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-top: 4px;
	font-size: 11px;
	color: var(--dgw-text-muted);
	font-weight: 500;
	align-items: center;
}
.dgw-player-meta-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.dgw-player-meta-chip strong {
	color: var(--dgw-text);
	font-weight: 600;
}
.dgw-player-meta-chip-coins strong {
	color: var(--dgw-gold);
}

/* ---- CELDAS DERECHAS: cifras numéricas ---- */
.dgw-cell {
	font-size: 14px;
	font-weight: 500;
	color: var(--dgw-text-muted);
	flex-shrink: 0;
}
.dgw-col-club {
	width: 200px;
	font-size: 13px;
	color: var(--dgw-text);
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.dgw-col-club-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--dgw-border);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.dgw-col-club-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 3px;
}
.dgw-col-club-name {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
	font-weight: 500;
}
.dgw-col-idx    { width: 60px; text-align: center; }
.dgw-col-best   { width: 70px; text-align: center; }
.dgw-col-rounds { width: 50px; text-align: center; }
.dgw-col-points { width: 88px; text-align: right; }
.dgw-col-points strong {
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	color: var(--dgw-text);
	letter-spacing: 0.2px;
}
.dgw-col-coins {
	width: 88px;
	text-align: right;
	font-weight: 600;
	color: var(--dgw-gold);
}

/* DIFF semántico (negativo = bajo par = bueno → verde). */
.dgw-diff {
	font-weight: 600;
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 13px;
}
.dgw-diff-neg  { color: #166534; background: rgba(22, 101, 52, 0.10); }
.dgw-diff-pos  { color: #b91c1c; background: rgba(185, 28, 28, 0.10); }
.dgw-diff-zero { color: var(--dgw-text-muted); }

/* Banners de mitad de tabla. */
.dgw-lb-banner-row {
	display: block;
	padding: 0;
	border-bottom: 1px solid var(--dgw-border);
}
.dgw-lb-banner-cell {
	display: block;
	width: 100%;
}

/* Compat: clases viejas que pudieran sobrevivir en cache de fragmento. */
.dgw-medal { display: none; }
.dgw-pos-num {
	font-weight: 700;
	color: var(--dgw-text);
}

/* ====================================================================
 * RESPONSIVE — colapsa columnas auxiliares en pantallas menores a 1024px
 * (incluye mobile portrait, mobile landscape y tablet portrait/landscape
 * estándar). v3.7.33: antes era 719px lo que dejaba a tablets y mobile
 * landscape con la tabla desktop completa sin lugar para el nombre del
 * jugador — el avatar quedaba pegado al club. Solo desktop ≥1024px
 * conserva la tabla en formato columnas (Pos/Jugador/Club/Idx/Dif/V/Pts/Coins).
 *
 * Mantiene logo club + idx + coins visibles bajo el nombre como chips.
 * ==================================================================== */
.dgw-show-sm { display: none; }
/* v3.8.85 — La pastilla "Mejor" bajo puntos es exclusiva de mobile.
 * Global oculta; el media query (max-width:1023px) la muestra en flex.
 * Definida ACÁ (antes del media query) para que en mobile gane la
 * regla del media query por orden de cascada. */
.dgw-col-points-best { display: none; }

@media (max-width: 1023px) {
	.dgw-hide-sm { display: none !important; }
	.dgw-show-sm { display: block; }

	.dgw-lb-table { --dgw-row-pad-x: 12px; }

	.dgw-lb-thead {
		padding: 10px var(--dgw-row-pad-x);
		gap: 6px;
	}
	.dgw-th-player { flex: 1; }
	.dgw-th-points { width: auto; min-width: 58px; }

	.dgw-lb-row {
		padding: 12px var(--dgw-row-pad-x);
		gap: 6px;
		align-items: flex-start; /* se alinea arriba para que la meta-row de abajo no descentre el avatar */
	}
	.dgw-pos-label {
		width: 36px;
		font-size: 13px;
		padding-top: 10px;
	}
	.dgw-player-link {
		gap: 10px;
		align-items: flex-start;
		flex: 1 1 auto;
		min-width: 0;
	}
	.dgw-player-avatar-wrap {
		width: 40px !important;
		height: 40px !important;
		max-width: 40px !important;
		max-height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
		flex: 0 0 40px !important;
	}
	.dgw-player-name-wrap {
		flex: 1 1 auto;
		min-width: 0;
	}
	.dgw-player-name-row { gap: 6px; }
	.dgw-player-team-badge {
		width: 28px;
		height: 28px;
	}
	.dgw-player-name {
		font-size: 14px;
		white-space: normal; /* permitir wrap del nombre largo en mobile/tablet */
		overflow-wrap: anywhere;
	}
	.dgw-player-team { font-size: 11px; }

	/* Mostrar la meta-row con idx + coins + club en mobile/tablet. */
	.dgw-player-meta-row {
		display: flex;
	}

	.dgw-col-points {
		width: auto;
		min-width: 52px;
		padding-top: 12px; /* alinear con el centro del bloque avatar+nombre */
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 4px;
	}
	/* v3.8.85 — Puntos un poco más grandes en mobile (eran 15px). */
	.dgw-col-points strong { font-size: 19px; }

	/* v3.8.85 — "Mejor / Dif." como sub-dato bajo los puntos SOLO en
	 * mobile. Reemplaza el enfoque de columna que rompía el nombre en 3
	 * filas. Compacto, alineado a la derecha bajo los puntos. */
	.dgw-col-points-best {
		display: flex;
		align-items: center;
		gap: 4px;
		font-size: 11px;
		line-height: 1;
		white-space: nowrap;
	}
	.dgw-col-points-best-lbl {
		color: var(--dgw-text-muted);
		text-transform: uppercase;
		letter-spacing: 0.3px;
		font-size: 10px;
	}
	.dgw-col-points-best .dgw-diff {
		font-size: 11px;
		padding: 1px 6px;
	}
}

/* ====================================================================
 * TABS — estilo PILL idéntico a los botones de paginación.
 * Todos los tabs (etapas/fechas, género, categorías) usan el mismo botón:
 *   - Inactivo: fondo transparente, borde gris, texto gris.
 *   - Hover: borde accent, texto accent, fondo accent-soft.
 *   - Activo: fondo accent, texto blanco, borde accent (color principal del desafío).
 * Esto unifica completamente el lenguaje visual con los botones .dgw-lb-pag-*.
 * ==================================================================== */

/* Contenedores: centrados, sin línea inferior (los pills se ven solos).
 * Cada barra de tabs tiene su propio padding vertical y aire alrededor para
 * que la jerarquía Fecha > Género > Categoría se lea de un vistazo.
 * v3.8.49: fondos TRANSPARENTES en todas las barras de tabs para
 *   respetar el color de fondo del sitio. La jerarquía Fecha > Género >
 *   Categoría se sigue leyendo por el tamaño/espaciado de los pills. */
.dgw-lb-tabs-scroller {
	background: transparent;
	border-bottom: 0;
}

/* NIVEL 1 — Fechas / Etapas (más prominente: pill ligeramente más grande).
 * v3.8.50 — Sin fondos por nivel; la jerarquía ahora se lee por ESPACIO
 * vertical generoso + un divisor fino entre niveles. */
.dgw-lb-tabs-stages {
	display: flex;
	flex-wrap: wrap;
	background: transparent;
	gap: 8px;
	padding: 20px 16px 18px;
	justify-content: center;
	border-bottom: 0;
}
.dgw-lb-tabs-stages .dgw-lb-tab {
	font-size: 13px;
	font-weight: 600;
	padding: 9px 18px;
}

/* NIVEL 2 — Género. Más aire arriba y un divisor fino que lo separa de
 * las fechas, para que se entienda que es un sub-filtro. */
.dgw-lb-tabs-genders {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 18px 16px 14px;
	margin-top: 4px;
	justify-content: center;
	background: transparent;
	border-top: 0;
}
button.dgw-lb-gender-tab,
.dgw-lb-gender-tab {
	font-size: 13px;
	font-weight: 600;
	padding: 8px 16px;
}

/* NIVEL 3 — Categorías (más pequeño, agrupado debajo del género).
 * Separado del género con un divisor aún más sutil. */
.dgw-lb-tabs-cats {
	display: flex;
	flex-wrap: wrap;
	background: transparent;
	gap: 6px;
	padding: 14px 16px 20px;
	justify-content: center;
	border-bottom: 0;
	border-top: 0;
}
.dgw-lb-tabs-cats .dgw-lb-tab {
	font-size: 12px;
	font-weight: 500;
	padding: 6px 12px;
}

/* Separador visual sutil entre el bloque de tabs y el resto */
.dgw-lb-tabs-genders + .dgw-lb-tabs-scroller-cats,
.dgw-lb-tabs-stages + .dgw-lb-tabs-genders {
	border-top: 0;
}

/* ESTILO BASE PILL — etapas, categorías y género comparten todo */
.dgw-lb-tabs-stages .dgw-lb-tab,
.dgw-lb-tabs-cats .dgw-lb-tab,
button.dgw-lb-gender-tab,
.dgw-lb-gender-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	background-image: none;
	border: 1px solid var(--dgw-border);
	border-radius: 6px;
	color: var(--dgw-text-muted);
	padding: 8px 14px;
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.2px;
	text-transform: none;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
	font-family: inherit;
	white-space: nowrap;
	box-shadow: none;
	text-shadow: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
	flex-direction: row; /* override del .dgw-lb-tab base que era column */
	flex: 0 0 auto;
}

/* HOVER */
.dgw-lb-tabs-stages .dgw-lb-tab:hover,
.dgw-lb-tabs-cats .dgw-lb-tab:hover,
button.dgw-lb-gender-tab:hover,
.dgw-lb-gender-tab:hover {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: var(--dgw-accent-soft);
	background-image: none;
}

/* FOCUS */
.dgw-lb-tabs-stages .dgw-lb-tab:focus-visible,
.dgw-lb-tabs-cats .dgw-lb-tab:focus-visible,
button.dgw-lb-gender-tab:focus-visible,
.dgw-lb-gender-tab:focus-visible {
	outline: 2px solid var(--dgw-accent);
	outline-offset: 2px;
}

/* ACTIVO — color principal del desafío */
.dgw-lb-tabs-stages .dgw-lb-tab.active,
.dgw-lb-tabs-cats .dgw-lb-tab.active,
button.dgw-lb-gender-tab.active,
.dgw-lb-gender-tab.active {
	background: var(--dgw-accent);
	background-image: none;
	border-color: var(--dgw-accent);
	color: #fff;
	font-weight: 700;
	box-shadow: none;
}

/* El .dgw-lb-tab base era flex column (con <small> abajo). Ahora ponemos
 * el small inline (al lado), tipo "Fecha #2 (3)" o lo escondemos si queda mal. */
.dgw-lb-tab small {
	font-size: 11px;
	font-weight: 500;
	margin-top: 0;
	margin-left: 6px;
	opacity: 0.85;
	color: inherit;
	text-transform: none;
	letter-spacing: 0;
}
.dgw-lb-tab.active small {
	color: inherit;
	opacity: 0.9;
}

/* El género ya NO ocupa flex:1 — ahora son pills compactos. */
button.dgw-lb-gender-tab,
.dgw-lb-gender-tab {
	flex: 0 0 auto;
}

@media (max-width: 600px) {
	/* MOBILE — los tabs van en una sola fila con scroll horizontal libre.
	 * Sin mask de fade ni auto-scroll: el usuario ve los pills de izquierda
	 * a derecha como en cualquier scroll normal. El fade lateral se simula
	 * con un :before/:after en el wrapper del scroller (no en el scroll
	 * mismo) para que no obstruya pills cuando llegás al borde. */

	.dgw-lb-tabs-stages,
	.dgw-lb-tabs-cats,
	.dgw-lb-tabs-genders,
	.dgw-lb-tabs-scroller .dgw-lb-tabs-stages,
	.dgw-lb-tabs-scroller .dgw-lb-tabs-cats,
	/* v3.8.88 — El Interclubes usa .dgw-lb-tabs (con .dgw-clubs-lb-*)
	 * dentro de .dgw-lb-tabs-scroller. Sin esta línea esas barras NO
	 * recibían el scroll horizontal en mobile y los pills se pisaban
	 * (regiones, etapas, categorías del Interclubes). Cubrimos cualquier
	 * .dgw-lb-tabs dentro de un scroller, de forma genérica. */
	.dgw-lb-tabs-scroller .dgw-lb-tabs {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		justify-content: flex-start !important;
		position: relative;
		padding-left: 16px;
		padding-right: 16px;
	}
	.dgw-lb-tabs-stages::-webkit-scrollbar,
	.dgw-lb-tabs-cats::-webkit-scrollbar,
	.dgw-lb-tabs-genders::-webkit-scrollbar,
	.dgw-lb-tabs-scroller .dgw-lb-tabs::-webkit-scrollbar { display: none; }

	/* Pills no se encogen — cada uno mantiene su ancho natural */
	.dgw-lb-tabs-stages .dgw-lb-tab,
	.dgw-lb-tabs-cats .dgw-lb-tab,
	button.dgw-lb-gender-tab,
	.dgw-lb-gender-tab,
	/* v3.8.88 — El Interclubes usa .dgw-lb-pag-num como pills dentro del
	 * scroller. Sin flex:0 0 auto se comprimían y se pisaban en mobile. */
	.dgw-lb-tabs-scroller .dgw-lb-tabs .dgw-lb-pag-num {
		flex: 0 0 auto;
		white-space: nowrap;
	}

	/* NIVEL 1 — Fechas/Etapas (más prominente) */
	.dgw-lb-tabs-stages {
		padding-top: 12px;
		padding-bottom: 6px;
		gap: 6px;
	}
	.dgw-lb-tabs-stages .dgw-lb-tab {
		padding: 8px 16px;
		font-size: 13px;
		font-weight: 600;
	}

	/* NIVEL 2 — Género (intermedio) */
	.dgw-lb-tabs-genders {
		padding-top: 6px;
		padding-bottom: 6px;
		gap: 6px;
		background: transparent;
		margin: 0;
		border-radius: 0;
	}
	button.dgw-lb-gender-tab,
	.dgw-lb-gender-tab {
		padding: 6px 14px;
		font-size: 12px;
		font-weight: 600;
	}

	/* NIVEL 3 — Categorías (más sutil) */
	.dgw-lb-tabs-cats {
		padding-top: 6px;
		padding-bottom: 12px;
		gap: 5px;
	}
	.dgw-lb-tabs-cats .dgw-lb-tab {
		padding: 5px 11px;
		font-size: 11px;
		font-weight: 500;
	}

	.dgw-lb-tab small { font-size: 10px; margin-left: 4px; }

	/* FADE LATERAL — pseudo-elementos sticky en los bordes del scroller.
	 * Como están en `position: sticky`, no se mueven con el scroll, y como
	 * tienen `pointer-events: none`, no bloquean ningún tap. NO obstruyen
	 * el primer/último pill porque cuando estás `at-start`/`at-end` los
	 * ocultamos vía clase. */
	.dgw-lb-tabs-stages > .dgw-lb-tab:first-child,
	.dgw-lb-tabs-cats > .dgw-lb-tab:first-child,
	.dgw-lb-tabs-genders > .dgw-lb-gender-tab:first-child {
		margin-left: 0;
	}
	.dgw-lb-tabs-stages > .dgw-lb-tab:last-child,
	.dgw-lb-tabs-cats > .dgw-lb-tab:last-child,
	.dgw-lb-tabs-genders > .dgw-lb-gender-tab:last-child {
		margin-right: 0;
	}
}

/* ====================================================================
 * BOTONES Y FLASH GLOBALES (usados por varios shortcodes)
 * Mantenidos aquí para retrocompatibilidad con federation-home, etc.
 * ==================================================================== */
.dgw-btn-primary {
	display: inline-block;
	background: #0a3d2c;
	color: #fff;
	border: 0;
	padding: 11px 20px;
	border-radius: 8px;
	cursor: pointer;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: background-color 0.15s;
}
.dgw-btn-primary:hover { background: #155e3f; color: #fff; }

.dgw-flash {
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 14px;
	border: 1px solid transparent;
	line-height: 1.4;
}
.dgw-flash-success {
	background: #d1fae5;
	color: #065f46;
	border-color: #a7f3d0;
}
.dgw-flash-error {
	background: #fee2e2;
	color: #991b1b;
	border-color: #fca5a5;
}
.dgw-flash-info {
	background: #dbeafe;
	color: #1e40af;
	border-color: #93c5fd;
}

/* ====================================================================
 * PLAYER ACCOUNT (shortcode dgw_player_account) — v3.7.32
 * Diseño unificado con perfil público: hero rico, accent color heredado,
 * tabs con borde inferior, cards de stats con jerarquía.
 *
 * El accent se pasa via inline style="--dgw-accent: #XXX" en el wrapper.
 * ==================================================================== */
.dgw-account {
	--dgw-accent: #0a3d2c; /* fallback si no se inyecta inline */
	max-width: 100%;
	margin: 1.5em 0;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 4px 28px rgba(15, 23, 42, 0.08);
	overflow: hidden;
}

/* HERO ----------------------------------------------------------------- */
.dgw-account-hero {
	background: linear-gradient(
		135deg,
		var(--dgw-accent) 0%,
		color-mix(in srgb, var(--dgw-accent) 78%, black) 100%
	);
	color: #fff;
	padding: 28px 28px 22px;
}
.dgw-account-hero-main {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.dgw-account-avatar {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid rgba(255, 255, 255, 0.35);
	background: #f1f5f9;
	flex-shrink: 0;
}
.dgw-account-meta {
	flex: 1;
	min-width: 0;
}
.dgw-account-name {
	margin: 0;
	color: #fff;
	font-size: 1.55em;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
.dgw-account-license {
	font-size: 0.6em;
	font-weight: 600;
	padding: 3px 8px;
	background: rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	letter-spacing: 0.02em;
}
.dgw-account-sub {
	margin: 6px 0 14px;
	color: rgba(255, 255, 255, 0.88);
	font-size: 14px;
}

.dgw-account-hero-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.dgw-account-hero-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.15s ease;
}
.dgw-account-hero-btn-primary {
	background: rgba(255, 255, 255, 0.95);
	color: var(--dgw-accent);
}
.dgw-account-hero-btn-primary:hover {
	background: #fff;
	transform: translateY(-1px);
	color: var(--dgw-accent);
}
.dgw-account-hero-btn-ghost {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.3);
}
.dgw-account-hero-btn-ghost:hover {
	background: rgba(255, 255, 255, 0.22);
	color: #fff;
}

/* KPIs en el hero (matchea dgw-hero-stats del perfil público) */
.dgw-account-hero-stats {
	margin: 22px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 6px;
}
.dgw-account-hero-stats > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.dgw-account-hero-stats dt {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: rgba(255, 255, 255, 0.75);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 5px;
}
.dgw-account-hero-stats dd {
	margin: 0;
	font-size: 26px;
	font-weight: 700;
	color: #fff;
	line-height: 1.1;
}
.dgw-account-hero-stat-coins dd {
	color: #fbbf24;
}
.dgw-account-hero-stats .dgw-coin-icon {
	width: 14px;
	height: 14px;
	vertical-align: middle;
}

/* TABS ---------------------------------------------------------------- */
.dgw-account-tabs {
	display: flex;
	gap: 4px;
	background: #fff;
	padding: 0 20px;
	overflow-x: auto;
	border-bottom: 1px solid #e2e8f0;
	scrollbar-width: none;
}
.dgw-account-tabs::-webkit-scrollbar { display: none; }
.dgw-account-tabs a {
	padding: 14px 16px;
	color: #64748b;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	border-bottom: 2.5px solid transparent;
	white-space: nowrap;
	transition: color 0.15s, border-color 0.15s;
}
.dgw-account-tabs a:hover { color: var(--dgw-accent); }
.dgw-account-tabs a.is-active {
	color: var(--dgw-accent);
	border-bottom-color: var(--dgw-accent);
}

.dgw-account-flash {
	margin: 18px 24px 0;
}

.dgw-account-tabpanel {
	padding: 28px 24px;
}

/* OVERVIEW ------------------------------------------------------------ */
.dgw-account-overview {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.dgw-account-cta-card {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 20px;
	background: color-mix(in srgb, var(--dgw-accent) 5%, white);
	border: 1px solid color-mix(in srgb, var(--dgw-accent) 18%, white);
	border-radius: 12px;
	flex-wrap: wrap;
}
.dgw-account-cta-card > div:first-child {
	flex: 1;
	min-width: 220px;
}
.dgw-account-cta-title {
	font-size: 18px;
	font-weight: 700;
	color: #0f172a;
	margin-bottom: 4px;
}
.dgw-account-cta-sub {
	font-size: 14px;
	color: #64748b;
	margin: 0 0 10px;
	line-height: 1.5;
}
.dgw-account-cta-url code {
	display: inline-block;
	padding: 5px 10px;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--dgw-accent) 20%, white);
	border-radius: 6px;
	font-size: 12px;
	color: var(--dgw-accent);
	word-break: break-all;
}
.dgw-account-cta-card .dgw-account-hero-btn-primary {
	background: var(--dgw-accent);
	color: #fff;
	padding: 11px 20px;
}
.dgw-account-cta-card .dgw-account-hero-btn-primary:hover {
	background: color-mix(in srgb, var(--dgw-accent) 88%, black);
	color: #fff;
}

.dgw-account-quick-actions {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 12px;
}
.dgw-account-action {
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 16px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	text-decoration: none;
	color: inherit;
	transition: all 0.15s ease;
}
.dgw-account-action:hover {
	border-color: var(--dgw-accent);
	background: #fff;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}
.dgw-account-action-icon {
	font-size: 24px;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--dgw-accent) 10%, white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.dgw-account-action-title {
	display: block;
	font-weight: 700;
	font-size: 14.5px;
	color: #0f172a;
}
.dgw-account-action-sub {
	display: block;
	font-size: 12.5px;
	color: #64748b;
	margin-top: 2px;
	line-height: 1.4;
}

/* RANKINGS ------------------------------------------------------------ */
.dgw-account-empty {
	text-align: center;
	padding: 40px 20px;
	color: #64748b;
}
.dgw-account-empty-icon {
	font-size: 48px;
	margin-bottom: 12px;
}
.dgw-account-empty h3 {
	margin: 0 0 6px;
	font-size: 18px;
	color: #0f172a;
}
.dgw-account-empty p {
	margin: 0;
	font-size: 14px;
}

.dgw-account-rankings {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 14px;
}
.dgw-account-ranking-card {
	padding: 18px;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	border-left: 4px solid var(--dgw-accent);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.dgw-account-ranking-card:hover {
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.07);
	transform: translateY(-1px);
}
.dgw-account-ranking-card header {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 14px;
}
.dgw-account-ranking-pos {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--dgw-accent) 12%, white);
	color: var(--dgw-accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 16px;
}
.dgw-account-ranking-title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.3;
}
.dgw-account-ranking-cat {
	margin: 2px 0 0;
	font-size: 12.5px;
	color: #64748b;
}
.dgw-account-ranking-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	padding-top: 14px;
	border-top: 1px solid #f1f5f9;
	margin: 0;
}
.dgw-account-ranking-stats > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.dgw-account-ranking-stats dt {
	font-size: 10.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #94a3b8;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 4px;
}
.dgw-account-ranking-stats dd {
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	color: #0f172a;
}
.dgw-account-ranking-coins dd {
	color: #d97706;
}
.dgw-account-ranking-stats .dgw-coin-icon {
	width: 12px;
	height: 12px;
}

/* FORMS --------------------------------------------------------------- */
.dgw-account-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 560px;
}
.dgw-account-form-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.dgw-account-form-label {
	font-weight: 600;
	color: #0f172a;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.dgw-account-form input[type="text"],
.dgw-account-form input[type="email"],
.dgw-account-form input[type="password"],
.dgw-account-form input[type="file"],
.dgw-account-form textarea,
.dgw-account-form select {
	padding: 11px 14px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	font-size: 14.5px;
	font-family: inherit;
	background: #fff;
	color: #0f172a;
	transition: border-color 0.15s, box-shadow 0.15s;
	box-sizing: border-box;
	width: 100%;
}
.dgw-account-form input:focus,
.dgw-account-form textarea:focus,
.dgw-account-form select:focus {
	outline: none;
	border-color: var(--dgw-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--dgw-accent) 15%, transparent);
}
.dgw-account-form input[type="file"] {
	padding: 8px;
	background: #f8fafc;
}
.dgw-account-form textarea {
	resize: vertical;
	min-height: 80px;
}
.dgw-account-form .dgw-hint {
	font-size: 12.5px;
	color: #94a3b8;
	margin-top: 2px;
}

.dgw-account-form-checkbox {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	flex-direction: row !important;
	font-weight: normal !important;
	font-size: 14px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	color: #334155;
}
.dgw-account-form-checkbox input[type="checkbox"] {
	accent-color: var(--dgw-accent);
	width: 16px;
	height: 16px;
	margin-top: 2px;
	flex-shrink: 0;
}

.dgw-account-form-actions {
	margin-top: 4px;
}

.dgw-account-btn {
	padding: 12px 22px;
	border: none;
	border-radius: 10px;
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.15s ease;
}
.dgw-account-btn-primary {
	background: var(--dgw-accent);
	color: #fff;
	box-shadow: 0 2px 8px color-mix(in srgb, var(--dgw-accent) 28%, transparent);
}
.dgw-account-btn-primary:hover {
	background: color-mix(in srgb, var(--dgw-accent) 88%, black);
	box-shadow: 0 4px 14px color-mix(in srgb, var(--dgw-accent) 35%, transparent);
}
.dgw-account-btn-danger {
	background: #dc2626;
	color: #fff;
	box-shadow: 0 2px 8px rgba(220, 38, 38, 0.25);
}
.dgw-account-btn-danger:hover {
	background: #b91c1c;
}

/* Avatar upload */
.dgw-avatar-upload {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.dgw-avatar-preview {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #e2e8f0;
	flex-shrink: 0;
}
.dgw-avatar-upload-input {
	flex: 1;
	min-width: 200px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

/* Readonly card (datos del padrón) */
.dgw-account-readonly-card {
	padding: 18px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
}
.dgw-account-readonly-title {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #64748b;
	margin-bottom: 12px;
}
.dgw-account-readonly-list {
	display: grid;
	gap: 10px;
	margin: 0 0 10px;
}
.dgw-account-readonly-list > div {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 12px;
	font-size: 14px;
}
.dgw-account-readonly-list dt {
	color: #64748b;
	font-weight: 500;
	margin: 0;
}
.dgw-account-readonly-list dd {
	color: #0f172a;
	font-weight: 600;
	margin: 0;
}

/* Sección cards (security tab) */
.dgw-account-section-card {
	padding: 22px;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	margin-bottom: 20px;
}
.dgw-account-section-card h3 {
	margin: 0 0 14px;
	font-size: 17px;
	color: #0f172a;
}
.dgw-account-section-card-danger {
	border-color: #fecaca;
	background: #fef2f2;
}
.dgw-account-section-card-danger h3 {
	color: #b91c1c;
}

.dgw-account-email-status {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	background: #f8fafc;
	border-radius: 10px;
	flex-wrap: wrap;
}
.dgw-account-email-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #94a3b8;
	margin-bottom: 2px;
}
.dgw-account-email-status strong {
	color: #0f172a;
	font-size: 14.5px;
}
.dgw-account-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
}
.dgw-account-badge-success {
	background: #d1fae5;
	color: #065f46;
}
.dgw-account-badge-warning {
	background: #fef3c7;
	color: #92400e;
}

/* Mobile */
@media (max-width: 640px) {
	.dgw-account-hero {
		padding: 22px 18px 18px;
	}
	.dgw-account-hero-main {
		flex-direction: column;
		text-align: center;
		gap: 14px;
	}
	.dgw-account-avatar {
		width: 80px;
		height: 80px;
	}
	.dgw-account-name {
		justify-content: center;
		font-size: 1.35em;
	}
	.dgw-account-hero-actions {
		justify-content: center;
	}
	.dgw-account-hero-stats {
		grid-template-columns: repeat(2, 1fr);
	}
	.dgw-account-tabpanel {
		padding: 20px 16px;
	}
	.dgw-account-ranking-stats {
		grid-template-columns: repeat(2, 1fr);
	}
	.dgw-account-cta-card {
		flex-direction: column;
		align-items: stretch;
	}
	.dgw-account-readonly-list > div {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* Tabs del leaderboard — contenedor base (estilos visuales en bloque v2 arriba) */
.dgw-lb-tabs {
	display: flex;
	gap: 0;
	padding: 0;
	background: #fff;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	justify-content: center;
}
.dgw-lb-tabs::-webkit-scrollbar { display: none; }

/* (los paddings/gap de stages, cats y genders se definen en el bloque v2 arriba) */

/* Estilo base de tab — solo cursor y font, los layouts/colores van en v2 */
.dgw-lb-tab {
	flex-shrink: 0;
	cursor: pointer;
	font-family: inherit;
}
/* (estilos de .dgw-lb-tab small y mobile están en el bloque v2 arriba) */

.dgw-hidden { display: none !important; }


/* ============================================================
 * Scroller de tabs con flechas + indicador de overflow.
 * ============================================================ */
.dgw-lb-tabs-scroller {
	position: relative;
	display: flex;
	align-items: center;
	/* v3.8.52 — Transparente. Este bloque (más abajo en la cascada que el
	 * de v3.8.49) estaba pisando la transparencia con #fff y por eso el
	 * ranking principal SEGUÍA con rectángulos blancos en Fecha/Categorías. */
	background: transparent;
	border-bottom: 0;
}
.dgw-lb-tabs-scroller-stages {
	background: transparent;
}

/* Reset: la nav adentro ya no necesita su propio border-bottom y se centra */
.dgw-lb-tabs-scroller .dgw-lb-tabs {
	border-bottom: 0;
	flex: 1;
	min-width: 0;
	justify-content: center;
}

/* Botones de scroll: ocultos hasta que haya overflow.
 * v3.8.52 — Fondo translúcido para que no aparezca un cuadrado blanco
 * cuando hay overflow horizontal; el botón sigue siendo legible. */
.dgw-lb-scroll-btn {
	flex-shrink: 0;
	width: 36px;
	background: rgba(255, 255, 255, 0.0);
	border: 0;
	border-left: 0;
	color: var(--dgw-text-muted);
	font-size: 22px;
	font-weight: 700;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: center;
	transition: color 0.15s, background 0.15s;
	line-height: 1;
	padding: 0;
}
.dgw-lb-tabs-scroller-stages .dgw-lb-scroll-btn {
	background: transparent;
}
.dgw-lb-scroll-btn:hover {
	color: var(--dgw-accent);
	background: transparent;
}
.dgw-lb-scroll-prev {
	border-left: 0;
	border-right: 0;
}

/* Mostrar las flechas solo cuando hay overflow */
.dgw-lb-tabs-scroller.has-overflow .dgw-lb-scroll-btn {
	display: flex;
}
/* Ocultar la flecha del extremo si ya estamos al borde */
.dgw-lb-tabs-scroller.at-start .dgw-lb-scroll-prev {
	visibility: hidden;
}
.dgw-lb-tabs-scroller.at-end .dgw-lb-scroll-next {
	visibility: hidden;
}

/* Fade gradient — siempre blanco ahora que todos los scrollers son blancos */
.dgw-lb-tabs-scroller.has-overflow:not(.at-end)::after {
	content: "";
	position: absolute;
	right: 36px;
	top: 0;
	bottom: 0;
	width: 24px;
	background: linear-gradient(to right, transparent, #fff);
	pointer-events: none;
	z-index: 1;
}
.dgw-lb-tabs-scroller.has-overflow:not(.at-start)::before {
	content: "";
	position: absolute;
	left: 36px;
	top: 0;
	bottom: 0;
	width: 24px;
	background: linear-gradient(to left, transparent, #fff);
	pointer-events: none;
	z-index: 1;
}

/* En mobile escondemos las flechas; el touch scroll es suficiente,
   pero dejamos los fades como indicador visual. */
@media (max-width: 600px) {
	.dgw-lb-tabs-scroller .dgw-lb-scroll-btn {
		display: none !important;
	}
	.dgw-lb-tabs-scroller.has-overflow:not(.at-end)::after {
		right: 0;
	}
	.dgw-lb-tabs-scroller.has-overflow:not(.at-start)::before {
		left: 0;
	}
}

/* ============================================================
 * Buscador del leaderboard
 * ============================================================ */
.dgw-lb-search {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 360px;
	margin-top: 29px;
	margin-bottom: 29px;
	margin-left: auto;
	margin-right: auto;
}
.dgw-lb-search-icon {
	position: absolute;
	right: 14px;
	top: calc(50% - 8px);
	width: 16px;
	height: 16px;
	color: var(--dgw-text-muted);
	pointer-events: none;
	z-index: 2;
}
.dgw-lb-search-input {
	width: 100%;
	height: 40px;
	padding: 0 40px 0 16px;
	border: 1px solid var(--dgw-border);
	border-radius: 24px;
	font-size: 14px;
	font-family: inherit;
	color: var(--dgw-text);
	background: var(--dgw-bg-alt);
	outline: none;
	transition: border-color 0.15s, background 0.15s;
	-webkit-appearance: none;
	box-sizing: border-box;
	line-height: 40px;
}
.dgw-lb-search-input:focus {
	border-color: var(--dgw-accent);
	background: #fff;
	box-shadow: 0 0 0 3px var(--dgw-accent-soft);
}
.dgw-lb-search-input::-webkit-search-cancel-button { display: none; }
.dgw-lb-search-input::placeholder { color: var(--dgw-text-muted); opacity: 1; }

.dgw-lb-search-clear {
	position: absolute;
	right: 38px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: 0;
	background: transparent;
	color: var(--dgw-text-muted);
	cursor: pointer;
	border-radius: 50%;
	font-size: 13px;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0;
	z-index: 3;
	transition: background 0.15s, color 0.15s;
}
.dgw-lb-search-clear:hover {
	background: var(--dgw-border);
	color: var(--dgw-text);
}

@media (max-width: 600px) {
	.dgw-lb-search { max-width: 100%; }
}


/* ============================================================
 * Paginación del leaderboard
 * ============================================================ */
.dgw-lb-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	/* v3.8.83 — Fondo transparente para respetar el color del sitio,
	 * igual que el resto de las barras (tabs, header, tbody). Antes era
	 * #fff y dejaba una franja blanca al pie de TODOS los shortcodes. */
	background: transparent;
	border-top: 1px solid var(--dgw-border);
}
.dgw-lb-pag-info {
	font-size: 13px;
	color: var(--dgw-text-muted);
}
.dgw-lb-pag-info strong { color: var(--dgw-text); }
.dgw-lb-pag-controls {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}
.dgw-lb-pag-btn {
	background: transparent;
	border: 1px solid var(--dgw-border);
	color: var(--dgw-text);
	padding: 6px 12px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dgw-lb-pag-btn:hover:not(:disabled) {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: var(--dgw-accent-soft);
}
.dgw-lb-pag-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}
.dgw-lb-pag-pages {
	display: flex;
	gap: 2px;
	margin: 0 4px;
}
.dgw-lb-pag-num {
	min-width: 32px;
	height: 32px;
	background: transparent;
	border: 0;
	color: var(--dgw-text-muted);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	border-radius: 6px;
	font-family: inherit;
	padding: 0 6px;
	transition: background 0.15s, color 0.15s;
}
.dgw-lb-pag-num:hover {
	background: var(--dgw-accent-soft);
	color: var(--dgw-accent);
}
.dgw-lb-pag-num.active {
	background: var(--dgw-accent);
	color: #fff;
}
.dgw-lb-pag-ellipsis {
	color: var(--dgw-text-muted);
	padding: 0 4px;
	display: inline-flex;
	align-items: center;
}

@media (max-width: 600px) {
	.dgw-lb-pagination {
		flex-direction: column;
		gap: 10px;
		padding: 14px 12px;
	}
	.dgw-lb-pag-btn { font-size: 12px; padding: 5px 10px; }
	.dgw-lb-pag-num { min-width: 28px; height: 28px; font-size: 12px; }
}

/* ====================================================================
 * PERFIL DEL JUGADOR — rediseño v3.0.19 (mobile-first)
 * ==================================================================== */
.dgw-profile {
	--p-green: #0a3d2c;
	--p-green-light: #155e3f;
	--p-gold: #d4a017;
	--p-bronze: #b45309;
	--p-silver: #94a3b8;
	--p-bg: #ffffff;
	--p-bg-soft: #f8fafc;
	--p-border: #e2e8f0;
	--p-text: #0f172a;
	--p-muted: #64748b;

	max-width: 100%;
	margin: 1.5em 0;
	background: var(--p-bg);
	border-radius: 15px;
	/* No overflow:hidden — el menú de share necesita poder salirse del header. */
	border: 1px solid var(--p-border);
	box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: var(--p-text);
}
/* Que el hero respete las esquinas redondeadas superiores del wrapper */
.dgw-profile > .dgw-hero {
	border-top-left-radius: 14px;
	border-top-right-radius: 14px;
}

/* ============================================================
 * HERO — foto grande + identidad + KPIs (mobile-first)
 *
 * El color principal del hero se controla con dos CSS vars que
 * setea el template inline a partir del desafío activo del país
 * en contexto: --dgw-hero-accent y --dgw-hero-accent-dark. Si
 * el template no las setea (no debería pasar), caemos al verde
 * histórico del plugin para no romper la presentación.
 * ============================================================ */
.dgw-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	/* Las CSS vars --dgw-hero-accent y --dgw-hero-accent-dark se setean en
	 * .dgw-profile (padre) inline desde el template a partir del accent_color
	 * del desafío contextual. NO definimos defaults acá: si lo hiciéramos,
	 * la propiedad custom definida en este selector pisaría la heredada
	 * del padre (mayor especificidad de regla > herencia). El fallback al
	 * verde histórico va en el segundo argumento de var().
	 * `!important` defensivo: algunos temas (Astra/Elementor) inyectan
	 * background sobre <header> con alta especificidad. */
	background:
		linear-gradient(135deg, var(--dgw-hero-accent-dark, #073021), var(--dgw-hero-accent, #0a3d2c)),
		radial-gradient(ellipse at top right, rgba(212,160,23,0.2), transparent 60%) !important;
	color: #fff;
	/* No overflow:hidden — necesitamos que el menú de share se vea por fuera. */
}
.dgw-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><circle cx='40' cy='40' r='1.5' fill='%23ffffff' opacity='0.04'/></svg>");
	pointer-events: none;
}
.dgw-hero > * { position: relative; z-index: 1; }

/* Foto: sangre completa en mobile, lateral en desktop */
.dgw-hero-media {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 56px 24px 0;
}
.dgw-hero-photo {
	width: 180px;
	height: 180px;
	border-radius: 50%;
	object-fit: cover;
	border: 5px solid #fff;
	box-shadow: 0 12px 32px rgba(0,0,0,0.3);
	background: #f1f5f9;
	display: block;
}

.dgw-hero-info {
	padding: 14px 24px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: center;
}
.dgw-hero-top {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	font-weight: 700;
}
.dgw-hero-license {
	display: inline-block;
	background: rgba(255,255,255,0.18);
	padding: 3px 10px;
	border-radius: 12px;
	color: #fff;
	font-family: ui-monospace, SFMono-Regular, monospace;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	vertical-align: middle;
	margin-left: 8px;
	position: relative;
	top: -3px;
}
.dgw-hero-fed {
	color: rgba(255,255,255,0.85);
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	font-weight: 700;
	margin-top: 4px;
}
/* v3.8.93 — Insignias del jugador en el header del perfil. */
.dgw-hero-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
}
.dgw-hero-badge {
	height: 44px;
	width: auto;
	max-width: 120px;
	object-fit: contain;
	background: rgba(255,255,255,0.92);
	border-radius: 8px;
	padding: 5px 8px;
	display: block;
}
.dgw-hero-badge-link {
	display: inline-flex;
	border-bottom: 0 !important;
}
.dgw-hero-badge-link:hover .dgw-hero-badge { opacity: 0.88; }
@media (max-width: 1023px) {
	.dgw-hero-badge { height: 36px; max-width: 100px; }
}
.dgw-hero-name {
	margin: 0;
	color: #fff;
	font-size: 1.6em;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
@media (max-width: 600px) {
	.dgw-hero-name {
		font-size: 1.35em;
	}
	.dgw-hero-license {
		display: inline-block;
		margin-left: 6px;
		font-size: 11px;
		padding: 2px 8px;
	}
}
.dgw-hero-club {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 4px auto 0;
	background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.18);
	padding: 6px 18px 6px 6px;
	border-radius: 100px;
	backdrop-filter: blur(4px);
}
.dgw-hero-club-logo {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #fff;
	padding: 8px;
	object-fit: contain;
	flex-shrink: 0;
}
.dgw-hero-club-text {
	display: flex;
	flex-direction: column;
	text-align: left;
	gap: 0;
}
.dgw-hero-club-label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: rgba(255,255,255,0.7);
	font-weight: 700;
}
.dgw-hero-club-name {
	font-size: 14px;
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
}
.dgw-hero-bio {
	margin: 4px 0 0;
	color: rgba(255,255,255,0.9);
	font-size: 14px;
	line-height: 1.45;
	font-style: italic;
}

/* KPIs estilo PGA Tour: línea horizontal con divisores */
.dgw-hero-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	margin: 10px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid rgba(255,255,255,0.18);
}
.dgw-hero-stats > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 8px;
	text-align: center;
	position: relative;
}
.dgw-hero-stats > div + div::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	bottom: 12px;
	width: 1px;
	background: rgba(255,255,255,0.15);
}
.dgw-hero-stats dt {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: rgba(255,255,255,0.65);
	margin: 0;
}
.dgw-hero-stats dd {
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	color: #fff;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.dgw-hero-stat-highlight dd {
	color: var(--p-gold);
}

/* Desktop: hero a dos columnas más compacto */
@media (min-width: 768px) {
	.dgw-hero {
		flex-direction: row;
		align-items: center;
		min-height: auto;
		padding: 0;
	}
	.dgw-hero-media {
		flex: 0 0 auto;
		padding: 40px 0 40px 36px;
		align-items: center;
	}
	.dgw-hero-photo {
		width: 220px;
		height: 220px;
	}
	.dgw-hero-info {
		flex: 1;
		padding: 40px 40px;
		text-align: left;
		justify-content: center;
		gap: 14px;
	}
	.dgw-hero-top { justify-content: flex-start; }
	.dgw-hero-name { font-size: 2.4em; }
	.dgw-hero-club {
		margin: 6px 0 0;
		padding: 10px 24px 10px 10px;
	}
	.dgw-hero-club-logo {
		width: 72px;
		height: 72px;
	}
	.dgw-hero-club-name { font-size: 15px; }
	.dgw-hero-stats {
		grid-template-columns: repeat(4, 1fr);
		max-width: 600px;
		margin-top: 14px;
		padding-top: 16px;
	}
	.dgw-hero-stats > div { text-align: left; padding: 10px 24px 10px 0; }
	.dgw-hero-stats > div + div { padding-left: 24px; }
	.dgw-hero-stats > div + div::before { top: 4px; bottom: 4px; }
	.dgw-hero-stats dd { font-size: 30px; }
}

/* ============================================================
 * BARRA DE TOTALES (debajo del hero)
 * ============================================================ */
.dgw-totals {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--p-border);
	border-bottom: 1px solid var(--p-border);
}
.dgw-total {
	background: var(--p-bg);
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
	text-align: center;
}
.dgw-total-label {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--p-muted);
}
.dgw-total-value {
	font-size: 22px;
	font-weight: 800;
	color: var(--p-text);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.dgw-total-coins .dgw-total-value { color: var(--p-gold); }

@media (min-width: 768px) {
	.dgw-totals { grid-template-columns: repeat(4, 1fr); }
	.dgw-total { padding: 18px 20px; align-items: flex-start; text-align: left; }
	.dgw-total-value { font-size: 28px; }
}

/* ============================================================
 * SECCIONES
 * ============================================================ */
.dgw-section {
	padding: 20px 16px;
	border-top: 1px solid var(--p-border);
}
.dgw-section:first-of-type { border-top: 0; }
.dgw-section-head {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 14px;
}
.dgw-section-head h2 {
	margin: 0;
	font-size: 1em;
	font-weight: 800;
	color: var(--p-text);
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.dgw-section-count {
	font-size: 11px;
	background: var(--p-bg-soft);
	color: var(--p-muted);
	padding: 2px 9px;
	border-radius: 12px;
	font-weight: 700;
}

@media (min-width: 768px) {
	.dgw-section { padding: 26px 32px; }
	.dgw-section-head h2 { font-size: 1.05em; }
}

/* ============================================================
 * RANKING CARDS — rediseño v3.0.25
 * Posición a la izquierda como anclaje visual + datos a la derecha
 * ============================================================ */
.dgw-rankings {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
/* Cualquier hijo del grid que no sea una card real queda oculto. */
.dgw-rankings > *:not(.dgw-rc) {
	display: none !important;
}
.dgw-rankings > .dgw-rc:empty {
	display: none !important;
}
.dgw-rc {
	display: flex;
	align-items: stretch;
	background: var(--p-bg);
	border: 1px solid var(--p-border);
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: all 0.15s;
	min-height: 170px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
	position: relative;
}
.dgw-rc:hover {
	border-color: var(--p-green);
	box-shadow: 0 8px 24px rgba(10, 61, 44, 0.12);
	transform: translateY(-2px);
}
/* Bloque de posición — más ancho y con font-size que se adapta a la
 * cantidad de dígitos. Para 1-2 dígitos usamos 64px, para 3 bajamos a
 * 48px, para 4+ a 38px. Esto evita el recorte en posiciones grandes (#326). */
.dgw-rc-pos {
	flex: 0 0 130px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--p-bg-soft);
	border-right: 1px solid var(--p-border);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	padding: 16px 10px;
	gap: 2px;
}
.dgw-rc-pos-hash {
	font-size: 22px;
	opacity: 0.5;
	align-self: flex-start;
	margin-top: 12px;
}
.dgw-rc-pos-num {
	font-size: 64px;
	letter-spacing: -0.03em;
}
/* Auto-shrink por longitud de número. */
.dgw-rc-pos[data-digits="3"] .dgw-rc-pos-num { font-size: 52px; }
.dgw-rc-pos[data-digits="4"] .dgw-rc-pos-num { font-size: 40px; }
.dgw-rc-pos[data-digits="5"] .dgw-rc-pos-num { font-size: 32px; }

.dgw-pos-podium { background: linear-gradient(135deg, #fef3c7, #fde68a); }
.dgw-pos-podium .dgw-rc-pos-num { color: var(--p-gold); }
.dgw-pos-top10  { background: linear-gradient(135deg, #d1fae5, #a7f3d0); }
.dgw-pos-top10  .dgw-rc-pos-num { color: var(--p-green); }
.dgw-pos-top50  .dgw-rc-pos-num { color: var(--p-text); }
.dgw-pos-low    .dgw-rc-pos-num { color: var(--p-muted); }

/* Body de la card */
.dgw-rc-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 16px 16px 14px;
	gap: 12px;
	justify-content: space-between;
}
.dgw-rc-head {
	display: flex;
	align-items: center;
	gap: 12px;
}
.dgw-rc-emblem {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	object-fit: contain;
	background: var(--p-bg-soft);
	border-radius: 8px;
	padding: 4px;
	order: 2;
}
.dgw-rc-name {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	order: 1;
}
.dgw-rc-cat-main {
	font-size: 19px;
	font-weight: 800;
	color: var(--p-text);
	line-height: 1.2;
	letter-spacing: -0.01em;
	white-space: normal;
	overflow: visible;
	text-overflow: unset;
	/* v3.8.84 — Antes era word-break:break-word, que en cards angostas
	 * (tablet) partía el texto LETRA POR LETRA en vertical. Con normal +
	 * overflow-wrap el texto fluye en líneas normales y solo corta
	 * palabras larguísimas si no hay más remedio. */
	word-break: normal;
	overflow-wrap: anywhere;
	display: block;
}
.dgw-rc-challenge {
	font-size: 13px;
	font-weight: 800;
	color: var(--p-text);
	white-space: normal;
	overflow: visible;
	text-overflow: unset;
	word-break: break-word;
	line-height: 1.25;
}
.dgw-rc-cat {
	font-size: 12px;
	color: var(--p-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 600;
}
/* Stats: 2 o 3 en línea, números grandes */
.dgw-rc-stats {
	display: flex;
	gap: 0;
	border-top: 1px solid var(--p-border);
	padding-top: 10px;
	margin: 0 -4px;
}
.dgw-rc-stat {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	padding: 0 8px;
	position: relative;
}
.dgw-rc-stat + .dgw-rc-stat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 4px;
	width: 1px;
	background: var(--p-border);
}
.dgw-rc-num {
	font-size: 24px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--p-text);
	line-height: 1;
}
.dgw-rc-stat-coins .dgw-rc-num { color: var(--p-gold); }
.dgw-rc-lbl {
	font-size: 10px;
	color: var(--p-muted);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	font-weight: 800;
}

@media (min-width: 600px) {
	.dgw-rankings { grid-template-columns: repeat(2, 1fr); }
}
/* v3.8.84 — FIX TABLET: entre 600px y 1000px, 2 columnas dejaban cada
 * card demasiado angosta y el texto de la categoría se rompía vertical
 * (letra por letra), como se veía en tablet. En ese rango forzamos 1
 * columna a ancho completo (la card se ve perfecta así). Arriba de
 * 1000px ya hay espacio para 2. */
@media (min-width: 600px) and (max-width: 999px) {
	.dgw-rankings { grid-template-columns: 1fr; }
}
@media (min-width: 1000px) {
	.dgw-rankings { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
@media (min-width: 1200px) {
	.dgw-rankings { grid-template-columns: repeat(3, 1fr); }
}

/* Mobile chico: bloque de posición un poco más angosto */
@media (max-width: 480px) {
	.dgw-rc { min-height: 150px; }
	.dgw-rc-pos { flex: 0 0 96px; padding: 12px 6px; }
	.dgw-rc-pos-num { font-size: 48px; }
	.dgw-rc-pos[data-digits="3"] .dgw-rc-pos-num { font-size: 38px; }
	.dgw-rc-pos[data-digits="4"] .dgw-rc-pos-num { font-size: 30px; }
	.dgw-rc-pos[data-digits="5"] .dgw-rc-pos-num { font-size: 24px; }
	.dgw-rc-pos-hash { font-size: 18px; margin-top: 10px; }
	.dgw-rc-cat-main { font-size: 16px; }
	.dgw-rc-num { font-size: 20px; }
	.dgw-rc-emblem { width: 48px; height: 48px; }
}

/* ============================================================
 * ÚLTIMAS VUELTAS — cards rediseñadas
 * ============================================================ */
.dgw-rounds {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
.dgw-rounds > *:not(.dgw-round-card) {
	display: none !important;
}
.dgw-rounds > .dgw-round-card:empty {
	display: none !important;
}
.dgw-round-card {
	background: var(--p-bg);
	border: 1px solid var(--p-border);
	border-radius: 12px;
	overflow: hidden;
	transition: all 0.15s;
}
.dgw-round-card:hover {
	border-color: var(--p-green);
	box-shadow: 0 4px 16px rgba(10,61,44,0.06);
	transform: translateY(-1px);
}
.dgw-round-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: var(--p-bg-soft);
	border-bottom: 1px solid var(--p-border);
}
.dgw-round-card-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 56px;
	background: #fff;
	border: 1px solid var(--p-border);
	border-radius: 8px;
	padding: 8px 10px;
	flex-shrink: 0;
}
.dgw-round-card-date .dgw-round-day {
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	color: var(--p-text);
	font-variant-numeric: tabular-nums;
}
.dgw-round-card-date .dgw-round-month {
	font-size: 10px;
	font-weight: 800;
	color: var(--p-green);
	text-transform: uppercase;
	letter-spacing: 0.6px;
	margin-top: 3px;
}
.dgw-round-card-date .dgw-round-year {
	font-size: 9px;
	color: var(--p-muted);
	margin-top: 2px;
	font-weight: 600;
}

.dgw-round-card-club {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.dgw-round-card-club-logo {
	width: 44px;
	height: 44px;
	object-fit: contain;
	border-radius: 8px;
	flex-shrink: 0;
	background: #fff;
	border: 1px solid var(--p-border);
	padding: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
}
.dgw-round-card-club-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 4px;
}
.dgw-round-card-club-name {
	font-weight: 800;
	color: var(--p-text);
	font-size: 14px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
}
.dgw-round-card-club-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	color: var(--p-muted);
}
.dgw-round-type-badge {
	background: var(--p-green);
	color: #fff;
	padding: 2px 7px;
	border-radius: 4px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.6px;
	text-transform: uppercase;
}
.dgw-round-meta-item { font-weight: 700; }

.dgw-round-card-body {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	background: var(--p-border);
}
.dgw-round-card-body > * {
	background: #fff;
	padding: 12px 8px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
}
.dgw-round-card-score-label,
.dgw-round-card-diff-label {
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--p-muted);
	line-height: 1;
}
.dgw-round-card-score-value {
	font-size: 26px;
	font-weight: 800;
	color: var(--p-text);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.dgw-round-card-score-value-sm {
	font-size: 18px;
	font-weight: 800;
	color: var(--p-text);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.dgw-round-card-diff {
	position: relative;
}
.dgw-round-card-diff-value {
	font-size: 26px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.dgw-round-card-diff.good { background: #ecfdf5; }
.dgw-round-card-diff.good .dgw-round-card-diff-value { color: #047857; }
.dgw-round-card-diff.good .dgw-round-card-diff-label { color: #047857; }
.dgw-round-card-diff.mid  { background: #fffbeb; }
.dgw-round-card-diff.mid  .dgw-round-card-diff-value { color: #b45309; }
.dgw-round-card-diff.mid  .dgw-round-card-diff-label { color: #b45309; }
.dgw-round-card-diff.bad  { background: #fef2f2; }
.dgw-round-card-diff.bad  .dgw-round-card-diff-value { color: #b91c1c; }
.dgw-round-card-diff.bad  .dgw-round-card-diff-label { color: #b91c1c; }

@media (min-width: 768px) {
	.dgw-rounds { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
@media (min-width: 1100px) {
	.dgw-rounds { grid-template-columns: repeat(3, 1fr); }
}

/* Compactar en mobile chico */
@media (max-width: 480px) {
	.dgw-round-card-head { padding: 12px; gap: 10px; }
	.dgw-round-card-date { min-width: 48px; padding: 6px 8px; }
	.dgw-round-card-date .dgw-round-day { font-size: 18px; }
	.dgw-round-card-club-logo { width: 36px; height: 36px; }
	.dgw-round-card-club-name { font-size: 13px; }
	.dgw-round-card-body > * { padding: 10px 4px; }
	.dgw-round-card-score-value,
	.dgw-round-card-diff-value { font-size: 22px; }
	.dgw-round-card-score-value-sm { font-size: 16px; }
}

/* Mobile: full bleed lateral pero conservando radius superiores en el hero
 * (ese fue el pedido específico — los bordes de arriba del bloque verde
 * deben verse redondeados aunque el resto sea full-width). */
@media (max-width: 600px) {
	.dgw-profile {
		margin: 0;
		border-radius: 0;
		border-left: 0;
		border-right: 0;
	}
	.dgw-profile > .dgw-hero {
		border-top-left-radius: 14px;
		border-top-right-radius: 14px;
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
}

/* ============================================================
 * HERO ACTIONS — wrap del botón Editar (si es dueño) + Compartir
 * ============================================================ */
.dgw-hero-actions {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 30;
	display: flex;
	gap: 8px;
	align-items: center;
}
@media (min-width: 768px) {
	.dgw-hero-actions {
		top: 20px;
		right: 24px;
	}
}

/* Botón "Editar perfil" (visible solo si el logueado es el dueño) */
.dgw-edit-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: var(--p-green, #0a3d2c);
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	padding: 7px 14px;
	border-radius: 100px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
	letter-spacing: 0.3px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.dgw-edit-btn:hover {
	background: #fff;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
	color: var(--p-green, #0a3d2c);
}
.dgw-edit-btn svg { flex-shrink: 0; }

/* En mobile chico, solo icono para no llenar la esquina */
@media (max-width: 480px) {
	.dgw-edit-btn { padding: 8px 10px; }
	.dgw-edit-btn-label { display: none; }
}

/* ============================================================
 * SHARE — ahora dentro de hero-actions, posicionamiento relativo
 * ============================================================ */
.dgw-share {
	position: relative;
	z-index: 30;
}
.dgw-share-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	padding: 7px 14px;
	border-radius: 100px;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
	letter-spacing: 0.3px;
	backdrop-filter: blur(4px);
}
.dgw-share-btn:hover {
	background: rgba(255, 255, 255, 0.28);
	border-color: rgba(255, 255, 255, 0.5);
}
.dgw-share-btn svg { flex-shrink: 0; }

/* Mobile chico: solo icono, sin texto */
@media (max-width: 480px) {
	.dgw-share-btn { padding: 8px 10px; }
	.dgw-share-btn-label { display: none; }
}

.dgw-share-menu {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 50;
	min-width: 200px;
	background: #fff;
	border: 1px solid var(--p-border, #e2e8f0);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
	padding: 6px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.dgw-share-menu[hidden] { display: none; }

.dgw-share-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border: 0;
	background: transparent;
	color: #1f2937;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	border-radius: 6px;
	cursor: pointer;
	width: 100%;
	text-align: left;
	transition: background 0.12s, color 0.12s;
}
.dgw-share-link:hover { background: #f3f4f6; }

.dgw-share-link svg { flex-shrink: 0; }
.dgw-share-wa svg   { color: #25D366; }
.dgw-share-tg svg   { color: #0088cc; }
.dgw-share-x svg    { color: #000; }
.dgw-share-fb svg   { color: #1877f2; }
.dgw-share-copy svg { color: var(--p-muted, #64748b); }

.dgw-share-copy.copied {
	background: #ecfdf5;
	color: #047857;
}
.dgw-share-copy.copied svg { color: #047857; }

/* ============================================================
 * BANNERS — sistema de avisos por desafío
 * ============================================================ */

/* Wrapper de slot: contiene 1 o más banners apilados verticalmente */
.dgw-banner-slot {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 16px;
}
.dgw-banner-slot:empty { display: none; }

/* Slots horizontales (header/footer/after_topN) tienen padding compacto */
.dgw-banner-slot-header_top,
.dgw-banner-slot-header_bottom,
.dgw-banner-slot-footer_top,
.dgw-banner-slot-footer_bottom {
	background: #fff;
}

/* Banner individual */
.dgw-banner {
	display: block;
	overflow: hidden;
	border-radius: 8px;
	transition: transform 0.15s, box-shadow 0.15s;
	text-decoration: none;
	line-height: 0; /* elimina espacio inferior de inline-block en imágenes */
}
a.dgw-banner:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}
.dgw-banner-picture { display: block; }
.dgw-banner-img {
	width: 100%;
	height: auto;
	display: block;
	max-width: 100%;
}

/* Visibilidad por viewport */
@media (max-width: 767px) {
	.dgw-banner-desktop-only { display: none !important; }
}
@media (min-width: 768px) {
	.dgw-banner-mobile-only { display: none !important; }
}

/* Fila de banner dentro de la tabla del leaderboard (after_top5/10) */
.dgw-lb-banner-row {
	background: transparent;
}
.dgw-lb-banner-row:hover {
	background: transparent;
	cursor: default;
}
.dgw-lb-banner-cell {
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--dgw-border, #e2e8f0) !important;
	border-top: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
}
.dgw-lb-banner-cell .dgw-banner-slot {
	padding: 0;
}

/* ============================================================
 * SIDEBARS — solo desktop, layout grid
 * ============================================================ */
@media (min-width: 1100px) {
	.dgw-lb-sidebar-wrap {
		display: grid;
		grid-template-columns: 200px 1fr 200px;
		gap: 20px;
		align-items: start;
	}
	/* Si solo hay sidebar izquierda */
	.dgw-lb-sidebar-wrap:has(.dgw-lb-sidebar-left:only-child) {
		grid-template-columns: 200px 1fr;
	}
	/* Si solo hay sidebar derecha */
	.dgw-lb-sidebar-wrap:has(.dgw-lb-sidebar-right):not(:has(.dgw-lb-sidebar-left)) {
		grid-template-columns: 1fr 200px;
	}
	.dgw-lb-sidebar {
		position: sticky;
		top: 20px;
	}
	.dgw-lb-sidebar-left  .dgw-banner-slot { padding: 0; }
	.dgw-lb-sidebar-right .dgw-banner-slot { padding: 0; }
	.dgw-lb-sidebar .dgw-banner-img {
		border-radius: 8px;
		border: 1px solid var(--dgw-border, #e2e8f0);
	}
}

/* En mobile/tablet: sidebars ocultas, contenido principal full width */
@media (max-width: 1099px) {
	.dgw-lb-sidebar { display: none; }
}


/* ============================================================
 * BANNER CAROUSEL — rotación automática cuando hay 2+ banners en un slot
 * ============================================================ */
.dgw-banner-carousel {
	position: relative;
	min-height: 60px;
}
.dgw-banner-carousel .dgw-banner {
	transition: opacity 0.4s ease-in-out;
}
/* Mientras carga, todos los banners ocultos excepto el primero */
.dgw-banner-carousel .dgw-banner-hidden {
	display: none !important;
}
.dgw-banner-carousel .dgw-banner-active {
	display: block !important;
}
/* Indicadores (dots) abajo del carrusel */
.dgw-banner-dots {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 8px;
	pointer-events: auto;
}
.dgw-banner-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(15, 23, 42, 0.18);
	border: 0;
	cursor: pointer;
	padding: 0;
	transition: background 0.2s, transform 0.2s;
}
.dgw-banner-dot:hover {
	background: rgba(15, 23, 42, 0.35);
	transform: scale(1.2);
}
.dgw-banner-dot-active {
	background: var(--dgw-accent, #0a3d2c);
	transform: scale(1.3);
}

/* ============================================================
 * AJUSTES MOBILE — header del leaderboard apilado en líneas separadas
 * ============================================================ */
@media (max-width: 719px) {
	/* Meta (fechas + cantidad de jugadores) en columna, una cosa por renglón */
	.dgw-lb-meta {
		flex-direction: column;
		align-items: center;
		gap: 4px;
		font-size: 10.5px;
		text-align: center;
		line-height: 1.4;
	}
	.dgw-lb-meta span {
		white-space: normal;
		justify-content: center;
	}
	/* La fecha (primer span) puede romper en 2 líneas si hace falta sin que se corte */
	.dgw-lb-meta > span:first-child {
		max-width: 100%;
	}

	/* Nombre del jugador en la fila: tipografía más chica + sin subrayado */
	.dgw-lb-table .dgw-player-name {
		font-size: 12.5px;
		text-decoration: none !important;
		border-bottom: 0 !important;
	}
	.dgw-lb-table .dgw-player-link {
		text-decoration: none !important;
	}
	.dgw-lb-table .dgw-player-link:hover .dgw-player-name,
	.dgw-lb-table .dgw-player-link:focus .dgw-player-name {
		text-decoration: none !important;
		border-bottom: 0 !important;
	}
}

/* ============================================================
 * GROSS TABS — diferenciar visualmente con tono gold
 * ============================================================ */
.dgw-lb-gender-tab-gross {
	color: var(--dgw-gold, #d4a017);
	font-weight: 800;
}
.dgw-lb-gender-tab-gross::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--dgw-gold, #d4a017);
	margin-right: 6px;
	vertical-align: middle;
	transform: translateY(-1px);
}
.dgw-lb-gender-tab-gross.active {
	color: var(--dgw-gold, #d4a017);
	border-bottom-color: var(--dgw-gold, #d4a017);
}
.dgw-lb-gender-tab-gross:hover {
	color: var(--dgw-gold, #d4a017);
	background: rgba(212, 160, 23, 0.08);
}

/* Card de ranking GROSS — distinguir con borde y bullet gold */
.dgw-rc-gross {
	border-color: var(--p-gold, #d4a017);
	border-width: 2px;
}
.dgw-rc-gross .dgw-rc-cat-main::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--p-gold, #d4a017);
	margin-right: 8px;
	vertical-align: middle;
	transform: translateY(-1px);
}
.dgw-rc-gross .dgw-rc-cat-main {
	color: var(--p-gold, #d4a017);
}

/* ============================================================
 * REWARDS FOOTER (puntos/coins por vuelta computada)
 * ============================================================ */
.dgw-round-card-rewards {
	display: flex;
	gap: 12px;
	padding: 10px 14px;
	border-top: 1px dashed var(--p-border);
	margin-top: 8px;
	background: linear-gradient(180deg, rgba(212, 160, 23, 0.04), rgba(212, 160, 23, 0.08));
}
.dgw-round-reward {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 800;
	font-size: 14px;
}
.dgw-round-reward-label {
	font-size: 10px;
	font-weight: 800;
	color: var(--p-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.dgw-round-reward-value {
	font-variant-numeric: tabular-nums;
	color: var(--p-text);
}
.dgw-round-reward-pts .dgw-round-reward-value { color: var(--dgw-accent, var(--p-green)); }
.dgw-round-reward-coins .dgw-round-reward-value { color: var(--p-gold, #d4a017); }
.dgw-round-reward-icon {
	width: 18px;
	height: 18px;
	object-fit: contain;
	display: block;
}

/* Icono de COIN en KPIs */
.dgw-coin-icon {
	display: inline-block;
	width: 14px;
	height: 14px;
	vertical-align: -2px;
	margin-right: 4px;
	object-fit: contain;
}

/* ============================================================
 * RANKING CARDS v2 — emblema grande, sin PTS/COINS (van al hero)
 * ============================================================ */
.dgw-rc-emblem-big {
	width: 60px;
	height: 60px;
	object-fit: contain;
	margin: auto 14px auto auto;
	flex-shrink: 0;
	display: block;
	align-self: center;
	opacity: 0.85;
}
@media (max-width: 600px) {
	.dgw-rc-emblem-big {
		width: 48px;
		height: 48px;
		margin-right: 10px;
	}
}
/* Posición categoría que ahora es lo destacado del body */
.dgw-rc-body .dgw-rc-stats { border-top: 1px solid var(--p-border); padding-top: 8px; }

/* ============================================================
 * HERO TOTALS — primary (puntos / coins) destacado vs secondary
 * ============================================================ */
.dgw-totals {
	grid-template-columns: 1.4fr 1.4fr 1fr 1fr;
}
.dgw-total-primary .dgw-total-value {
	font-size: 38px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}
.dgw-total-primary .dgw-total-label {
	font-size: 11px;
	letter-spacing: 0.7px;
	font-weight: 800;
}
.dgw-total-coins .dgw-total-value {
	color: var(--p-gold, #d4a017);
}
.dgw-coin-icon-lg {
	width: 22px;
	height: 22px;
	vertical-align: -5px;
	margin-right: 6px;
}
.dgw-total-secondary .dgw-total-value {
	font-size: 24px;
	color: var(--p-muted);
}
.dgw-total-secondary .dgw-total-label {
	font-size: 10px;
	color: var(--p-muted);
}
@media (max-width: 700px) {
	.dgw-totals {
		grid-template-columns: 1fr 1fr;
	}
	.dgw-total-primary .dgw-total-value { font-size: 30px; }
	.dgw-total-secondary { display: none; }
}

/* ============================================================
 * FEDERATION HOME — landing /{country_code}/
 * ============================================================ */
.dgw-fed-home {
	max-width: 920px;
	margin: 0 auto;
	padding: 24px 16px;
}
.dgw-fed-home-head {
	text-align: center;
	margin-bottom: 32px;
}
.dgw-fed-home-title {
	font-size: 32px;
	font-weight: 800;
	color: var(--p-text);
	margin: 0 0 6px;
	letter-spacing: -0.02em;
}
.dgw-fed-home-country {
	font-size: 14px;
	color: var(--p-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0;
}
.dgw-fed-home-challenges h2 {
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.7px;
	color: var(--p-muted);
	margin: 0 0 14px;
}
.dgw-fed-home-challenge-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
}
.dgw-fed-home-challenge-link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--p-border);
	border-radius: 8px;
	text-decoration: none;
	color: var(--p-text);
	transition: border-color 0.15s, transform 0.15s;
}
.dgw-fed-home-challenge-link:hover {
	border-color: var(--dgw-accent, var(--p-green));
	transform: translateY(-1px);
}
.dgw-fed-home-challenge-emblem {
	width: 48px;
	height: 48px;
	object-fit: contain;
	flex-shrink: 0;
}
.dgw-fed-home-challenge-name {
	font-size: 15px;
	font-weight: 700;
}
.dgw-fed-home-cta {
	margin-top: 32px;
	display: flex;
	gap: 12px;
	justify-content: center;
}

/* Columna DIF (diferencial neto) en leaderboard por etapa */
.dgw-diff { font-weight: 700; font-variant-numeric: tabular-nums; }
.dgw-diff-neg  { color: #0a7a3e; }   /* bajo par = bueno = verde */
.dgw-diff-pos  { color: #b45309; }   /* sobre par = ámbar */
.dgw-diff-zero { color: #475569; }   /* par = neutro */


/* ============================================================
 * PLAYER SEARCH — autocomplete widget [dgw_player_search]
 * Diseño igual al buscador legacy del leaderboard.
 * ============================================================ */
.dgw-player-search {
	position: relative;
	width: 100%;
	max-width: 360px;
	margin: 6px auto 0;
}
.dgw-ps-input-wrap {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}
.dgw-ps-input {
	width: 100%;
	height: 40px;
	padding: 0 40px 0 16px;
	border: 1px solid var(--dgw-border);
	border-radius: 24px;
	font-size: 14px;
	font-family: inherit;
	color: var(--dgw-text);
	background: var(--dgw-bg-alt);
	outline: none;
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
	-webkit-appearance: none;
	box-sizing: border-box;
	line-height: 40px;
}
.dgw-ps-input:focus {
	border-color: var(--dgw-accent);
	background: #fff;
	box-shadow: 0 0 0 3px var(--dgw-accent-soft);
}
.dgw-ps-input::-webkit-search-cancel-button,
.dgw-ps-input::-webkit-search-decoration { display: none; }
.dgw-ps-input::placeholder { color: var(--dgw-text-muted); opacity: 1; }

.dgw-ps-icon {
	position: absolute;
	right: 14px;
	top: calc(50% - 8px);
	width: 16px;
	height: 16px;
	color: var(--dgw-text-muted);
	pointer-events: none;
	z-index: 2;
}
.dgw-ps-clear {
	position: absolute;
	right: 38px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: 0;
	background: transparent;
	color: var(--dgw-text-muted);
	cursor: pointer;
	border-radius: 50%;
	font-size: 13px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	z-index: 3;
	transition: background 0.15s, color 0.15s;
}
.dgw-ps-clear[hidden] { display: none; }
.dgw-ps-clear:hover { background: var(--dgw-border); color: var(--dgw-text); }

/* Dropdown */
.dgw-ps-dropdown {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--dgw-border);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
	z-index: 1000;
	max-height: 70vh;
	overflow-y: auto;
}
.dgw-ps-list { list-style: none; margin: 0; padding: 4px; }
.dgw-ps-item { padding: 0; }
.dgw-ps-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 8px;
	text-decoration: none;
	color: var(--dgw-text);
}
.dgw-ps-link:hover, .dgw-ps-item.active .dgw-ps-link {
	background: var(--dgw-bg-alt);
}
.dgw-ps-avatar {
	width: 40px; height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	background: var(--dgw-border);
}
.dgw-ps-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.dgw-ps-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--dgw-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-ps-meta {
	font-size: 12px;
	color: var(--dgw-text-muted);
}
.dgw-ps-license { font-family: monospace; }
.dgw-ps-empty, .dgw-ps-hint, .dgw-ps-error, .dgw-ps-footer {
	padding: 16px;
	text-align: center;
	color: var(--dgw-text-muted);
	font-size: 14px;
}
.dgw-ps-error { color: #dc2626; }
.dgw-ps-footer { font-size: 12px; padding: 8px; border-top: 1px solid var(--dgw-border); }
.dgw-ps-show-all {
	display: block;
	width: 100%;
	background: var(--dgw-bg-alt);
	border: 0;
	border-top: 1px solid var(--dgw-border);
	color: var(--dgw-accent);
	font-weight: 600;
	font-size: 14px;
	padding: 12px;
	cursor: pointer;
	border-radius: 0 0 12px 12px;
}
.dgw-ps-show-all:hover { background: var(--dgw-border); }

@media (max-width: 600px) {
	.dgw-player-search { max-width: 100%; }
}

/* ============================================================
 * TOP5 — shortcode [dgw_top5]
 * ============================================================ */
.dgw-top5 {
	max-width: 100%;
	margin: 0;
	padding: 16px;
	font-family: inherit;
	color: var(--dgw-text);
	--dgw-top5-accent: #0a7a3e;
}
.dgw-top5-search { margin-bottom: 18px; }

/* Las tabs Caballeros/Damas/General y las tabs de categoría reusan los
 * estilos del ranking (.dgw-lb-tabs-genders, .dgw-lb-tabs, .dgw-lb-tab)
 * para mantener consistencia visual con el leaderboard.
 * Solo aplicamos un margen entre la barra de género y las pestañas de cat. */
.dgw-top5 .dgw-lb-tabs-genders { margin-bottom: 6px; }
.dgw-top5 .dgw-top5-cat-tabs { margin-bottom: 18px; }

/* (estilos pill de las cat-tabs del top5 al FINAL del archivo, con max especificidad) */

/* Panels (uno por género) */
.dgw-top5-panel { display: none; }
.dgw-top5-panel.is-active { display: block; }

/* Wrapper por categoría (solo el activo se muestra) */
.dgw-top5-cards-wrap { display: none; }
.dgw-top5-cards-wrap.is-active { display: block; }

/* Título "Top 5 Categoría X" */
.dgw-top5-title {
	text-align: center;
	font-size: 22px;
	font-weight: 700;
	color: var(--dgw-text-muted);
	margin: 0 0 24px;
}
.dgw-top5-title span { font-weight: 800; }

/* Cards horizontales */
.dgw-top5-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}
.dgw-top5-card {
	display: flex;
	flex-direction: column;
	background: var(--dgw-bg-alt);
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform 0.15s, box-shadow 0.15s;
	border: 1px solid var(--dgw-border);
}
.dgw-top5-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}
.dgw-top5-card.is-first { color: #fff; border-color: transparent; }
.dgw-top5-card.is-first .dgw-top5-card-name { color: #fff; }
.dgw-top5-card.is-first .dgw-top5-card-club { color: rgba(255, 255, 255, 0.85); }
.dgw-top5-card.is-first .dgw-top5-card-meta {
	background: rgba(0, 0, 0, 0.18);
	color: #fff;
}
.dgw-top5-card-empty { opacity: 0.4; cursor: default; }
.dgw-top5-card-empty:hover { transform: none; box-shadow: none; }

.dgw-top5-card-avatar {
	width: 100%;
	aspect-ratio: 1;
	background: #e5e7eb;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.dgw-top5-card-avatar img {
	width: 100%; height: 100%;
	object-fit: cover;
}
.dgw-top5-card-name {
	font-size: 14px;
	font-weight: 800;
	text-align: center;
	padding: 12px 8px 4px;
	color: var(--dgw-text);
	text-transform: uppercase;
	letter-spacing: 0.3px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-top5-card-club {
	font-size: 11px;
	text-align: center;
	padding: 0 8px 12px;
	color: var(--dgw-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-top5-card-meta {
	display: flex;
	margin-top: auto;
	background: #6b7280;
	color: #fff;
	min-height: 56px;
}
.dgw-top5-card-meta > span {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 8px 4px;
}
.dgw-top5-card-meta strong {
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}
.dgw-top5-card-meta small {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: 4px;
	opacity: 0.85;
}
.dgw-top5-card-pos { border-right: 1px solid rgba(255, 255, 255, 0.2); }

/* Footer "Ver ranking completo" */
.dgw-top5-footer { text-align: right; padding: 12px 0 0; }
.dgw-top5-more,
.dgw-top5 a.dgw-top5-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: transparent;
	border: 1px solid var(--dgw-border);
	border-radius: 6px;
	color: var(--dgw-text-muted) !important;
	padding: 8px 16px;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none !important;
	letter-spacing: 0.2px;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dgw-top5-more:hover,
.dgw-top5 a.dgw-top5-more:hover {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent) !important;
	background: var(--dgw-accent-soft);
	text-decoration: none !important;
}

.dgw-top5-empty {
	text-align: center;
	color: var(--dgw-text-muted);
	padding: 24px;
}

@media (max-width: 600px) {
	.dgw-top5-cards { grid-template-columns: repeat(2, 1fr); }
	.dgw-top5-cards .dgw-top5-card:first-child {
		grid-column: 1 / -1;
	}
	.dgw-top5-title { font-size: 18px; }
}

/* ============================================================
 * TOP5 CAT-TABS — el estilo viene de la clase `.dgw-lb-pag-btn` que se
 * agrega al render del botón en class-dgw-shortcodes.php. Mantenemos
 * solo overrides puntuales acá si fuese necesario.
 * ============================================================ */

/* Género (Caballeros/Damas) DENTRO del top5: bordes grises claros consistentes
 * con las categorías. Hardcodeamos #e2e8f0 por las dudas que el tema redefina
 * la variable en algún scope. */
.dgw-top5 .dgw-lb-tabs-genders button.dgw-lb-gender-tab,
.dgw-top5 nav.dgw-lb-tabs-genders button.dgw-lb-gender-tab,
.dgw-top5 .dgw-lb-tabs-genders .dgw-lb-gender-tab,
section.dgw-top5 .dgw-lb-tabs-genders button.dgw-lb-gender-tab {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	background-color: transparent !important;
	border-style: solid !important;
	border-width: 1px !important;
	border-color: #e2e8f0 !important;
	border-radius: 6px !important;
	color: var(--dgw-text) !important;
	padding: 6px 14px !important;
	margin: 0 !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	white-space: nowrap !important;
	font-family: inherit !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: border-color 0.15s, background 0.15s, color 0.15s !important;
}
.dgw-top5 .dgw-lb-tabs-genders button.dgw-lb-gender-tab:hover {
	border-color: var(--dgw-accent) !important;
	color: var(--dgw-accent) !important;
	background: var(--dgw-accent-soft) !important;
}
.dgw-top5 .dgw-lb-tabs-genders button.dgw-lb-gender-tab.active,
.dgw-top5 nav.dgw-lb-tabs-genders button.dgw-lb-gender-tab.active,
.dgw-top5 .dgw-lb-tabs-genders .dgw-lb-gender-tab.active,
section.dgw-top5 .dgw-lb-tabs-genders button.dgw-lb-gender-tab.active {
	background: var(--dgw-accent) !important;
	background-color: var(--dgw-accent) !important;
	border-color: var(--dgw-accent) !important;
	color: #fff !important;
	font-weight: 700 !important;
}

.dgw-top5 .dgw-top5-cat-tabs button.dgw-lb-tab,
.dgw-top5 nav.dgw-top5-cat-tabs button.dgw-lb-tab,
.dgw-top5 .dgw-top5-cat-tabs .dgw-lb-tab,
section.dgw-top5 .dgw-top5-cat-tabs button.dgw-lb-tab {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	background-color: transparent !important;
	border-style: solid !important;
	border-width: 1px !important;
	border-color: #e2e8f0 !important;
	border-radius: 6px !important;
	color: var(--dgw-text) !important;
	padding: 6px 12px !important;
	margin: 0 !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	white-space: nowrap !important;
	font-family: inherit !important;
	cursor: pointer !important;
	flex: 0 0 auto !important;
	flex-direction: row !important;
	height: auto !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: border-color 0.15s, background 0.15s, color 0.15s !important;
}
.dgw-top5 .dgw-top5-cat-tabs button.dgw-lb-tab:hover,
.dgw-top5 nav.dgw-top5-cat-tabs button.dgw-lb-tab:hover,
.dgw-top5 .dgw-top5-cat-tabs .dgw-lb-tab:hover {
	border-color: var(--dgw-accent) !important;
	color: var(--dgw-accent) !important;
	background: var(--dgw-accent-soft) !important;
}
.dgw-top5 .dgw-top5-cat-tabs button.dgw-lb-tab.active,
.dgw-top5 nav.dgw-top5-cat-tabs button.dgw-lb-tab.active,
.dgw-top5 .dgw-top5-cat-tabs .dgw-lb-tab.active,
section.dgw-top5 .dgw-top5-cat-tabs button.dgw-lb-tab.active {
	background: var(--dgw-accent) !important;
	background-color: var(--dgw-accent) !important;
	border-color: var(--dgw-accent) !important;
	color: #fff !important;
	font-weight: 700 !important;
}

/* ============================================================
 * TOP5 GROUPS — shortcode [dgw_top5_groups]
 * Carrusel horizontal de mini-leaderboards por categoría.
 * Desktop: 4 bloques visibles. Mobile: 1.
 * ============================================================ */
.dgw-top5g {
	max-width: 100%;
	margin: 1.5em 0;
	padding: 16px;
	font-family: inherit;
	color: var(--dgw-text, #0f172a);
	--dgw-top5g-border: #e2e8f0;
	--dgw-top5g-text-muted: #64748b;
	--dgw-top5g-row-bg: #fff;
	--dgw-top5g-row-bg-alt: #f8fafc;
	--dgw-top5g-gold: #d4a017;
	--dgw-top5g-silver: #94a3b8;
	--dgw-top5g-bronze: #b45309;
}

/* Header con flechas alineadas a la derecha (sin título) */
.dgw-top5g-header {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 16px;
	margin-bottom: 16px;
}
.dgw-top5g-title {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	color: var(--dgw-accent);
	margin: 0;
}
.dgw-top5g-nav {
	display: flex;
	gap: 4px;
}
.dgw-top5g-arrow {
	background: transparent;
	border: 1px solid var(--dgw-top5g-border);
	color: var(--dgw-text, #0f172a);
	padding: 6px 12px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dgw-top5g-arrow:hover:not(.is-disabled) {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: rgba(0, 0, 0, 0.02);
}
.dgw-top5g-arrow.is-disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

/* Track wrapper + scroll horizontal con snap */
.dgw-top5g-track-wrap {
	position: relative;
	overflow: hidden;
}
.dgw-top5g-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 4px;
}
.dgw-top5g-track::-webkit-scrollbar { display: none; }

/* Bloque (mini-leaderboard) */
.dgw-top5g-block {
	flex: 0 0 calc((100% - 16px * 3) / 4); /* 4 visibles desktop */
	min-width: 0;
	scroll-snap-align: start;
	background: #fff;
	border: 1px solid var(--dgw-top5g-border);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

/* Header del bloque: número grande + título cat + género */
.dgw-top5g-block-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 14px 12px;
	border-bottom: 1px solid var(--dgw-top5g-border);
}
.dgw-top5g-block-num {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--dgw-top5g-row-bg-alt);
	color: var(--dgw-top5g-text-muted);
	font-size: 13px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.dgw-top5g-block-title {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.dgw-top5g-block-cat {
	font-size: 14px;
	font-weight: 700;
	color: var(--dgw-text, #0f172a);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-top5g-block-gender {
	font-size: 10px;
	font-weight: 600;
	color: var(--dgw-top5g-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.6px;
}

/* Filas */
.dgw-top5g-rows {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.dgw-top5g-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	text-decoration: none;
	color: inherit;
	border-bottom: 1px solid var(--dgw-top5g-border);
	transition: background 0.12s;
}
.dgw-top5g-row:last-child { border-bottom: 0; }
.dgw-top5g-row:hover { background: var(--dgw-top5g-row-bg-alt); }

.dgw-top5g-row-pos {
	flex: 0 0 22px;
	font-size: 13px;
	font-weight: 700;
	color: var(--dgw-top5g-text-muted);
	text-align: center;
}
.dgw-top5g-row.is-pos-1 .dgw-top5g-row-pos { color: var(--dgw-top5g-gold); }
.dgw-top5g-row.is-pos-2 .dgw-top5g-row-pos { color: var(--dgw-top5g-silver); }
.dgw-top5g-row.is-pos-3 .dgw-top5g-row-pos { color: var(--dgw-top5g-bronze); }

.dgw-top5g-row-avatar {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	overflow: hidden;
	background: #f1f5f9;
}
.dgw-top5g-row-avatar img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: cover;
	display: block;
}
.dgw-top5g-row-name-wrap {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}
.dgw-top5g-row-name {
	font-size: 13px;
	font-weight: 600;
	color: var(--dgw-text, #0f172a);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-top5g-row-club {
	font-size: 11px;
	color: var(--dgw-top5g-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-top5g-row-points {
	flex: 0 0 auto;
	font-size: 14px;
	font-weight: 700;
	color: var(--dgw-text, #0f172a);
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.dgw-top5g-empty {
	padding: 24px 14px;
	text-align: center;
	color: var(--dgw-top5g-text-muted);
	font-size: 13px;
}

/* Footer del bloque */
.dgw-top5g-block-foot {
	padding: 10px 14px 12px;
	border-top: 1px solid var(--dgw-top5g-border);
}
.dgw-top5g-block-more {
	font-size: 12px;
	font-weight: 600;
	color: var(--dgw-accent);
	text-decoration: none;
}
.dgw-top5g-block-more:hover { text-decoration: underline; }

/* Pills minimalistas (dots) */
.dgw-top5g-pills {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 18px;
	flex-wrap: wrap;
}
.dgw-top5g-pill {
	width: 8px;
	height: 8px;
	padding: 0;
	border-radius: 50%;
	background: var(--dgw-top5g-border);
	border: 0;
	cursor: pointer;
	font-size: 0;
	line-height: 0;
	color: transparent;
	transition: background 0.15s, transform 0.15s;
	flex: 0 0 auto;
}
.dgw-top5g-pill:hover {
	background: var(--dgw-top5g-text-muted);
}
.dgw-top5g-pill.is-active {
	background: var(--dgw-accent);
	transform: scale(1.4);
}

/* Mobile: 1 bloque por viewport */
@media (max-width: 720px) {
	.dgw-top5g { padding: 12px; }
	.dgw-top5g-header {
		justify-content: center;
	}
	.dgw-top5g-nav {
		justify-content: center;
	}
	.dgw-top5g-block {
		flex: 0 0 100%;
	}
}


/* ============================================================
 * VISTAS DERIVADAS — [dgw_ranking_by_club|_region|_age]
 * Estructura común: selector arriba + leaderboard debajo.
 * ============================================================ */
.dgw-view {
	max-width: 100%;
	margin: 1.5em 0;
	padding: 16px;
	font-family: inherit;
	color: var(--dgw-text);
	/* v3.8.51 — La vista por edades / club / región NO usa el wrapper
	 * .dgw-leaderboard, así que las variables --dgw-bg definidas ahí no
	 * llegan. Redefinimos acá para que herede el mismo comportamiento
	 * "fondo transparente" y respete el color de fondo del sitio. */
	--dgw-bg: transparent;
	--dgw-bg-alt: #f8fafc;
	--dgw-accent: var(--dgw-accent, #0a3d2c);
	background: transparent;
}

/* v3.8.80 — Las vistas (by_age/by_region/by_club) reutilizan las barras
 * .dgw-lb-tabs-* pero heredaban el padding vertical grande del ranking
 * general, dejando MUCHO espacio entre cada fila de botones. Acá lo
 * compactamos SOLO dentro de .dgw-view (el ranking general queda igual,
 * que estaba bien). Filas más juntas → navegación consistente. */
.dgw-view .dgw-lb-tabs-stages {
	padding: 10px 12px 6px !important;
}
.dgw-view .dgw-lb-tabs-genders {
	padding: 6px 12px 6px !important;
	margin-top: 0 !important;
}
.dgw-view .dgw-lb-tabs-cats {
	padding: 6px 12px 10px !important;
}
.dgw-view .dgw-lb-tabs-stages,
.dgw-view .dgw-lb-tabs-genders,
.dgw-view .dgw-lb-tabs-cats {
	row-gap: 6px !important;
}

/* v3.8.51 — Forzar transparencia en TODOS los contenedores externos de
 * la vista (barras de tabs, header, tbody). Solo pastillas, tarjetas de
 * fila y bloques con borde conservan su fondo. */
.dgw-view .dgw-lb-tabs-stages,
.dgw-view .dgw-lb-tabs-genders,
.dgw-view .dgw-lb-tabs-cats,
.dgw-view .dgw-lb-tabs-scroller,
.dgw-view .dgw-lb-header,
.dgw-view .dgw-lb-tbody,
.dgw-view .dgw-lb-table-wrap,
.dgw-view .dgw-view-stages,
.dgw-view .dgw-view-genders,
.dgw-view .dgw-view-cats,
.dgw-view-filters,
.dgw-view-filters .dgw-lb-tabs-stages,
.dgw-view-filters .dgw-lb-tabs-genders,
.dgw-view-filters .dgw-lb-tabs-cats {
	background: transparent !important;
	border-bottom: 0 !important;
}

/* El header de columnas también dentro de la vista: color principal. */
.dgw-view .dgw-lb-thead {
	background: var(--dgw-accent) !important;
	border-radius: 10px;
}
.dgw-view .dgw-lb-thead .dgw-th {
	color: #ffffff;
	opacity: 0.95;
}

/* Selector tipo dropdown (clubes) */
.dgw-view-selector {
	display: flex;
	justify-content: center;
	margin: 12px 0 24px;
}
.dgw-view-form {
	display: flex;
	align-items: center;
}
.dgw-view-label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	font-weight: 600;
	font-size: 13px;
	color: var(--dgw-text-muted);
}
.dgw-view-select {
	min-width: 280px;
	padding: 8px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 500;
	background: #fff;
	cursor: pointer;
	font-family: inherit;
}
.dgw-view-select:focus {
	outline: 0;
	border-color: var(--dgw-accent);
}

/* Pills (regiones y edades) */
.dgw-view-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 16px 0 24px;
}
.dgw-view-pill {
	display: inline-flex;
	align-items: center;
	background: transparent;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	color: var(--dgw-text);
	padding: 6px 14px;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dgw-view-pill:hover {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: var(--dgw-accent-soft);
	text-decoration: none;
}
.dgw-view-pill.is-active {
	background: var(--dgw-accent);
	border-color: var(--dgw-accent);
	color: #fff;
}
.dgw-view-pill.is-active:hover {
	color: #fff;
	background: var(--dgw-accent);
}

/* Header de la vista filtrada */
.dgw-view-header {
	text-align: center;
	margin: 24px 0 18px;
}
.dgw-view-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	font-size: 26px;
	font-weight: 800;
	color: var(--dgw-accent);
	margin: 0 0 8px;
	line-height: 1.2;
}
.dgw-view-club-logo {
	width: 96px !important;
	height: 96px !important;
	max-width: 96px !important;
	max-height: 96px !important;
	object-fit: contain;
	border-radius: 50%;
	background: #fff;
	padding: 8px;
	border: 3px solid var(--dgw-accent, #0a3d2c);
	box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.dgw-view-subtitle {
	font-size: 13px;
	color: var(--dgw-text-muted);
	margin: 0;
}
.dgw-view-count {
	display: inline-block;
	margin-left: 8px;
	color: var(--dgw-accent);
}
.dgw-view-count strong {
	font-weight: 800;
}

.dgw-view-empty {
	text-align: center;
	color: var(--dgw-text-muted);
	padding: 32px 16px;
	font-size: 14px;
}

@media (max-width: 600px) {
	.dgw-view { padding: 12px; }
	.dgw-view-select { min-width: 0; width: 100%; }
	.dgw-view-title { font-size: 20px; gap: 10px; }
	.dgw-view-club-logo {
		width: 72px !important;
		height: 72px !important;
		max-width: 72px !important;
		max-height: 72px !important;
		padding: 6px;
		border-width: 2px;
	}
}

/* ============================================================
 * VISTAS DERIVADAS — Filtros internos + buscador + back
 * Tabs reusan estilos del ranking principal (.dgw-lb-tabs etc).
 * ============================================================ */
.dgw-view-filters {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 20px 0;
}
.dgw-view-filters .dgw-lb-tabs-stages,
.dgw-view-filters .dgw-lb-tabs-genders,
.dgw-view-filters .dgw-lb-tabs-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin: 0;
}
/* v3.8.51 — Misma jerarquía por ESPACIO que el ranking principal:
 * más aire entre niveles + divisores finos (sin fondos sólidos). */
.dgw-view-filters .dgw-lb-tabs-stages { padding: 20px 16px 18px; }
.dgw-view-filters .dgw-lb-tabs-genders {
	padding: 18px 16px 14px;
	margin-top: 4px;
	border-top: 0;
}
.dgw-view-filters .dgw-lb-tabs-cats {
	padding: 14px 16px 20px;
	border-top: 0;
}

/* Buscador dentro de la vista */
.dgw-view-search {
	display: flex;
	align-items: center;
	margin: 12px auto 0;
	max-width: 360px;
	width: 100%;
	position: relative;
}
.dgw-view-search-input {
	flex: 1 1 auto;
	padding: 10px 40px 10px 14px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
}
.dgw-view-search-input:focus {
	outline: 0;
	border-color: var(--dgw-accent);
}
.dgw-view-search-btn {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 8px;
	color: var(--dgw-text-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.dgw-view-search-btn:hover { color: var(--dgw-accent); }

/* Footer "Volver a ..." */
.dgw-view-back {
	margin-top: 20px;
	text-align: center;
}
.dgw-view-back-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	color: var(--dgw-text);
	padding: 8px 16px;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dgw-view-back-link:hover {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: var(--dgw-accent-soft);
	text-decoration: none;
}

/* ============================================================
 * VISTAS — los tabs son <a> en lugar de <button>. El tema mete
 * underline a todos los links y rompe el look pill. Forzamos
 * estilo idéntico al de dgw-lb-pag-btn con !important.
 * ============================================================ */
.dgw-view-filters .dgw-lb-tab,
.dgw-view-filters .dgw-lb-gender-tab,
.dgw-view-filters a.dgw-lb-tab,
.dgw-view-filters a.dgw-lb-gender-tab {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 6px !important;
	color: var(--dgw-text) !important;
	padding: 6px 14px !important;
	margin: 0 !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	white-space: nowrap !important;
	font-family: inherit !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: border-color 0.15s, background 0.15s, color 0.15s !important;
}
.dgw-view-filters .dgw-lb-tab:hover,
.dgw-view-filters .dgw-lb-gender-tab:hover,
.dgw-view-filters a.dgw-lb-tab:hover,
.dgw-view-filters a.dgw-lb-gender-tab:hover {
	border-color: var(--dgw-accent) !important;
	color: var(--dgw-accent) !important;
	background: var(--dgw-accent-soft) !important;
	text-decoration: none !important;
}
.dgw-view-filters .dgw-lb-tab.active,
.dgw-view-filters .dgw-lb-gender-tab.active,
.dgw-view-filters a.dgw-lb-tab.active,
.dgw-view-filters a.dgw-lb-gender-tab.active {
	background: var(--dgw-accent) !important;
	background-color: var(--dgw-accent) !important;
	border-color: var(--dgw-accent) !important;
	color: #fff !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

/* ============================================================
 * VISTAS DERIVADAS — Layout con sidebars (cuando hay banners
 * laterales activos). Si no hay sidebars, .dgw-view-main usa
 * todo el ancho y el wrapper no aplica grid.
 * ============================================================ */
.dgw-view-with-sidebars {
	display: grid;
	grid-template-columns: minmax(160px, 200px) 1fr minmax(160px, 200px);
	gap: 16px;
	align-items: start;
}
.dgw-view-with-sidebars .dgw-view-sidebar {
	width: 100%;
}
.dgw-view-with-sidebars .dgw-view-main {
	min-width: 0;
}
/* Caso: solo sidebar izquierdo o solo derecho */
.dgw-view-with-sidebars:not(:has(.dgw-view-sidebar-right)) {
	grid-template-columns: minmax(160px, 200px) 1fr;
}
.dgw-view-with-sidebars:not(:has(.dgw-view-sidebar-left)) {
	grid-template-columns: 1fr minmax(160px, 200px);
}

@media (max-width: 900px) {
	/* En mobile colapsa: ocultar sidebars (son "solo desktop" típicamente). */
	.dgw-view-with-sidebars {
		grid-template-columns: 1fr;
	}
	.dgw-view-with-sidebars .dgw-view-sidebar {
		display: none;
	}
}

/* ====================================================================
 * CLUBS GRID — [dgw_clubs_grid challenge="..."]
 *
 * Grilla de clubes con logo circular tipo perfil de jugador. Cada item
 * linkea al ranking del club ([dgw_ranking_by_club] con ?club=CODE).
 * Desktop: --dgw-grid-cols columnas (default 6). Mobile (<640px): 2.
 * ==================================================================== */
.dgw-clubs-grid-wrap {
	width: 100%;
	margin: 24px 0;
}
.dgw-clubs-grid {
	display: grid;
	grid-template-columns: repeat(var(--dgw-grid-cols, 6), minmax(0, 1fr));
	gap: 20px;
	align-items: start;
}
.dgw-clubs-grid-item {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 12px 8px;
	border-radius: 12px;
	text-decoration: none !important;
	color: var(--dgw-text);
	transition: background-color 0.15s ease, transform 0.15s ease;
	text-align: center;
	min-width: 0;
}
.dgw-clubs-grid-item:hover,
.dgw-clubs-grid-item:focus-visible {
	background: var(--dgw-bg-alt);
	transform: translateY(-2px);
	outline: none;
}
.dgw-clubs-grid-item:visited,
.dgw-clubs-grid-item:visited .dgw-clubs-grid-name {
	color: var(--dgw-text) !important;
}

/* AVATAR — círculo igual al avatar del perfil de jugador. */
.dgw-clubs-grid-avatar {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 88px !important;
	height: 88px !important;
	min-width: 88px;
	min-height: 88px;
	border-radius: 50%;
	background: var(--dgw-bg);
	border: 3px solid var(--dgw-accent, #0a3d2c);
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
	flex-shrink: 0;
}
.dgw-clubs-grid-logo {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	padding: 8px;
	box-sizing: border-box;
	background: #fff;
}
.dgw-clubs-grid-placeholder {
	font-size: 28px;
	font-weight: 700;
	color: var(--dgw-accent, #0a3d2c);
	letter-spacing: 0.5px;
	font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
}

/* NOMBRE — 2 líneas máximo, no rompe palabras feo. */
.dgw-clubs-grid-name {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--dgw-text);
	width: 100%;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	word-break: break-word;
	hyphens: auto;
}
.dgw-clubs-grid-item:hover .dgw-clubs-grid-name {
	color: var(--dgw-accent, #0a3d2c);
}

/* CONTADOR de jugadores. */
.dgw-clubs-grid-count {
	font-size: 11px;
	font-weight: 500;
	color: var(--dgw-text-muted);
	font-variant-numeric: tabular-nums;
}
.dgw-clubs-grid-count strong {
	color: var(--dgw-text);
	font-weight: 700;
	font-size: 12px;
}

/* MOBILE — fijo en 2 columnas y avatar un poco más chico. */
@media (max-width: 640px) {
	.dgw-clubs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.dgw-clubs-grid-avatar {
		width: 72px !important;
		height: 72px !important;
		min-width: 72px;
		min-height: 72px;
	}
	.dgw-clubs-grid-placeholder {
		font-size: 24px;
	}
	.dgw-clubs-grid-name {
		font-size: 12px;
	}
}

/* TABLET — 4 columnas entre 641 y 1024px si el shortcode pidió más. */
@media (min-width: 641px) and (max-width: 1024px) {
	.dgw-clubs-grid-wrap {
		--dgw-grid-cols: min(var(--dgw-grid-cols, 6), 4);
	}
}

/* ====================================================================
 * PLAYER PROFILE — Mejoras v3.7.0
 * 1) Rankings activos: máx 2 columnas en desktop (antes 3 a 1200px+)
 *    + posición más grande y emblema más prominente.
 * 2) Vueltas: "Fecha #N" cuando se conoce la etapa.
 * 3) Vueltas descartadas: visualización en gris.
 * ==================================================================== */

/* Override del grid de rankings: tope 2 columnas en desktop. */
@media (min-width: 1200px) {
	.dgw-rankings { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
}

/* Bloque de posición más ancho y números más grandes — ahora que las
 * cards son más amplias, podemos darle protagonismo al #N y al emblema. */
@media (min-width: 600px) {
	.dgw-rc-pos {
		flex: 0 0 170px;
	}
	.dgw-rc-pos-num {
		font-size: 80px;
	}
	.dgw-rc-pos-hash {
		font-size: 28px;
		margin-top: 14px;
	}
	.dgw-rc-pos[data-digits="3"] .dgw-rc-pos-num { font-size: 64px; }
	.dgw-rc-pos[data-digits="4"] .dgw-rc-pos-num { font-size: 48px; }
	.dgw-rc-pos[data-digits="5"] .dgw-rc-pos-num { font-size: 38px; }

	/* Emblema del challenge más visible — se ve al fondo del card grande. */
	.dgw-rc-emblem-big {
		position: absolute;
		right: 14px;
		top: 50%;
		transform: translateY(-50%);
		width: 84px;
		height: 84px;
		object-fit: contain;
		opacity: 0.95;
		pointer-events: none;
	}
	.dgw-rc-body {
		padding-right: 110px;
	}
}

/* "Fecha #N" tag en las vueltas computadas. */
.dgw-round-fecha-tag {
	display: inline-block;
	background: var(--p-green, #0a3d2c);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 999px;
	letter-spacing: 0.3px;
	text-transform: uppercase;
	line-height: 1;
}
.dgw-round-fecha-date {
	display: block;
	font-size: 11px;
	color: var(--p-muted, #64748b);
	margin-top: 4px;
	font-weight: 500;
}

/* Badge "No computa" arriba a la izquierda de la card descartada. */
.dgw-round-dropped-badge {
	display: inline-block;
	background: #fee2e2;
	color: #b91c1c;
	font-size: 10px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 999px;
	letter-spacing: 0.3px;
	text-transform: uppercase;
	line-height: 1.4;
	margin-top: 6px;
}

/* Vuelta descartada: opacidad reducida y fondo gris claro. */
.dgw-round-card-dropped {
	background: #f1f5f9 !important;
	border-color: #cbd5e1 !important;
	opacity: 0.78;
}
.dgw-round-card-dropped:hover {
	opacity: 1;
}
.dgw-round-card-dropped .dgw-round-card-score-value,
.dgw-round-card-dropped .dgw-round-card-score-value-sm,
.dgw-round-card-dropped .dgw-round-card-diff-value,
.dgw-round-card-dropped .dgw-round-card-club-name {
	color: var(--p-muted, #64748b) !important;
}
.dgw-round-card-dropped .dgw-round-fecha-tag {
	background: #94a3b8;
}
.dgw-round-card-dropped .dgw-round-card-rewards {
	display: none;
}

/* ====================================================================
 * PLAYER PROFILE — Ajustes v3.7.1
 * - Más aire entre secciones (KPIs ↔ Rankings ↔ Vueltas) y entre cards.
 * - Diferenciación más fuerte para vueltas descartadas (no computan).
 * ==================================================================== */

/* Más separación vertical entre secciones del perfil. */
.dgw-section + .dgw-section,
.dgw-section + .dgw-banner-slot,
.dgw-banner-slot + .dgw-section {
	margin-top: 40px !important;
}
.dgw-section {
	margin-bottom: 8px;
}

/* Header de sección con más respiro abajo. */
.dgw-section-head {
	margin-bottom: 18px !important;
}

/* Más espacio entre las cards de rankings activos. */
.dgw-rankings {
	gap: 18px !important;
}
@media (min-width: 1200px) {
	.dgw-rankings { gap: 22px !important; }
}

/* Más espacio entre cards de vueltas. */
.dgw-rounds {
	gap: 18px !important;
}
@media (min-width: 1200px) {
	.dgw-rounds { gap: 22px !important; }
}

/* === VUELTAS DESCARTADAS — versión reforzada === */
.dgw-round-card-dropped {
	background: #f1f5f9 !important;
	border: 1px dashed #94a3b8 !important;
	opacity: 0.7;
	position: relative;
}
.dgw-round-card-dropped::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 12px,
		rgba(148, 163, 184, 0.08) 12px,
		rgba(148, 163, 184, 0.08) 14px
	);
	pointer-events: none;
	border-radius: inherit;
}
.dgw-round-card-dropped:hover {
	opacity: 0.95;
	border-style: solid !important;
}
.dgw-round-card-dropped .dgw-round-card-score-value,
.dgw-round-card-dropped .dgw-round-card-score-value-sm,
.dgw-round-card-dropped .dgw-round-card-diff-value,
.dgw-round-card-dropped .dgw-round-card-club-name,
.dgw-round-card-dropped .dgw-round-fecha-date {
	color: #94a3b8 !important;
}
.dgw-round-card-dropped .dgw-round-fecha-tag {
	background: #94a3b8 !important;
	color: #fff !important;
}
.dgw-round-card-dropped .dgw-round-card-diff {
	background: transparent !important;
	color: #94a3b8 !important;
}
.dgw-round-card-dropped .dgw-round-card-rewards {
	display: none !important;
}
.dgw-round-card-dropped .dgw-round-card-club-logo {
	filter: grayscale(0.7);
	opacity: 0.6;
}

/* Badge "NO COMPUTA" más prominente. */
.dgw-round-dropped-badge {
	display: inline-block;
	background: #fee2e2 !important;
	color: #b91c1c !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	padding: 3px 9px !important;
	border-radius: 999px !important;
	letter-spacing: 0.5px !important;
	text-transform: uppercase !important;
	line-height: 1.4 !important;
	margin-top: 8px !important;
	border: 1px solid #fca5a5;
}

/* ====================================================================
 * VUELTAS COMPUTADAS — Tabla horizontal v3.7.2
 * Cada vuelta en una fila completa de ancho total.
 * Grid de 7 columnas: Fecha | Club | Gross | Net | HCP | Dif | Recompensa.
 * Variables: --dgw-round-accent (accent del challenge, fallback al global).
 * ==================================================================== */

.dgw-section-meta {
	font-size: 11px;
	color: var(--p-muted, #64748b);
	margin-left: 12px;
	font-weight: 500;
}

.dgw-rounds-table {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* Grid compartido por thead y rows */
.dgw-rounds-thead,
.dgw-round-row {
	display: grid;
	grid-template-columns:
		minmax(90px, 0.9fr)    /* Fecha */
		minmax(160px, 1.5fr)   /* Club */
		minmax(50px, 0.5fr)    /* Gross */
		minmax(60px, 0.6fr)    /* Net */
		minmax(50px, 0.4fr)    /* HCP */
		minmax(60px, 0.55fr)   /* Dif */
		minmax(110px, 0.9fr);  /* Recompensa */
	gap: 12px;
	align-items: center;
}

/* Header de columnas */
.dgw-rounds-thead {
	padding: 0 16px 6px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--p-muted, #64748b);
}
.dgw-rounds-thead .dgw-round-col-num,
.dgw-rounds-thead .dgw-round-col-num-sm { text-align: right; }
.dgw-rounds-thead .dgw-round-col-dif,
.dgw-rounds-thead .dgw-round-col-reward { text-align: center; }

/* Fila base */
.dgw-round-row {
	background: var(--p-bg, #fff);
	border: 1px solid var(--p-border, #e2e8f0);
	border-left: 3px solid var(--dgw-round-accent, var(--p-green, #0a3d2c));
	border-radius: 10px;
	padding: 14px 16px;
	transition: all 0.15s ease;
}
.dgw-round-row:hover {
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
	transform: translateY(-1px);
}

/* Col: Fecha — pill con accent del challenge + fecha en chico debajo */
.dgw-round-col-fecha {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}
.dgw-round-fecha-pill {
	display: inline-block;
	background: var(--dgw-round-accent, var(--p-green, #0a3d2c));
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
	letter-spacing: 0.3px;
	text-transform: uppercase;
	line-height: 1.2;
	white-space: nowrap;
}
.dgw-round-fecha-date {
	font-size: 10px;
	color: var(--p-muted, #64748b);
	white-space: nowrap;
}

/* Col: Club — logo circular + nombre + par */
.dgw-round-col-club {
	display: flex !important;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.dgw-round-club-logo {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: contain;
	background: var(--p-bg-soft, #f8fafc);
	border: 1px solid var(--p-border, #e2e8f0);
	flex-shrink: 0;
	padding: 2px;
	box-sizing: border-box;
}
.dgw-round-club-logo-empty {
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}
.dgw-round-club-text {
	display: flex !important;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}
.dgw-round-club-name {
	font-size: 13px;
	font-weight: 700;
	color: var(--p-text, #0f172a);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-round-club-meta {
	font-size: 10px;
	color: var(--p-muted, #64748b);
}

/* Cols: numéricos (Gross/Net/HCP) */
.dgw-round-col-num {
	text-align: right;
	font-size: 17px;
	font-weight: 700;
	color: var(--p-text, #0f172a);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.dgw-round-col-num-sm {
	font-size: 13px;
	font-weight: 500;
	color: var(--p-muted, #64748b);
}

/* Col: Dif — pill con color según diferencial */
.dgw-round-col-dif {
	text-align: center;
}
.dgw-round-dif-pill {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	min-width: 38px;
	text-align: center;
}
.dgw-round-dif-pill.good {
	background: #d1fae5;
	color: #065f46;
}
.dgw-round-dif-pill.mid {
	background: #fef3c7;
	color: #92400e;
}
.dgw-round-dif-pill.bad {
	background: #fee2e2;
	color: #991b1b;
}

/* Col: Recompensa */
.dgw-round-col-reward {
	text-align: right;
	display: flex !important;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	white-space: nowrap;
}
.dgw-round-pts {
	font-size: 13px;
	font-weight: 700;
	color: var(--dgw-round-accent, var(--p-green, #0a3d2c));
	font-variant-numeric: tabular-nums;
}
.dgw-round-coins {
	display: inline-flex !important;
	align-items: center;
	gap: 3px;
	font-size: 12px;
	font-weight: 700;
	color: #b45309;
	font-variant-numeric: tabular-nums;
}
.dgw-round-coins-icon {
	width: 14px;
	height: 14px;
	object-fit: contain;
}
.dgw-muted {
	color: #cbd5e1;
	font-size: 13px;
}

/* DIVISOR — corte de "descartadas" */
.dgw-rounds-divider {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin: 10px 0 4px;
}
.dgw-rounds-divider::before,
.dgw-rounds-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--p-border, #e2e8f0);
}
.dgw-rounds-divider span {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--p-muted, #64748b);
}

/* FILAS DESCARTADAS */
.dgw-round-row-dropped {
	background: #f1f5f9 !important;
	border: 1px dashed #94a3b8 !important;
	opacity: 0.72;
	position: relative;
}
.dgw-round-row-dropped::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 12px,
		rgba(148, 163, 184, 0.06) 12px,
		rgba(148, 163, 184, 0.06) 14px
	);
	pointer-events: none;
	border-radius: inherit;
}
.dgw-round-row-dropped:hover {
	opacity: 0.95;
	border-style: solid !important;
	box-shadow: none;
	transform: none;
}
.dgw-round-row-dropped .dgw-round-fecha-pill {
	background: #94a3b8 !important;
	color: #fff !important;
}
.dgw-round-row-dropped .dgw-round-club-logo {
	filter: grayscale(0.7);
	opacity: 0.65;
}
.dgw-round-row-dropped .dgw-round-club-name,
.dgw-round-row-dropped .dgw-round-col-num,
.dgw-round-row-dropped .dgw-round-col-num-sm {
	color: #64748b !important;
}
.dgw-round-row-dropped .dgw-round-dif-pill {
	background: transparent !important;
	color: #94a3b8 !important;
}

/* RESPONSIVE — Mobile + TABLET: stack vertical de filas dentro de cada
 * vuelta. v3.8.85 — Antes era solo max-width:700px, así que en TABLET
 * (768–1023px) seguía usando el grid de 7 columnas con ancho mínimo
 * ~712px que DESBORDABA el marco (los puntos y coins se salían). Ahora
 * el stack arranca en 1023px, consistente con el resto del layout
 * responsive del plugin. */
@media (max-width: 1023px) {
	.dgw-rounds-thead { display: none; }
	.dgw-round-row {
		grid-template-columns: 90px 1fr 1fr;
		grid-template-areas:
			"fecha club  club"
			"fecha gross net"
			"fecha hcp   dif"
			"reward reward reward";
		gap: 8px 12px;
		padding: 12px 14px;
	}
	.dgw-round-col-fecha   { grid-area: fecha; }
	.dgw-round-col-club    { grid-area: club; }
	.dgw-round-col-reward  {
		grid-area: reward;
		justify-content: flex-start;
		border-top: 1px solid var(--p-border, #e2e8f0);
		padding-top: 8px;
		margin-top: 4px;
	}
	/* Antes de la columna numérica/dif añadimos mini-label en mobile */
	.dgw-round-col-num::before,
	.dgw-round-col-num-sm::before,
	.dgw-round-col-dif::before {
		content: attr(data-label);
	}
	.dgw-round-col-num,
	.dgw-round-col-num-sm,
	.dgw-round-col-dif {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		gap: 2px;
	}
}

/* ====================================================================
 * VUELTAS — Ajustes v3.7.4
 * 1) Recompensa MUCHO más grande (es lo más importante de la vuelta).
 * 2) Descartadas hiper-diferenciadas: badge rojo "NO COMPUTA" en la
 *    columna fecha, fondo gris saturado, números tachados.
 * ==================================================================== */

/* Ajustar la grilla: dar más ancho a la columna de recompensa.
 * v3.8.85 — Envuelto en min-width:1024px (solo desktop). Antes era
 * global y, al estar DESPUÉS del media query del stack en el archivo,
 * pisaba el layout apilado de tablet → los puntos/coins desbordaban el
 * marco en tablet. Ahora solo aplica en desktop; tablet/mobile usan el
 * stack vertical limpio. */
@media (min-width: 1024px) {
.dgw-rounds-thead,
.dgw-round-row {
	grid-template-columns:
		minmax(110px, 1fr)     /* Fecha — más ancho para el badge "No computa" */
		minmax(160px, 1.5fr)   /* Club */
		minmax(50px, 0.5fr)    /* Gross */
		minmax(60px, 0.6fr)    /* Net */
		minmax(50px, 0.4fr)    /* HCP */
		minmax(60px, 0.55fr)   /* Dif */
		minmax(150px, 1.3fr) !important;  /* Recompensa — mucho más ancha */
}
} /* /@media (min-width:1024px) v3.8.85 */

/* === RECOMPENSA — MUCHO más grande === */
.dgw-round-pts {
	font-size: 22px !important;
	font-weight: 800 !important;
	color: var(--dgw-round-accent, var(--p-green, #0a3d2c)) !important;
	font-variant-numeric: tabular-nums !important;
	line-height: 1 !important;
	letter-spacing: -0.01em !important;
}
.dgw-round-coins {
	font-size: 18px !important;
	font-weight: 800 !important;
	color: #b45309 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	font-variant-numeric: tabular-nums !important;
	line-height: 1 !important;
}
.dgw-round-coins-icon {
	width: 22px !important;
	height: 22px !important;
	object-fit: contain !important;
}
.dgw-round-col-reward {
	gap: 12px !important;
}

/* === BADGE "NO COMPUTA" — rojo, fuerte, debajo de la fecha === */
.dgw-round-no-cuenta-badge {
	display: inline-block !important;
	background: #dc2626 !important;
	color: #fff !important;
	font-size: 9px !important;
	font-weight: 800 !important;
	padding: 3px 8px !important;
	border-radius: 4px !important;
	letter-spacing: 0.5px !important;
	text-transform: uppercase !important;
	line-height: 1.3 !important;
	margin-top: 4px !important;
	white-space: nowrap !important;
}

/* === DESCARTADAS — versión HIPER-obvia === */
.dgw-round-row-dropped {
	background: #e2e8f0 !important; /* gris más saturado que antes */
	border: 1px dashed #64748b !important; /* dashed más oscuro */
	border-left: 3px dashed #dc2626 !important; /* borde izq rojo dashed */
	opacity: 1 !important; /* sin opacidad, queremos legibilidad pero diferenciación por color */
	position: relative;
}
.dgw-round-row-dropped::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 8px,
		rgba(100, 116, 139, 0.15) 8px,
		rgba(100, 116, 139, 0.15) 10px
	) !important;
	pointer-events: none !important;
	border-radius: inherit !important;
}
.dgw-round-row-dropped > * {
	position: relative;
	z-index: 1;
}
.dgw-round-row-dropped:hover {
	transform: none !important;
	box-shadow: none !important;
}
.dgw-round-row-dropped .dgw-round-fecha-pill {
	background: #94a3b8 !important;
	color: #fff !important;
}
.dgw-round-row-dropped .dgw-round-club-logo {
	filter: grayscale(1) !important;
	opacity: 0.5 !important;
}
.dgw-round-row-dropped .dgw-round-club-name {
	color: #475569 !important;
	text-decoration: line-through !important;
	text-decoration-color: #94a3b8 !important;
	text-decoration-thickness: 1px !important;
}
.dgw-round-row-dropped .dgw-round-col-num,
.dgw-round-row-dropped .dgw-round-col-num-sm {
	color: #94a3b8 !important;
	text-decoration: line-through !important;
	text-decoration-color: #94a3b8 !important;
	text-decoration-thickness: 1.5px !important;
}
.dgw-round-row-dropped .dgw-round-dif-pill {
	background: #cbd5e1 !important;
	color: #475569 !important;
	text-decoration: line-through !important;
}

/* ====================================================================
 * VUELTAS — Mobile fix v3.7.7
 * Override final que se aplica DESPUÉS del !important de la grid desktop.
 * Layout vertical: cada fila en card propio, todo apilado verticalmente.
 * ==================================================================== */
@media (max-width: 768px) {
	.dgw-rounds-thead { display: none !important; }

	.dgw-round-row {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: none !important;
		grid-template-areas: none !important;
		gap: 10px !important;
		padding: 14px !important;
		align-items: stretch !important;
	}

	/* Cada columna se convierte en fila con label */
	.dgw-round-row .dgw-round-col {
		width: 100%;
		display: flex !important;
		flex-direction: row !important;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		text-align: left !important;
	}

	/* Fecha: pill + fecha en una fila */
	.dgw-round-row .dgw-round-col-fecha {
		flex-direction: row !important;
		flex-wrap: wrap;
		gap: 8px;
		padding-bottom: 8px;
		border-bottom: 1px solid var(--p-border, #e2e8f0);
	}

	/* Club: imagen + texto a la izquierda, sin label */
	.dgw-round-row .dgw-round-col-club {
		justify-content: flex-start;
		padding-bottom: 8px;
		border-bottom: 1px solid var(--p-border, #e2e8f0);
	}

	/* Columnas numéricas: agregar label antes del valor */
	.dgw-round-row .dgw-round-col-num::before,
	.dgw-round-row .dgw-round-col-num-sm::before,
	.dgw-round-row .dgw-round-col-dif::before,
	.dgw-round-row .dgw-round-col-reward::before {
		content: attr(data-mlabel);
		font-size: 11px;
		font-weight: 700;
		color: var(--p-muted, #64748b);
		text-transform: uppercase;
		letter-spacing: 0.5px;
	}

	.dgw-round-row .dgw-round-col-num,
	.dgw-round-row .dgw-round-col-num-sm {
		font-size: 18px !important;
		justify-content: space-between;
	}
	.dgw-round-row .dgw-round-col-num-sm {
		font-size: 15px !important;
	}

	.dgw-round-row .dgw-round-col-dif {
		justify-content: space-between;
	}

	.dgw-round-row .dgw-round-col-reward {
		justify-content: space-between !important;
		border-top: 1px solid var(--p-border, #e2e8f0);
		padding-top: 10px;
		margin-top: 4px;
	}
	.dgw-round-row .dgw-round-col-reward .dgw-round-pts {
		font-size: 24px !important;
	}

	/* Descartadas en mobile: mantener el patrón pero más compacto */
	.dgw-round-row-dropped {
		opacity: 0.85;
	}
}

/* ====================================================================
 * VUELTAS DESCARTADAS — Recompensa especial v3.7.8
 * - Puntos tachados (no cuentan al ranking).
 * - Coins en color normal pero visibles (sí cuentan al total).
 * ==================================================================== */

/* Puntos descartados — tachados y en gris para indicar que NO cuentan */
.dgw-round-pts-dropped {
	font-size: 16px;
	font-weight: 700;
	color: #94a3b8 !important;
	font-variant-numeric: tabular-nums;
	text-decoration: line-through;
	text-decoration-color: #cbd5e1;
	text-decoration-thickness: 2px;
	cursor: help;
}

/* Coins en filas descartadas — sí cuentan, en color naranja normal pero con badge "✓" sutil */
.dgw-round-row-dropped .dgw-round-coins-kept {
	color: #b45309 !important;
	font-weight: 800;
	cursor: help;
	position: relative;
}
.dgw-round-row-dropped .dgw-round-coins-kept .dgw-round-coins-icon {
	filter: none !important;
	opacity: 1 !important;
}
.dgw-round-row-dropped .dgw-round-coins-kept::after {
	content: "✓";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	margin-left: 4px;
	font-size: 10px;
	font-weight: 900;
	background: #16a34a;
	color: #fff;
	border-radius: 50%;
	line-height: 1;
}

/* En mobile la columna recompensa de descartadas se ve más compacta */
@media (max-width: 768px) {
	.dgw-round-row-dropped .dgw-round-col-reward {
		flex-wrap: wrap;
		gap: 8px;
	}
}

/* ====================================================================
 * AUTH — Login / Register / Forgot Password v3.7.28
 * Card branded con accent del desafío/federación.
 *
 * El color principal se pasa por inline style="--dgw-accent: #xxx"
 * para que cada federación/desafío personalice su branding sin tener
 * que generar CSS por separado. Todo el card se pinta con var().
 *
 * Variantes:
 *   .dgw-auth-card           default (460px) - login y forgot
 *   .dgw-auth-card-wide      ~560px         - registro (3 pasos)
 * ==================================================================== */

.dgw-auth-card {
	position: relative;
	max-width: 460px;
	margin: 2.5rem auto;
	padding: 36px 32px 30px;
	background: var(--dgw-bg, #fff);
	border: 1px solid var(--dgw-border, #e2e8f0);
	border-radius: 16px;
	box-shadow: 0 4px 28px rgba(15, 23, 42, 0.08);
	overflow: hidden;
}
.dgw-auth-card-wide {
	max-width: 560px;
}

/* Stripe superior con el color de marca */
.dgw-auth-accent-stripe {
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: linear-gradient(
		90deg,
		var(--dgw-accent, #0a3d2c) 0%,
		color-mix(in srgb, var(--dgw-accent, #0a3d2c) 65%, white) 100%
	);
}

/* Header de federación (logo + nombre) */
.dgw-auth-fed {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: -4px 0 18px;
	padding: 8px 12px;
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 6%, white);
	border: 1px solid color-mix(in srgb, var(--dgw-accent, #0a3d2c) 18%, white);
	border-radius: 10px;
	font-size: 13px;
}
.dgw-auth-fed-logo {
	width: 28px;
	height: 28px;
	object-fit: contain;
	flex-shrink: 0;
}
.dgw-auth-fed-name {
	font-weight: 600;
	color: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 75%, #0f172a);
	line-height: 1.3;
}

.dgw-auth-card h2 {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 700;
	color: var(--dgw-text, #0f172a);
	letter-spacing: -0.01em;
}
.dgw-auth-sub {
	margin: 0 0 22px;
	font-size: 14px;
	color: var(--dgw-text-muted, #64748b);
	line-height: 1.5;
}

/* Indicador de pasos (registro) */
.dgw-auth-steps {
	display: flex;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	counter-reset: dgw-step;
}
.dgw-auth-steps li {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	position: relative;
	font-size: 11px;
	color: var(--dgw-text-muted, #94a3b8);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: color 0.2s ease;
}
.dgw-auth-steps li::before {
	content: "";
	position: absolute;
	top: 14px;
	left: calc(50% + 18px);
	right: calc(-50% + 18px);
	height: 2px;
	background: var(--dgw-border, #e2e8f0);
	z-index: 0;
	transition: background 0.2s ease;
}
.dgw-auth-steps li:last-child::before {
	display: none;
}
.dgw-auth-step-num {
	position: relative;
	z-index: 1;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--dgw-bg, #fff);
	border: 2px solid var(--dgw-border, #e2e8f0);
	color: var(--dgw-text-muted, #94a3b8);
	font-size: 13px;
	font-weight: 700;
	transition: all 0.2s ease;
}
.dgw-auth-steps li.is-active {
	color: var(--dgw-accent, #0a3d2c);
}
.dgw-auth-steps li.is-active .dgw-auth-step-num {
	border-color: var(--dgw-accent, #0a3d2c);
	background: var(--dgw-accent, #0a3d2c);
	color: #fff;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--dgw-accent, #0a3d2c) 18%, transparent);
}
.dgw-auth-steps li.is-done {
	color: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 70%, #0f172a);
}
.dgw-auth-steps li.is-done .dgw-auth-step-num {
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 15%, white);
	border-color: var(--dgw-accent, #0a3d2c);
	color: var(--dgw-accent, #0a3d2c);
}
.dgw-auth-steps li.is-done::before,
.dgw-auth-steps li.is-active::before {
	background: var(--dgw-accent, #0a3d2c);
}
.dgw-auth-step-label {
	white-space: nowrap;
}
@media (max-width: 480px) {
	.dgw-auth-step-label {
		font-size: 10px;
	}
}

/* Form general */
.dgw-auth-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.dgw-auth-form label {
	display: flex !important;
	flex-direction: column;
	gap: 6px;
}
.dgw-auth-form label > span {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dgw-text-muted, #64748b);
}
.dgw-auth-form input[type="text"],
.dgw-auth-form input[type="email"],
.dgw-auth-form input[type="password"],
.dgw-auth-form select {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--dgw-border, #e2e8f0);
	border-radius: 10px;
	font-size: 15px;
	background: var(--dgw-bg, #fff);
	color: var(--dgw-text, #0f172a);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
}
.dgw-auth-form input::placeholder {
	color: #cbd5e1;
}
.dgw-auth-form input:focus,
.dgw-auth-form select:focus {
	outline: none;
	border-color: var(--dgw-accent, #0a3d2c);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--dgw-accent, #0a3d2c) 15%, transparent);
}
.dgw-auth-form input[readonly] {
	background: #f8fafc;
	color: var(--dgw-text-muted, #64748b);
	cursor: default;
}

/* Step container (registro) */
.dgw-auth-step {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Pill informativo (ej: "Te estás registrando en X") */
.dgw-auth-info-pill {
	padding: 12px 14px;
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 5%, white);
	border: 1px solid color-mix(in srgb, var(--dgw-accent, #0a3d2c) 18%, white);
	border-radius: 10px;
	font-size: 13.5px;
	color: var(--dgw-text, #0f172a);
}

/* Fila con input + botón (lookup de matrícula) */
.dgw-auth-input-row {
	display: flex;
	gap: 8px;
}
.dgw-auth-input-row input {
	flex: 1;
	min-width: 0;
}
.dgw-auth-input-row .dgw-btn {
	white-space: nowrap;
	flex-shrink: 0;
}

/* Hint debajo de campos */
.dgw-auth-hint {
	font-size: 12px;
	color: var(--dgw-text-muted, #94a3b8);
	line-height: 1.4;
	margin-top: 2px;
	font-weight: normal;
	letter-spacing: 0;
	text-transform: none;
}

/* Estado del lookup AJAX */
.dgw-auth-lookup-status {
	min-height: 0;
	font-size: 13px;
	line-height: 1.4;
	padding: 0;
	border-radius: 8px;
	transition: all 0.15s ease;
}
.dgw-auth-lookup-status:not(:empty) {
	padding: 10px 12px;
	min-height: 20px;
}
.dgw-auth-lookup-loading {
	background: #f1f5f9;
	color: #64748b;
}
.dgw-auth-lookup-success {
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 10%, white);
	color: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 75%, #0f172a);
	border: 1px solid color-mix(in srgb, var(--dgw-accent, #0a3d2c) 25%, white);
}
.dgw-auth-lookup-error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

/* Card de confirmación de datos del padrón */
.dgw-auth-confirm-card {
	padding: 16px;
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 4%, white);
	border: 1px solid color-mix(in srgb, var(--dgw-accent, #0a3d2c) 20%, white);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.dgw-auth-confirm-title {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 80%, #0f172a);
}
.dgw-auth-confirm-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 12px;
}
.dgw-auth-confirm-full {
	grid-column: 1 / -1;
}
.dgw-auth-confirm-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dgw-text-muted, #64748b);
	margin-bottom: 4px;
}

/* Checkbox "Mantener sesión iniciada" */
.dgw-auth-checkbox {
	flex-direction: row !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 14px;
}
.dgw-auth-checkbox > span {
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: normal !important;
	color: var(--dgw-text, #0f172a) !important;
}
.dgw-auth-checkbox input[type="checkbox"] {
	accent-color: var(--dgw-accent, #0a3d2c);
	width: 16px;
	height: 16px;
}

/* Botones */
.dgw-auth-form .dgw-btn-primary {
	margin-top: 4px;
	padding: 13px 24px;
	background: var(--dgw-accent, #0a3d2c);
	color: #fff;
	border: none;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
	box-shadow: 0 2px 8px color-mix(in srgb, var(--dgw-accent, #0a3d2c) 30%, transparent);
}
.dgw-auth-form .dgw-btn-primary:hover {
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 88%, black);
	box-shadow: 0 4px 14px color-mix(in srgb, var(--dgw-accent, #0a3d2c) 35%, transparent);
}
.dgw-auth-form .dgw-btn-primary:active {
	transform: translateY(1px);
}
.dgw-auth-form .dgw-btn-secondary {
	padding: 11px 18px;
	background: #fff;
	color: var(--dgw-accent, #0a3d2c);
	border: 1.5px solid var(--dgw-accent, #0a3d2c);
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.15s ease;
}
.dgw-auth-form .dgw-btn-secondary:hover {
	background: color-mix(in srgb, var(--dgw-accent, #0a3d2c) 10%, white);
}

/* Links auxiliares (forgot / register / volver) */
.dgw-auth-links {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--dgw-border, #e2e8f0);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 13.5px;
}
.dgw-auth-links a {
	color: var(--dgw-accent, #0a3d2c);
	text-decoration: none;
	font-weight: 500;
	transition: opacity 0.15s ease;
}
.dgw-auth-links a:hover {
	opacity: 0.75;
	text-decoration: underline;
}
.dgw-auth-link-sep {
	color: var(--dgw-text-muted, #cbd5e1);
}

/* Flash messages */
.dgw-flash {
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 14px;
	margin-bottom: 18px;
	border: 1px solid transparent;
	line-height: 1.4;
}
.dgw-flash-success {
	background: #d1fae5;
	color: #065f46;
	border-color: #a7f3d0;
}
.dgw-flash-error {
	background: #fee2e2;
	color: #991b1b;
	border-color: #fca5a5;
}

/* Mobile tweaks */
@media (max-width: 520px) {
	.dgw-auth-card {
		margin: 1rem auto;
		padding: 28px 22px 24px;
		border-radius: 14px;
	}
	.dgw-auth-card h2 {
		font-size: 21px;
	}
	.dgw-auth-input-row {
		flex-direction: column;
	}
	.dgw-auth-input-row .dgw-btn {
		width: 100%;
	}
	.dgw-auth-confirm-grid {
		grid-template-columns: 1fr;
	}
}

/* ====================================================================
 * reCAPTCHA branding v3.7.11
 * Google requiere mostrar el badge o un disclaimer cuando se usa v3.
 * El badge floating de Google molesta — lo ocultamos y mostramos texto.
 * ==================================================================== */
.grecaptcha-badge { visibility: hidden; }
.dgw-recaptcha-notice {
	font-size: 11px;
	color: var(--p-muted, #94a3b8);
	margin-top: 14px;
	text-align: center;
	line-height: 1.5;
}
.dgw-recaptcha-notice a { color: inherit; text-decoration: underline; }

/* ====================================================================
 * AUTH — Password helpers v3.7.12
 * Toggle "mostrar contraseña" + indicador de fuerza.
 * ==================================================================== */
.dgw-pw-field { position: relative; }
.dgw-pw-toggle {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px 6px;
	color: #64748b;
	font-size: 18px;
	line-height: 1;
	transition: color 0.15s ease;
}
.dgw-pw-toggle:hover { color: #0a3d2c; }
.dgw-pw-toggle svg { display: block; width: 20px; height: 20px; }

.dgw-pw-strength {
	margin-top: 6px;
	height: 6px;
	border-radius: 3px;
	background: #e2e8f0;
	overflow: hidden;
	position: relative;
}
.dgw-pw-strength-bar {
	height: 100%;
	width: 0%;
	transition: width 0.25s ease, background-color 0.25s ease;
	background: #94a3b8;
}
.dgw-pw-strength-bar.weak   { background: #dc2626; width: 25%; }
.dgw-pw-strength-bar.fair   { background: #f59e0b; width: 50%; }
.dgw-pw-strength-bar.good   { background: #3b82f6; width: 75%; }
.dgw-pw-strength-bar.strong { background: #16a34a; width: 100%; }
.dgw-pw-strength-label {
	font-size: 11px;
	margin-top: 4px;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 600;
	min-height: 14px;
}

/* ====================================================================
 * Resend button + danger button v3.7.13
 * ==================================================================== */
.dgw-resend-block {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--dgw-border, #e2e8f0);
}
.dgw-btn-secondary {
	display: inline-block;
	padding: 10px 20px;
	background: #fff;
	color: var(--dgw-accent, #0a3d2c) !important;
	border: 1px solid var(--dgw-accent, #0a3d2c);
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, opacity 0.15s ease;
}
.dgw-btn-secondary:hover:not(:disabled) {
	background: var(--dgw-accent, #0a3d2c);
	color: #fff !important;
}
.dgw-btn-secondary:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
.dgw-btn-danger {
	background: #dc2626 !important;
	border: none;
	color: #fff !important;
}
.dgw-btn-danger:hover {
	background: #b91c1c !important;
}
.dgw-flash-info {
	background: #dbeafe;
	color: #1e40af;
	border-color: #93c5fd;
}

/* ====================================================================
 * COINS LEADERBOARD v3.7.15
 * ==================================================================== */
.dgw-coins-lb {
	margin: 1.5rem 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.dgw-coins-lb-tab-icon { display: none !important; }
/* Protección contra themes que ponen background:#000 a img sin src — forzamos fondo gris claro. */
.dgw-coins-lb img.dgw-coins-lb-avatar {
	background: #f1f5f9 !important;
	color: transparent;
}

.dgw-coins-lb-tabs {
	display: flex;
	gap: 0;
	background: #f1f5f9;
	border-radius: 12px;
	padding: 6px;
	margin-bottom: 18px;
}
.dgw-coins-lb-tab {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 16px;
	background: transparent;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: #475569;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.dgw-coins-lb-tab:hover { color: #0f172a; }
.dgw-coins-lb-tab.is-active {
	background: #fff;
	color: #0a3d2c;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.dgw-coins-lb-tab-icon {
	font-size: 18px;
	line-height: 1;
}
.dgw-coins-lb-tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	padding: 2px 8px;
	background: rgba(0,0,0,0.06);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
}
.dgw-coins-lb-tab.is-active .dgw-coins-lb-tab-count {
	background: rgba(10, 61, 44, 0.1);
	color: #0a3d2c;
}

.dgw-coins-lb-panel { display: none; }
.dgw-coins-lb-panel.is-active { display: block; }

.dgw-coins-lb-empty {
	padding: 40px 20px;
	text-align: center;
	color: #64748b;
	font-size: 14px;
	background: #f8fafc;
	border-radius: 12px;
}

.dgw-coins-lb-table {
	/* v3.8.49 — Transparente (igual que el ranking principal): las tarjetas
	 * blancas con sombra destacan sobre cualquier fondo del usuario. */
	background: transparent;
	border: 0;
	border-radius: 0;
	overflow: visible;
	padding: 0;
}

.dgw-coins-lb-head {
	display: grid;
	grid-template-columns: 60px 1fr 1fr 130px;
	gap: 12px;
	padding: 12px 18px;
	background: transparent;
	border-bottom: 0;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #64748b;
}

.dgw-coins-lb-row {
	display: grid;
	grid-template-columns: 60px 1fr 1fr 130px;
	gap: 12px;
	/* v3.8.47 — Tarjeta flotante: más padding, separación, sombra suave,
	 * esquinas redondeadas. Sin border-bottom (el gap natural alcanza). */
	padding: 18px;
	margin-bottom: 8px;
	background: #ffffff;
	border-radius: 10px;
	border: 0;
	box-shadow:
		0 1px 2px rgba(15, 23, 42, 0.04),
		0 2px 6px rgba(15, 23, 42, 0.05);
	align-items: center;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.18s ease, transform 0.18s ease, background-color 0.15s ease;
}
.dgw-coins-lb-row:hover {
	background: #ffffff;
	box-shadow:
		0 2px 4px rgba(15, 23, 42, 0.06),
		0 6px 16px rgba(15, 23, 42, 0.08);
	transform: translateY(-1px);
}
.dgw-coins-lb-row:last-child { margin-bottom: 0; }

/* Mantener los gradientes del podio pero sobre la tarjeta blanca individual. */
.dgw-coins-lb-row.is-podium { background: linear-gradient(90deg, rgba(254,243,199,0.45) 0%, #ffffff 60%); }
.dgw-coins-lb-row.is-silver { background: linear-gradient(90deg, rgba(241,245,249,0.85) 0%, #ffffff 60%); }
.dgw-coins-lb-row.is-bronze { background: linear-gradient(90deg, rgba(254,215,170,0.45) 0%, #ffffff 60%); }

.dgw-coins-lb-col-pos {
	font-weight: 700;
	font-size: 16px;
	color: #475569;
}
.dgw-coins-lb-medal { font-size: 24px; line-height: 1; }
.dgw-coins-lb-pos-num { font-variant-numeric: tabular-nums; }

.dgw-coins-lb-col-player {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.dgw-coins-lb-avatar {
	/* v3.8.47 — 56px (antes 40) para acompañar el estilo tarjeta tipo PGA. */
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	background: #f1f5f9;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
.dgw-coins-lb-player-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.dgw-coins-lb-player-name {
	font-weight: 600;
	font-size: 14px;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.dgw-coins-lb-player-meta {
	font-size: 12px;
	color: #94a3b8;
	font-variant-numeric: tabular-nums;
}

.dgw-coins-lb-col-club {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.dgw-coins-lb-club-logo {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.dgw-coins-lb-club-name {
	font-size: 13px;
	color: #475569;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dgw-coins-lb-col-coins {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	font-weight: 800;
	font-size: 17px;
	color: #b45309;
	font-variant-numeric: tabular-nums;
}
.dgw-coins-lb-coin-icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

/* Mobile */
@media (max-width: 1023px) {
	.dgw-coins-lb-head {
		display: none;
	}
	.dgw-coins-lb-row {
		grid-template-columns: 48px 1fr auto;
		grid-template-areas:
			"pos player coins"
			"pos club   coins";
		gap: 4px 12px;
		/* v3.8.47 — Padding mobile un poco mayor para acompañar el estilo tarjeta. */
		padding: 14px;
		margin-bottom: 6px;
	}
	.dgw-coins-lb-col-pos { grid-area: pos; align-self: center; }
	.dgw-coins-lb-col-player { grid-area: player; }
	.dgw-coins-lb-col-club { grid-area: club; padding-left: 56px; }
	.dgw-coins-lb-col-coins { grid-area: coins; align-self: center; }
	.dgw-coins-lb-avatar { width: 44px; height: 44px; }
	.dgw-coins-lb-club-logo { width: 18px; height: 18px; }
	.dgw-coins-lb-club-name { font-size: 12px; }
	.dgw-coins-lb-col-coins { font-size: 15px; }
	.dgw-coins-lb-coin-icon { width: 18px; height: 18px; }
	.dgw-coins-lb-tab { padding: 10px 8px; font-size: 13px; }
}

/* ====================================================================
 * CLUBS LEADERBOARD — v3.7.34
 * Leaderboard interclub que suma top N jugadores por club por categoría.
 * Soporta tabs de etapa y de categoría (incluye "General" agregado).
 * Cada fila es <details> expandible con el breakdown de jugadores que
 * aportaron, agrupados por categoría en la vista General.
 * Se pinta con --dgw-accent (igual que coins leaderboard).
 * ==================================================================== */
.dgw-clubs-lb {
	--dgw-accent: #0a3d2c;
	margin: 1.5em 0;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
	overflow: hidden;
}

.dgw-clubs-lb-header {
	padding: 22px 24px 14px;
	border-bottom: 1px solid #f1f5f9;
	text-align: center;
}
.dgw-clubs-lb-title {
	margin: 0 0 4px;
	font-size: 20px;
	font-weight: 700;
	color: #0f172a;
	letter-spacing: -0.01em;
}
.dgw-clubs-lb-sub {
	margin: 0;
	font-size: 13.5px;
	color: #64748b;
	line-height: 1.4;
}

/* Tabs (etapa + categoría) — mismo lenguaje visual que .dgw-lb-tab del ranking
 * estándar (border-radius 6px, no totalmente redondeado). Alineados a la
 * izquierda para que se sientan parte del listado, no flotando en el centro. */
.dgw-clubs-lb-stages,
.dgw-clubs-lb-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 12px 20px;
	background: #fff;
	overflow-x: auto;
	scrollbar-width: thin;
	justify-content: center;
}
.dgw-clubs-lb-stages {
	border-bottom: 1px solid #f1f5f9;
	gap: 8px;
	padding: 14px 20px 10px;
}
.dgw-clubs-lb-cats {
	background: #f8fafc;
	border-bottom: 1px solid #e2e8f0;
}
.dgw-clubs-lb .dgw-lb-pag-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 14px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	background: transparent;
	color: #64748b;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.2px;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.4;
	transition: all 0.15s ease;
}
.dgw-clubs-lb-stages .dgw-lb-pag-num {
	font-size: 13px;
	padding: 9px 18px;
}
.dgw-clubs-lb-cats .dgw-lb-pag-num {
	font-size: 12px;
	font-weight: 500;
	padding: 6px 12px;
}
.dgw-clubs-lb .dgw-lb-pag-num:hover {
	border-color: var(--dgw-accent);
	color: var(--dgw-accent);
	background: color-mix(in srgb, var(--dgw-accent) 8%, white);
}
.dgw-clubs-lb .dgw-lb-pag-num.active {
	background: var(--dgw-accent);
	color: #fff;
	border-color: var(--dgw-accent);
	font-weight: 700;
}

/* Lista de filas */
.dgw-clubs-lb-list {
	display: flex;
	flex-direction: column;
}
.dgw-clubs-lb-row {
	border-bottom: 1px solid #f1f5f9;
	border-left: 3px solid transparent;
	transition: background 0.15s ease;
}
.dgw-clubs-lb-row:last-child {
	border-bottom: 0;
}
.dgw-clubs-lb-row.is-gold    { border-left-color: #d4a017; background: linear-gradient(90deg, rgba(254,243,199,0.4) 0%, transparent 60%); }
.dgw-clubs-lb-row.is-silver  { border-left-color: #94a3b8; background: linear-gradient(90deg, rgba(241,245,249,0.7) 0%, transparent 60%); }
.dgw-clubs-lb-row.is-bronze  { border-left-color: #b45309; background: linear-gradient(90deg, rgba(254,215,170,0.4) 0%, transparent 60%); }
.dgw-clubs-lb-row[open] {
	background: #f8fafc;
}

.dgw-clubs-lb-row > summary {
	display: grid;
	grid-template-columns: 48px 44px 1fr auto 24px;
	align-items: center;
	gap: 12px;
	padding: 14px 20px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}
.dgw-clubs-lb-row > summary::-webkit-details-marker { display: none; }
.dgw-clubs-lb-row > summary:hover {
	background: rgba(15, 23, 42, 0.02);
}

.dgw-clubs-lb-pos {
	font-size: 17px;
	font-weight: 800;
	color: #0f172a;
	text-align: center;
	font-variant-numeric: tabular-nums;
}
.dgw-clubs-lb-row.is-gold   .dgw-clubs-lb-pos { font-size: 22px; }
.dgw-clubs-lb-row.is-silver .dgw-clubs-lb-pos { font-size: 22px; }
.dgw-clubs-lb-row.is-bronze .dgw-clubs-lb-pos { font-size: 22px; }

.dgw-clubs-lb-logo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: contain;
	background: #fff;
	border: 1px solid #e2e8f0;
	padding: 2px;
	box-sizing: border-box;
}
.dgw-clubs-lb-logo-placeholder {
	display: inline-block;
	background: #f1f5f9;
}

.dgw-clubs-lb-name {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.dgw-clubs-lb-name-text {
	font-size: 15.5px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.2;
	overflow-wrap: anywhere;
}
.dgw-clubs-lb-meta {
	font-size: 12px;
	color: #64748b;
	font-weight: 500;
}

.dgw-clubs-lb-points {
	font-size: 20px;
	font-weight: 800;
	color: var(--dgw-accent);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.dgw-clubs-lb-chevron {
	color: #94a3b8;
	transition: transform 0.2s ease;
	font-size: 14px;
	text-align: center;
}
.dgw-clubs-lb-row[open] > summary .dgw-clubs-lb-chevron {
	transform: rotate(180deg);
}

/* Breakdown */
.dgw-clubs-lb-breakdown {
	padding: 0 20px 18px;
	margin-left: 60px; /* alineado con la columna del nombre, no con la posición */
}
.dgw-clubs-lb-breakdown-cat {
	margin-bottom: 14px;
}
.dgw-clubs-lb-breakdown-cat:last-child {
	margin-bottom: 0;
}
.dgw-clubs-lb-breakdown-cat-name {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 12px;
	background: color-mix(in srgb, var(--dgw-accent) 6%, white);
	border: 1px solid color-mix(in srgb, var(--dgw-accent) 18%, white);
	border-radius: 8px;
	margin-bottom: 8px;
	font-size: 12.5px;
	font-weight: 700;
	color: color-mix(in srgb, var(--dgw-accent) 80%, #0f172a);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.dgw-clubs-lb-breakdown-cat-pts {
	font-size: 13px;
	font-weight: 800;
	color: var(--dgw-accent);
	font-variant-numeric: tabular-nums;
}
.dgw-clubs-lb-breakdown-players {
	list-style: none;
	margin: 0;
	padding: 0;
}
.dgw-clubs-lb-breakdown-players li {
	margin: 0;
	border-bottom: 1px dashed #e2e8f0;
}
.dgw-clubs-lb-breakdown-players li:last-child {
	border-bottom: 0;
}
.dgw-clubs-lb-breakdown-players a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 4px;
	color: inherit;
	text-decoration: none;
	font-size: 13.5px;
	transition: color 0.15s ease;
}
.dgw-clubs-lb-breakdown-players a:hover {
	color: var(--dgw-accent);
}
.dgw-clubs-lb-breakdown-player-name {
	color: #0f172a;
	font-weight: 500;
}
.dgw-clubs-lb-breakdown-players a:hover .dgw-clubs-lb-breakdown-player-name {
	color: var(--dgw-accent);
}
.dgw-clubs-lb-breakdown-player-pts {
	font-weight: 700;
	color: #475569;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Mobile */
@media (max-width: 640px) {
	.dgw-clubs-lb-header {
		padding: 18px 16px 12px;
	}
	.dgw-clubs-lb-title {
		font-size: 18px;
	}
	.dgw-clubs-lb-stages,
	.dgw-clubs-lb-cats {
		padding: 10px 12px;
		flex-wrap: wrap; /* multi-fila igual que el resto de leaderboards */
		gap: 5px;
	}
	.dgw-clubs-lb-stages .dgw-lb-pag-num {
		font-size: 12px;
		padding: 7px 12px;
	}
	.dgw-clubs-lb-cats .dgw-lb-pag-num {
		font-size: 11.5px;
		padding: 6px 10px;
	}
	.dgw-clubs-lb-row > summary {
		grid-template-columns: 36px 36px 1fr auto 16px;
		gap: 10px;
		padding: 12px 14px;
	}
	.dgw-clubs-lb-pos {
		font-size: 14px;
	}
	.dgw-clubs-lb-row.is-gold   .dgw-clubs-lb-pos,
	.dgw-clubs-lb-row.is-silver .dgw-clubs-lb-pos,
	.dgw-clubs-lb-row.is-bronze .dgw-clubs-lb-pos {
		font-size: 18px;
	}
	.dgw-clubs-lb-logo {
		width: 36px;
		height: 36px;
	}
	.dgw-clubs-lb-name-text {
		font-size: 14px;
	}
	.dgw-clubs-lb-points {
		font-size: 17px;
	}
	.dgw-clubs-lb-breakdown {
		padding: 0 14px 14px;
		margin-left: 48px;
	}
}

/* ============================================================
   v3.8.20 — Shortcodes compactos top 5 (home / bloques)
   [dgw_top5_clubs] [dgw_top5_coins] [dgw_top5_by_age]
   ============================================================ */
.dgw-top5 {
	background: #fff;
	border: 1px solid #e8e8e8;
	border-radius: 12px;
	padding: 18px 18px 14px;
	margin: 0 0 20px;
	box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.dgw-top5-header {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--dgw-accent, #0a3d2c);
}
.dgw-top5-header-main {
	display: flex;
	align-items: center;
	gap: 10px;
}
.dgw-top5-coin-badge {
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	object-fit: contain;
}
.dgw-top5-title {
	margin: 0;
	font-size: 17px;
	font-weight: 800;
	color: var(--dgw-accent, #0a3d2c);
	line-height: 1.2;
}
.dgw-top5-title-link {
	text-decoration: none;
	display: inline-block;
}
.dgw-top5-title-link:hover .dgw-top5-title {
	text-decoration: underline;
}
.dgw-top5-sub {
	font-size: 12px;
	color: #888;
	font-weight: 500;
}
.dgw-top5-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.dgw-top5-row {
	border-radius: 8px;
}
.dgw-top5-row + .dgw-top5-row {
	border-top: 1px solid #f0f0f0;
}
.dgw-top5-row.is-podium {
	background: linear-gradient(90deg, rgba(0,0,0,.015), transparent);
}
/* Layout interno de la fila: lo comparten el <a> (jugadores, clickeable)
   y el <div> (clubes, no clickeable). */
.dgw-top5-rowlink,
.dgw-top5-rowinner {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 6px;
	text-decoration: none;
	color: inherit;
	border-radius: 8px;
}
.dgw-top5-rowlink {
	transition: background .12s ease;
}
.dgw-top5-rowlink:hover {
	background: rgba(0,0,0,.04);
}
.dgw-top5-pos {
	flex: 0 0 26px;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	color: #555;
}
.dgw-top5-row.is-podium .dgw-top5-pos {
	font-size: 18px;
}
/* Avatares de jugador: SIEMPRE redondos. Usamos !important y selectores
   específicos porque algunos temas (Astra, etc.) pisan el border-radius
   de las <img> dentro de contenido. */
.dgw-top5 img.dgw-top5-logo,
.dgw-top5 img.dgw-top5-avatar {
	flex: 0 0 36px;
	width: 36px !important;
	height: 36px !important;
	max-width: 36px !important;
	object-fit: cover !important;
	border-radius: 50% !important;
	background: #fafafa;
	border: 1px solid #eee;
	display: inline-block;
	padding: 0 !important;
	box-shadow: none !important;
}
/* El logo de CLUB se ve mejor cuadrado-redondeado que recortado en círculo */
.dgw-top5-clubs img.dgw-top5-logo {
	object-fit: contain !important;
	border-radius: 8px !important;
	background: #fff;
}
.dgw-top5-logo-ph {
	display: inline-block;
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #f0f0f0;
	border: 1px solid #eee;
}
.dgw-top5-clubs .dgw-top5-logo-ph {
	border-radius: 8px;
}
.dgw-top5-name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 14px;
	font-weight: 600;
	color: #1a1a1a;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: flex;
	flex-direction: column;
	gap: 1px;
}
.dgw-top5-club {
	font-size: 11px;
	font-weight: 400;
	color: #999;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dgw-top5-value {
	flex: 0 0 auto;
	font-size: 14px;
	font-weight: 800;
	color: var(--dgw-accent, #0a3d2c);
	white-space: nowrap;
}
.dgw-top5-value small {
	font-size: 10px;
	font-weight: 600;
	opacity: .65;
}
/* Valor con icono de coin */
.dgw-top5-value-coins {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: #c8860d;
}
.dgw-top5 img.dgw-top5-coin-icon {
	width: 18px !important;
	height: 18px !important;
	max-width: 18px !important;
	object-fit: contain !important;
	border-radius: 0 !important;
	border: none !important;
	background: none !important;
	display: inline-block;
	padding: 0 !important;
	box-shadow: none !important;
}
.dgw-top5-more {
	display: inline-block;
	margin-top: 10px;
	font-size: 13px;
	font-weight: 700;
	color: var(--dgw-accent, #0a3d2c);
	text-decoration: none;
	padding: 6px 0;
}
.dgw-top5-more:hover {
	text-decoration: underline;
}
.dgw-top5 .dgw-empty {
	color: #999;
	font-size: 13px;
	font-style: italic;
	padding: 8px 6px;
	margin: 0;
}
/* Grid de bloques por edad: responsive, varias columnas en desktop */
.dgw-top5-age-wrap {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}

/* ---- Versión mobile ---- */
@media (max-width: 600px) {
	.dgw-top5 {
		padding: 14px 12px 10px;
		margin: 0 0 14px;
		border-radius: 10px;
	}
	.dgw-top5-title {
		font-size: 15px;
	}
	.dgw-top5-sub {
		font-size: 11px;
	}
	.dgw-top5-header {
		margin-bottom: 8px;
		padding-bottom: 8px;
	}
	.dgw-top5-coin-badge {
		width: 26px;
		height: 26px;
		flex: 0 0 26px;
	}
	.dgw-top5-rowlink,
	.dgw-top5-rowinner {
		gap: 8px;
		padding: 7px 2px;
	}
	.dgw-top5-pos {
		flex: 0 0 20px;
		font-size: 13px;
	}
	.dgw-top5-row.is-podium .dgw-top5-pos {
		font-size: 15px;
	}
	.dgw-top5 img.dgw-top5-logo,
	.dgw-top5 img.dgw-top5-avatar,
	.dgw-top5-logo-ph {
		flex: 0 0 30px;
		width: 30px !important;
		height: 30px !important;
		max-width: 30px !important;
	}
	.dgw-top5-name {
		font-size: 13px;
	}
	.dgw-top5-club {
		font-size: 10px;
	}
	.dgw-top5-value {
		font-size: 13px;
	}
	.dgw-top5 img.dgw-top5-coin-icon {
		width: 15px !important;
		height: 15px !important;
		max-width: 15px !important;
	}
	/* En mobile, una sola columna de bloques por edad */
	.dgw-top5-age-wrap {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

/* ============================================================
   v3.8.22 — Rediseño del formulario "Nueva liga privada"
   ============================================================ */
.dgw-cl-modal {
	max-width: 540px;
	padding: 0;
	overflow: hidden;
}
.dgw-cl-modal-head {
	background: linear-gradient(135deg, #0a3d2c, #155c43);
	color: #fff;
	padding: 20px 24px;
}
.dgw-cl-modal-head h3 {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	color: #fff;
}
.dgw-cl-modal-sub {
	margin: 4px 0 0;
	font-size: 13px;
	opacity: .82;
}
.dgw-cl-form {
	padding: 20px 24px 22px;
}
.dgw-cl-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 14px;
}
.dgw-cl-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.dgw-cl-field-full {
	margin-bottom: 14px;
}
.dgw-cl-field label {
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
}
.dgw-req {
	color: #c0392b;
}
.dgw-optional {
	font-weight: 400;
	color: #999;
	font-size: 12px;
}
.dgw-cl-field input[type="text"],
.dgw-cl-field select,
.dgw-cl-field textarea {
	width: 100%;
	padding: 9px 11px;
	border: 1px solid #d5d5d5;
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.dgw-cl-field input[type="text"]:focus,
.dgw-cl-field select:focus,
.dgw-cl-field textarea:focus {
	outline: none;
	border-color: #0a3d2c;
	box-shadow: 0 0 0 3px rgba(10,61,44,.1);
}
.dgw-cl-field textarea {
	resize: vertical;
	min-height: 70px;
	font-family: inherit;
}
.dgw-cl-hint {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	background: #f3f7f5;
	border-left: 3px solid #0a3d2c;
	border-radius: 6px;
	padding: 10px 12px;
	font-size: 12.5px;
	color: #555;
	line-height: 1.45;
	margin-bottom: 16px;
}
.dgw-cl-hint svg {
	flex: 0 0 16px;
	margin-top: 1px;
	color: #0a3d2c;
}
/* Switch de acceso público */
.dgw-cl-access {
	margin-bottom: 16px;
}
.dgw-cl-switch {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	padding: 12px 14px;
	border: 1px solid #e3e3e3;
	border-radius: 10px;
	background: #fafafa;
	transition: border-color .15s ease, background .15s ease;
}
.dgw-cl-switch:hover {
	border-color: #0a3d2c;
	background: #f5f8f6;
}
.dgw-cl-switch input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.dgw-cl-switch-track {
	flex: 0 0 40px;
	width: 40px;
	height: 22px;
	background: #ccc;
	border-radius: 999px;
	position: relative;
	margin-top: 2px;
	transition: background .18s ease;
}
.dgw-cl-switch-thumb {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0,0,0,.25);
	transition: transform .18s ease;
}
.dgw-cl-switch input:checked + .dgw-cl-switch-track {
	background: #0a3d2c;
}
.dgw-cl-switch input:checked + .dgw-cl-switch-track .dgw-cl-switch-thumb {
	transform: translateX(18px);
}
.dgw-cl-switch input:focus-visible + .dgw-cl-switch-track {
	box-shadow: 0 0 0 3px rgba(10,61,44,.25);
}
.dgw-cl-switch-label {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.dgw-cl-switch-label strong {
	font-size: 13.5px;
	color: #1a1a1a;
}
.dgw-cl-switch-label small {
	font-size: 12px;
	color: #888;
	line-height: 1.4;
}
.dgw-cl-actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 4px;
}
.dgw-btn-ghost {
	background: transparent;
	border: 1px solid #d5d5d5;
	color: #555;
}
.dgw-btn-ghost:hover {
	background: #f3f3f3;
	border-color: #bbb;
}
.dgw-cl-form .dgw-auth-lookup-status:empty {
	display: none;
}
.dgw-cl-form .dgw-auth-lookup-status {
	margin-bottom: 12px;
}

/* Mobile */
@media (max-width: 600px) {
	.dgw-cl-modal {
		max-width: 100%;
	}
	.dgw-cl-modal-head {
		padding: 16px 18px;
	}
	.dgw-cl-modal-head h3 {
		font-size: 17px;
	}
	.dgw-cl-form {
		padding: 16px 18px 18px;
	}
	.dgw-cl-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.dgw-cl-actions {
		flex-direction: column-reverse;
	}
	.dgw-cl-actions .dgw-btn {
		width: 100%;
	}
}

/* ============================================================
   v3.8.22 — Modal "Administrar liga" (rediseño completo)
   Emula el estilo del formulario de registro/login.
   ============================================================ */
.dgw-ml-modal {
	max-width: 600px;
	padding: 0;
	overflow: hidden;
}
.dgw-ml-modal-head {
	background: linear-gradient(135deg, #0a3d2c, #155c43);
	color: #fff;
	padding: 20px 24px 16px;
}
.dgw-ml-modal-head h3 {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	color: #fff;
}
.dgw-ml-modal-sub {
	margin: 3px 0 0;
	font-size: 14px;
	opacity: .85;
	font-weight: 600;
}
/* Tabs */
.dgw-ml-tabs {
	display: flex;
	gap: 0;
	background: #f4f6f5;
	border-bottom: 1px solid #e3e3e3;
	padding: 0 12px;
}
.dgw-ml-tab {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: none;
	border-bottom: 3px solid transparent;
	padding: 13px 16px;
	font-size: 13.5px;
	font-weight: 700;
	color: #777;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
}
.dgw-ml-tab:hover {
	color: #0a3d2c;
}
.dgw-ml-tab.is-active {
	color: #0a3d2c;
	border-bottom-color: #0a3d2c;
}
/* Body */
.dgw-ml-body {
	padding: 22px 24px;
}
.dgw-ml-panel-intro {
	margin: 0 0 16px;
	font-size: 13.5px;
	color: #666;
	line-height: 1.5;
}
.dgw-ml-panel-actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 4px;
}
.dgw-ml-panel textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	font-size: 15px;
	font-family: inherit;
	resize: vertical;
	min-height: 76px;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.dgw-ml-panel textarea:focus {
	outline: none;
	border-color: #0a3d2c;
	box-shadow: 0 0 0 3px rgba(10,61,44,.12);
}
/* Lista de categorías existentes */
.dgw-ml-cats-list {
	margin-bottom: 18px;
}
.dgw-ml-cats-list:empty {
	display: none;
}
.dgw-ml-cats-list table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #ebebeb;
	border-radius: 8px;
	overflow: hidden;
}
.dgw-ml-cats-list thead tr {
	background: #f4f6f5;
}
.dgw-ml-cats-list th {
	text-align: left;
	padding: 8px 10px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: #888;
}
.dgw-ml-cats-list td {
	padding: 9px 10px;
	font-size: 13.5px;
	border-top: 1px solid #f0f0f0;
}
.dgw-ml-cats-empty {
	margin: 0 0 18px;
	padding: 14px;
	background: #fafafa;
	border: 1px dashed #ddd;
	border-radius: 8px;
	font-size: 13px;
	color: #999;
	font-style: italic;
	text-align: center;
}
/* Form de agregar/editar categoría */
.dgw-ml-cat-form {
	background: #f7f9f8;
	border: 1px solid #e8ebe9;
	border-radius: 12px;
	padding: 16px 18px;
}
.dgw-ml-cat-form h4 {
	margin: 0 0 14px;
	font-size: 14.5px;
	font-weight: 800;
	color: #0a3d2c;
}
.dgw-ml-cat-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 14px;
}
/* El nombre ocupa toda la fila */
.dgw-ml-cat-grid label:first-child {
	grid-column: 1 / -1;
}
.dgw-ml-cat-form .dgw-auth-form {
	gap: 14px;
}
.dgw-ml-cat-form input[type="number"],
.dgw-ml-cat-form input[type="text"],
.dgw-ml-cat-form select {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 9px;
	font-size: 14px;
	background: #fff;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.dgw-ml-cat-form input:focus,
.dgw-ml-cat-form select:focus {
	outline: none;
	border-color: #0a3d2c;
	box-shadow: 0 0 0 3px rgba(10,61,44,.12);
}
/* Footer */
.dgw-ml-modal-foot {
	display: flex;
	justify-content: flex-end;
	padding: 14px 24px;
	border-top: 1px solid #eee;
	background: #fafafa;
}

/* Mobile */
@media (max-width: 600px) {
	.dgw-ml-modal {
		max-width: 100%;
	}
	.dgw-ml-modal-head {
		padding: 16px 18px 14px;
	}
	.dgw-ml-modal-head h3 {
		font-size: 17px;
	}
	.dgw-ml-tabs {
		padding: 0 6px;
		overflow-x: auto;
	}
	.dgw-ml-tab {
		padding: 12px 12px;
		font-size: 12.5px;
		white-space: nowrap;
	}
	.dgw-ml-body {
		padding: 18px 18px;
	}
	.dgw-ml-cat-grid {
		grid-template-columns: 1fr;
	}
	.dgw-ml-cat-form {
		padding: 14px;
	}
	.dgw-ml-panel-actions {
		flex-direction: column-reverse;
	}
	.dgw-ml-panel-actions .dgw-btn {
		width: 100%;
	}
	.dgw-ml-modal-foot {
		padding: 12px 18px;
	}
}

/* ============================================================
   v3.8.24 — Ligas privadas: overlay de modales, listado y fixes
   ============================================================ */

/* --- Overlay flotante de los modales (crear / administrar liga) --- */
.dgw-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 40px 16px;
	background: rgba(10, 25, 20, .55);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	overflow-y: auto;
	box-sizing: border-box;
}
.dgw-modal[hidden] {
	display: none;
}
.dgw-modal-content {
	background: #fff;
	border-radius: 16px;
	width: 100%;
	max-width: 560px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
	margin: auto 0;
	animation: dgw-modal-in .18s ease-out;
}
@keyframes dgw-modal-in {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* --- Fix hover de los tabs del modal de administración --- */
/* El tema pintaba el fondo azul + letra negra en :hover de <button>.
   Forzamos transparente y color de marca. */
.dgw-ml-tab,
.dgw-ml-tab:hover,
.dgw-ml-tab:focus,
.dgw-ml-tab:active,
.dgw-ml-tab.is-active {
	background: transparent !important;
	box-shadow: none !important;
	text-decoration: none !important;
	outline: none;
}
.dgw-ml-tab:hover {
	color: #0a3d2c !important;
	border-bottom-color: rgba(10, 61, 44, .35) !important;
}
.dgw-ml-tab.is-active {
	color: #0a3d2c !important;
	border-bottom-color: #0a3d2c !important;
}
.dgw-ml-tab:focus-visible {
	box-shadow: inset 0 0 0 2px rgba(10, 61, 44, .25) !important;
}

/* --- Panel "Mis ligas": contenedor general --- */
.dgw-leagues-wrap {
	max-width: 760px;
}
.dgw-leagues-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.dgw-leagues-head h2 {
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	color: #0a3d2c;
}
.dgw-leagues-wrap section {
	margin-bottom: 26px;
}
.dgw-leagues-wrap section > h3 {
	font-size: 15px;
	font-weight: 800;
	color: #1a1a1a;
	margin: 0 0 12px;
	letter-spacing: .01em;
}

/* --- Listas de ligas (pendientes, propias) --- */
.dgw-leagues-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.dgw-league-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #e6e9e7;
	border-radius: 12px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.dgw-league-row:hover {
	border-color: #cfd8d3;
	box-shadow: 0 2px 10px rgba(10, 61, 44, .06);
}
.dgw-league-row > div:first-child {
	min-width: 0;
	flex: 1 1 240px;
}
.dgw-league-row strong {
	display: block;
	font-size: 15.5px;
	font-weight: 700;
	color: #0a3d2c;
	line-height: 1.3;
}
.dgw-league-row a strong {
	color: #0a3d2c;
}
.dgw-league-row small {
	display: block;
	font-size: 12.5px;
	color: #6b7672;
	margin-top: 2px;
	line-height: 1.45;
}
.dgw-league-inviter {
	font-weight: 600;
	color: #5a6661 !important;
}
.dgw-league-actions {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
	flex-wrap: wrap;
}

/* Sección de invitaciones pendientes: leve realce */
.dgw-leagues-pending .dgw-league-row {
	background: #f4faf7;
	border-color: #d3e8de;
}

/* Estado vacío */
.dgw-leagues-mine .dgw-empty {
	padding: 22px 18px;
	text-align: center;
	color: #8a938f;
	font-size: 14px;
	background: #fafbfb;
	border: 1px dashed #dce1df;
	border-radius: 12px;
	margin: 0;
}

/* --- Lista de invitaciones enviadas (tab del modal admin) --- */
.dgw-ml-sent-list table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}
.dgw-ml-sent-list thead tr {
	background: #f4f6f5;
}
.dgw-ml-sent-list th {
	padding: 9px 8px;
	text-align: left;
	font-size: 12px;
	font-weight: 800;
	color: #5a6661;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.dgw-ml-sent-list td {
	padding: 10px 8px;
	border-bottom: 1px solid #eef0ef;
	vertical-align: middle;
}
.dgw-ml-sent-list tr:last-child td {
	border-bottom: none;
}

/* Mobile */
@media (max-width: 600px) {
	.dgw-modal {
		padding: 20px 10px;
	}
	.dgw-modal-content {
		border-radius: 14px;
	}
	.dgw-leagues-head h2 {
		font-size: 20px;
	}
	.dgw-league-row {
		padding: 12px 14px;
	}
	.dgw-league-actions {
		width: 100%;
	}
	.dgw-league-actions .dgw-btn {
		flex: 1;
	}
}

/* ====================================================================
 * v3.8.53 — OVERRIDE FINAL DE FONDOS TRANSPARENTES
 * ====================================================================
 * Reglas al final del archivo (ganan por orden de cascada) con
 * especificidad alta para garantizar que NINGÚN contenedor externo de
 * tabs/header quede con fondo blanco, sin importar qué regla previa lo
 * haya seteado. Solo pastillas, tarjetas de fila y el header de columnas
 * (que es rojo a propósito) conservan su fondo.
 *
 * Cubre los 3 shortcodes: [dgw_ranking], [dgw_ranking_by_age] y vistas
 * por club/región. Aplica tanto en .dgw-leaderboard como en .dgw-view. */
.dgw-leaderboard .dgw-lb-tabs-scroller,
.dgw-leaderboard .dgw-lb-tabs-scroller-stages,
.dgw-leaderboard .dgw-lb-tabs-scroller-cats,
.dgw-leaderboard .dgw-lb-tabs-stages,
.dgw-leaderboard .dgw-lb-tabs-genders,
.dgw-leaderboard .dgw-lb-tabs-cats,
.dgw-leaderboard .dgw-lb-header,
.dgw-leaderboard .dgw-lb-tbody,
.dgw-leaderboard .dgw-lb-table-wrap,
.dgw-leaderboard .dgw-lb-scroll-btn,
.dgw-view .dgw-lb-tabs-scroller,
.dgw-view .dgw-lb-tabs-scroller-stages,
.dgw-view .dgw-lb-tabs-scroller-cats,
.dgw-view .dgw-lb-tabs-stages,
.dgw-view .dgw-lb-tabs-genders,
.dgw-view .dgw-lb-tabs-cats,
.dgw-view .dgw-lb-header,
.dgw-view .dgw-lb-tbody,
.dgw-view .dgw-lb-table-wrap,
.dgw-view-filters,
.dgw-view-filters .dgw-lb-tabs-stages,
.dgw-view-filters .dgw-lb-tabs-genders,
.dgw-view-filters .dgw-lb-tabs-cats {
	background: transparent !important;
	background-color: transparent !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
}

/* Header de columnas: SÍ lleva el color principal del desafío. */
.dgw-leaderboard .dgw-lb-thead,
.dgw-view .dgw-lb-thead {
	background: var(--dgw-accent) !important;
	background-color: var(--dgw-accent) !important;
	border-radius: 10px !important;
	border: 0 !important;
}
.dgw-leaderboard .dgw-lb-thead .dgw-th,
.dgw-view .dgw-lb-thead .dgw-th {
	color: #ffffff !important;
	opacity: 0.95 !important;
}
