/*
 * Área privada · ASDE Scouts de Balears
 * Complementa al tema activo (está pensado para Enfold, pero no depende de él): hereda tipografía,
 * formularios y botones, y solo añade lo que el tema no tiene. Colores: los de la pantalla «Colores» o, por defecto, los de Enfold.
 */

:root,
.asde-ap {
	/* Marca (por defecto, el color principal del tema Enfold si lo hay). Se personalizan en wp-admin → Grupos Scouts → Colores. */
	--asde-primary: var(--enfold-main-color-primary, #632599);
	--asde-primary-dark: #421866;
	--asde-lila: #c7a2e8;
	--asde-on-primary: #ffffff;
	--asde-tint: #f7f3fb;
	--asde-tint-strong: #f1e9f8;
	--asde-tint-line: #e5dcef;
	/* Texto, bordes y fondos neutros */
	--asde-text: var(--enfold-main-color-color, #444444);
	--asde-muted: #666666;
	--asde-border: #e1e1e1;
	--asde-surface: #ffffff;
	--asde-neutral-bg: #eeeeee;
	--asde-radius: 6px;
	/* Estados: correcto, aviso, error e información (color, fondo, fondo suave y texto) */
	--asde-ok: #5a8f00;
	--asde-ok-bg: #e6f4d7;
	--asde-ok-soft: #eef7e6;
	--asde-ok-strong: #d6efc0;
	--asde-ok-text: #2d4f06;
	--asde-warn: #c99400;
	--asde-warn-bg: #fff3cd;
	--asde-warn-soft: #fff8e1;
	--asde-warn-text: #664d03;
	--asde-error: #b32d2e;
	--asde-error-bg: #fdecea;
	--asde-error-text: #8a1c1c;
	--asde-info: #3b73b9;
	--asde-info-bg: #e3eefc;
	--asde-info-text: #0b3a7a;
}
.asde-ap {
	margin-bottom: 40px;
}

/* Menú */
.asde-ap .asde-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin: 0 0 24px;
	border-bottom: 2px solid var(--asde-lila);
}
.asde-ap .asde-nav__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-nav__tabs li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-nav__tabs a {
	display: block;
	margin-bottom: -2px;
	padding: 10px 14px;
	border-bottom: 3px solid transparent;
	color: var(--asde-primary);
	font-weight: 600;
	text-decoration: none;
}
.asde-ap .asde-nav__tabs a:hover,
.asde-ap .asde-nav__tabs a:focus-visible,
.asde-ap .asde-nav__tabs a.is-active {
	border-bottom-color: var(--asde-primary);
}
.asde-ap .asde-nav__user {
	margin: 0;
	padding: 8px 0;
	color: var(--asde-muted);
	font-size: 13px;
}

/* Tarjetas */
.asde-ap .asde-card {
	margin: 0 0 24px;
	padding: 20px 24px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	background: var(--asde-surface);
}
.asde-ap .asde-card > h2:first-child,
.asde-ap .asde-card > h3:first-child {
	margin-top: 0;
}
.asde-ap .asde-card__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-bottom: 12px;
}
.asde-ap .asde-card__header--split {
	justify-content: space-between;
}
.asde-ap .asde-card__title {
	margin: 0;
}
/* Título suelto de la tarjeta (fuera de .asde-card__header): separado de lo que sigue. */
.asde-ap .asde-card > .asde-card__title {
	margin-bottom: 12px;
}
.asde-ap .asde-card--narrow {
	max-width: 540px;
}
.asde-ap .asde-back {
	margin: 0 0 12px;
}

/* Etiquetas */
.asde-ap .asde-badge {
	display: inline-block;
	margin: 0 4px 4px 0;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	vertical-align: middle;
}
.asde-ap .asde-badge--rol {
	background: var(--asde-tint-strong);
	color: var(--asde-primary-dark);
}
.asde-ap .asde-badge--estado-invitado {
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
}
.asde-ap .asde-badge--estado-activo {
	background: var(--asde-ok-bg);
	color: var(--asde-ok-text);
}
.asde-ap .asde-badge--estado-desactivado {
	background: var(--asde-neutral-bg);
	color: var(--asde-muted);
}

/* Avisos */
.asde-ap .asde-notice {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-left: 4px solid;
	border-radius: 4px;
}
.asde-ap .asde-notice--success {
	border-color: var(--asde-ok);
	background: var(--asde-ok-soft);
}
.asde-ap .asde-notice--error {
	border-color: var(--asde-error);
	background: var(--asde-error-bg);
}
.asde-ap .asde-notice--warning {
	border-color: var(--asde-warn);
	background: var(--asde-warn-soft);
}
.asde-ap .asde-notice--info {
	border-color: var(--asde-primary);
	background: var(--asde-tint);
}

/* Monitor de la corrección de números en segundo plano */
.asde-ap .asde-tarea {
	margin: 0 0 16px;
	padding: 10px 16px 12px;
	border: 1px solid var(--asde-lila);
	border-left: 4px solid var(--asde-primary);
	border-radius: 4px;
	background: var(--asde-tint);
}
.asde-ap .asde-tarea[hidden] {
	display: none;
}
.asde-ap .asde-tarea--terminada {
	border-left-color: var(--asde-ok);
	background: var(--asde-ok-soft);
}
.asde-ap .asde-tarea--cancelada,
.asde-ap .asde-tarea--error {
	border-left-color: var(--asde-warn);
	background: var(--asde-warn-soft);
}
.asde-ap .asde-tarea__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
}
.asde-ap .asde-tarea__texto {
	color: var(--asde-muted);
}
.asde-ap .asde-tarea__barra {
	display: block;
	width: 100%;
	height: 8px;
	margin: 8px 0 6px;
	accent-color: var(--asde-primary);
}
.asde-ap .asde-tarea__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-size: 0.9em;
}
.asde-ap .asde-tarea__acciones [hidden] {
	display: none;
}
.asde-ap .asde-tarea-fallidas {
	margin-top: 12px;
}
.asde-ap .asde-tarea-fallidas summary {
	cursor: pointer;
	color: var(--asde-warn-text);
	font-weight: 600;
}

/* Búsqueda y filtros */
.asde-ap .asde-search {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: stretch;
}
.asde-ap .asde-search input[type="search"] {
	flex: 1 1 260px;
	min-width: 0;
	margin: 0;
}
.asde-ap .asde-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
}
.asde-ap .asde-filter select {
	width: auto;
	margin: 0;
}
.asde-ap .asde-filter label {
	margin: 0;
	font-weight: 600;
}

/* Tablas: en móvil, cada fila pasa a ser una tarjeta */
.asde-ap .asde-table {
	width: 100%;
	border-collapse: collapse;
}
.asde-ap .asde-table th,
.asde-ap .asde-table td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--asde-border);
	text-align: left;
	vertical-align: top;
}
@media (max-width: 767px) {
	.asde-ap .asde-table:not(.asde-table--informe) thead {
		display: none;
	}
	.asde-ap .asde-table:not(.asde-table--informe) tr {
		display: block;
		margin-bottom: 12px;
		padding: 8px 12px;
		border: 1px solid var(--asde-border);
		border-radius: var(--asde-radius);
	}
	/* La etiqueta va a la izquierda (absoluta) y el contenido, sea el que sea (texto, enlaces,
	   saltos de línea, insignias), fluye en su columna. Con display:flex cada trozo de la celda
	   pasaba a ser una columna y el texto se partía letra a letra. */
	.asde-ap .asde-table:not(.asde-table--informe) td {
		position: relative;
		display: block;
		padding: 4px 0;
		border: 0;
		overflow-wrap: anywhere;
	}
	.asde-ap .asde-table:not(.asde-table--informe) td[data-label]:not([data-label=""]) {
		padding-left: 120px;
		min-height: 1.6em;
	}
	.asde-ap .asde-table:not(.asde-table--informe) td[data-label]:not([data-label=""])::before {
		content: attr(data-label);
		position: absolute;
		top: 4px;
		left: 0;
		width: 108px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		color: var(--asde-muted);
		font-size: 13px;
		font-weight: 600;
	}
	.asde-ap .asde-table:not(.asde-table--informe) tbody th {
		display: block;
		padding: 4px 0;
		border: 0;
		text-align: left;
	}
	.asde-ap .asde-table:not(.asde-table--informe) tfoot th,
	.asde-ap .asde-table:not(.asde-table--informe) tfoot td {
		display: block;
		padding: 4px 0;
		border: 0;
	}
}

/* Cabecera plegable y menús fijos (páginas del área privada) */
/* Enfold pone overflow: hidden en body y #wrap_all, y así position: sticky no
   funciona. clip recorta igual (sin barra horizontal) pero deja funcionar sticky. */
body.asde-ap-pagina {
	overflow-x: clip !important;
	overflow-y: visible !important;
}
body.asde-ap-pagina #wrap_all {
	overflow: clip;
}
body.asde-ap-pagina .title_container {
	display: none; /* Sin título ni migas: el área tiene su propio menú. */
}
.asde-ap .asde-nav__cabecera {
	margin: 0 0 0 8px;
	padding: 1px 10px;
	border: 1px solid var(--asde-border);
	border-radius: 999px;
	background: transparent;
	color: var(--asde-primary);
	font-size: 12px;
	line-height: 1.7;
	cursor: pointer;
}
.asde-ap .asde-nav__cabecera:hover,
.asde-ap .asde-nav__cabecera:focus-visible {
	border-color: var(--asde-primary);
}
html.asde-cabecera-oculta #header_meta {
	display: none !important;
}
html.asde-cabecera-oculta #top #header {
	top: var(--asde-admin-h, 0px) !important;
	margin-top: 0 !important; /* Enfold la sube al hacer scroll para despegar la franja superior. */
	transform: none !important;
}
html.asde-cabecera-oculta body.asde-ap-pagina #main .template-page.content {
	padding-top: 20px;
}
html.asde-cabecera-oculta .asde-ap .asde-nav {
	position: sticky;
	top: var(--asde-nav-top, 51px);
	z-index: 480;
	padding-top: 8px;
	background: var(--asde-surface);
	box-shadow: 0 6px 6px -6px rgba(0, 0, 0, 0.18);
}
@media (min-width: 990px) {
	html.asde-cabecera-oculta #header .av-logo-container {
		display: none !important;
	}
	html.asde-cabecera-oculta #top #main {
		padding-top: var(--asde-cabecera-h, 51px) !important;
	}
}
@media (max-width: 989px) {
	/* En móvil el menú hamburguesa está junto al logo: se oculta solo el logo. */
	html.asde-cabecera-oculta #header .logo {
		visibility: hidden;
	}
	html.asde-cabecera-oculta #top #header {
		position: sticky;
	}
}

/* Ficha editable */
.asde-ap .asde-ro {
	border-style: dashed !important;
	background: var(--asde-neutral-bg) !important;
	color: var(--asde-muted) !important;
	cursor: not-allowed;
}
.asde-ap .asde-ro-icon {
	margin-left: 2px;
	font-size: 12px;
	cursor: help;
}
.asde-ap .asde-ficha textarea {
	min-height: 64px;
}
.asde-ap .asde-ficha__guardar {
	position: sticky;
	bottom: 0;
	z-index: 5;
	margin: 0;
	padding: 12px 0;
	background: linear-gradient(to top, #ffffff 70%, rgba(255, 255, 255, 0));
}
.asde-ap .asde-revisar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}
.asde-ap .asde-revisar input[type="text"] {
	width: auto;
	min-width: 160px;
	margin: 0;
}

/* Apartados plegables de la ficha */
.asde-ap details.asde-plegable > summary {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	list-style: none;
	cursor: pointer;
}
.asde-ap details.asde-plegable > summary::-webkit-details-marker {
	display: none;
}
.asde-ap details.asde-plegable > summary h3 {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}
.asde-ap details.asde-plegable > summary h3::before {
	content: "▾";
	display: inline-block;
	color: var(--asde-primary);
	font-size: 0.8em;
	transition: transform 0.15s ease;
}
.asde-ap details.asde-plegable:not([open]) > summary h3::before {
	transform: rotate(-90deg);
}
.asde-ap details.asde-plegable[open] > summary {
	margin-bottom: 14px;
}
.asde-ap details.asde-plegable > summary:focus-visible {
	outline: 2px solid var(--asde-primary);
	outline-offset: 4px;
	border-radius: 4px;
}
.asde-ap .asde-plegable__resumen {
	font-size: 12px;
}
.asde-ap .asde-ficha__plegar {
	display: flex;
	justify-content: flex-end;
	gap: 16px;
	margin: 0 0 8px;
}
.asde-ap .asde-ficha__plegar[hidden] {
	display: none;
}
@media (prefers-reduced-motion: reduce) {
	.asde-ap details.asde-plegable > summary h3::before {
		transition: none;
	}
}

/* Desplegable con explicación de cada opción (la lista y el globo cuelgan del <body>) */
.asde-ap .asde-select-ayuda__boton {
	display: block;
	width: 100%;
	margin: 0;
	padding-right: 32px !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23632599' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
}
.asde-ap .asde-select-ayuda__boton:focus-visible {
	outline: 2px solid var(--asde-primary);
	outline-offset: 1px;
}
.asde-select-ayuda__lista {
	position: absolute;
	z-index: 100000;
	max-height: 300px;
	margin: 0;
	padding: 4px 0;
	overflow-y: auto;
	border: 1px solid var(--asde-border);
	border-radius: 6px;
	background: var(--asde-surface);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
	list-style: none;
	box-sizing: border-box;
}
.asde-select-ayuda__lista li {
	margin: 0;
	padding: 8px 12px;
	list-style: none;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.4;
}
.asde-select-ayuda__lista li[aria-selected="true"] {
	background: var(--asde-tint);
	color: var(--asde-primary);
}
.asde-select-ayuda__globo {
	position: absolute;
	z-index: 100001;
	max-width: 280px;
	padding: 8px 12px;
	border-radius: 6px;
	background: #2b1a3d;
	color: #ffffff;
	font-size: 13px;
	line-height: 1.45;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
	pointer-events: none;
}
.asde-select-ayuda__lista[hidden],
.asde-select-ayuda__globo[hidden] {
	display: none;
}

/* Desplegable predictivo */
.asde-ap .asde-combobox {
	position: relative;
	flex: 1 1 320px;
	min-width: 0;
}
.asde-ap .asde-combobox__input {
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}
/* La lista cuelga del <body> (fuera de .asde-ap) para no quedar tapada. */
.asde-combobox__lista {
	position: absolute;
	z-index: 100000;
	max-height: 280px;
	margin: 0;
	padding: 4px 0;
	overflow-y: auto;
	border: 1px solid var(--asde-border);
	border-radius: 6px;
	background: var(--asde-surface);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
	list-style: none;
	box-sizing: border-box;
}
.asde-combobox__lista li {
	margin: 0;
	padding: 6px 12px;
	list-style: none;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.4;
}
.asde-combobox__lista li:hover,
.asde-combobox__lista li[aria-selected="true"] {
	background: var(--asde-tint);
	color: var(--asde-primary);
}
.asde-combobox__lista .asde-combobox__vacio {
	color: var(--asde-muted);
	cursor: default;
}

/* Voluntario sin sección */
.asde-ap .asde-badge--sin-seccion {
	background: var(--asde-neutral-bg);
	color: var(--asde-text);
}
.asde-ap .asde-choice--separada {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--asde-border);
}

/* Banco */
.asde-ap .asde-importar {
	margin: 16px 0;
	padding: 12px 16px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-importar summary {
	cursor: pointer;
}
.asde-ap .asde-importe {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	text-align: right;
}
.asde-ap .asde-importe--ingreso {
	color: var(--asde-ok-text);
	font-weight: 600;
}
.asde-ap .asde-importe--gasto {
	color: var(--asde-error-text);
}
.asde-ap .asde-conciliar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 4px 0;
}
.asde-ap .asde-conciliar select {
	width: auto;
	max-width: 100%;
	margin: 0;
}
.asde-ap .asde-badge--banco-pendiente {
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
}
.asde-ap .asde-badge--banco-conciliado {
	background: var(--asde-ok-soft);
	color: var(--asde-ok-text);
}
.asde-ap .asde-badge--banco-ignorado {
	background: var(--asde-neutral-bg);
	color: var(--asde-muted);
}

/* Registro de emails */
.asde-ap .asde-badge--email-enviado {
	background: var(--asde-ok-soft);
	color: var(--asde-ok-text);
}
.asde-ap .asde-badge--email-error {
	background: var(--asde-error-bg);
	color: var(--asde-error-text);
}
.asde-ap .asde-badge--email-sin_email {
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
}
.asde-ap .asde-email-preview {
	display: block;
	width: 100%;
	height: 680px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	background: var(--asde-tint);
}

/* Ordenar por columnas */
.asde-ap .asde-orden {
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
}
.asde-ap .asde-orden:hover,
.asde-ap .asde-orden:focus {
	color: var(--asde-primary);
	text-decoration: underline;
}
.asde-ap .asde-orden__flecha {
	font-size: 11px;
	opacity: 0.45;
}
.asde-ap .asde-orden.is-active .asde-orden__flecha {
	opacity: 1;
	color: var(--asde-primary);
}
.asde-ap .asde-solo-movil {
	display: none;
}
@media (max-width: 767px) {
	.asde-ap .asde-solo-movil {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
	}
}

/* Paginación */
.asde-ap .asde-paginacion {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin: 16px 0 0;
}
.asde-ap .asde-paginacion__info {
	margin: 0;
	color: var(--asde-muted);
	font-size: 13px;
}
.asde-ap .asde-paginacion__botones {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-paginacion__botones li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-paginacion__botones a,
.asde-ap .asde-paginacion__botones span {
	display: inline-block;
	min-width: 34px;
	padding: 5px 8px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
}
.asde-ap .asde-paginacion__botones a:hover,
.asde-ap .asde-paginacion__botones a:focus {
	border-color: var(--asde-primary);
	color: var(--asde-primary);
}
.asde-ap .asde-paginacion__botones .is-current {
	border-color: var(--asde-primary);
	background: var(--asde-primary);
	color: var(--asde-on-primary);
	font-weight: 600;
}
.asde-ap .asde-paginacion__botones .is-disabled {
	color: var(--asde-muted);
	opacity: 0.5;
}
.asde-ap .asde-paginacion__botones .asde-paginacion__hueco {
	border-color: transparent;
}
.asde-ap .asde-paginacion__tamano {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 13px;
}
.asde-ap .asde-paginacion__tamano select {
	width: auto;
	margin: 0;
}

/* Datos de la ficha */
.asde-ap .asde-datos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px 24px;
	margin: 0 0 12px;
}
.asde-ap .asde-datos div {
	margin: 0;
}
.asde-ap .asde-datos dt {
	margin: 0;
	color: var(--asde-muted);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.asde-ap .asde-datos dd {
	margin: 2px 0 0;
	overflow-wrap: anywhere;
}

/* Formularios */
.asde-ap .asde-form fieldset {
	margin: 0 0 16px;
	padding: 12px 16px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-form legend {
	padding: 0 6px;
	font-weight: 600;
}
.asde-ap .asde-form p > label {
	display: block;
	margin: 0 0 4px;
	font-weight: 600;
}
.asde-ap .asde-choice {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 6px 0;
	font-weight: normal;
	cursor: pointer;
}
.asde-ap .asde-choice input {
	flex: 0 0 auto;
	margin: 4px 0 0;
}
.asde-ap .asde-choice.is-disabled {
	color: var(--asde-muted);
	cursor: not-allowed;
}
.asde-ap .asde-help {
	display: block;
	color: var(--asde-muted);
	font-size: 12px;
	font-weight: normal;
}
.asde-ap .asde-help--warning {
	color: var(--asde-warn-text);
}
.asde-ap .asde-help--inline {
	display: inline;
}
/* Enfold no da estilo a los campos de fecha: sin esto salen con el borde negro del navegador. */
.asde-ap input[type="date"] {
	min-height: 37px;
	padding: 8px 6px;
	border: 1px solid var(--asde-border);
	border-radius: 2px;
	background: var(--asde-surface);
	font: inherit;
	color: inherit;
}

/* Acceso socios */
.asde-ap .asde-acceso {
	margin-right: auto;
	margin-left: auto;
}
.asde-ap .asde-acceso select,
.asde-ap .asde-acceso input[type="text"],
.asde-ap .asde-acceso input[type="password"] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.asde-ap .asde-destacado {
	padding: 10px 12px;
	border-left: 4px solid var(--asde-primary);
	background: var(--asde-tint);
}
.asde-ap .asde-grid-2 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0 16px;
}
.asde-ap .asde-muted {
	color: var(--asde-muted);
	font-size: 13px;
}

/* Acciones en tablas */
.asde-ap .asde-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
}
.asde-ap .asde-actions form {
	margin: 0;
}
.asde-ap .asde-btn-link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--asde-primary);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}
.asde-ap .asde-btn-danger {
	color: var(--asde-error);
}

/* Accesos directos del inicio */
.asde-ap .asde-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 0 0 24px;
}
.asde-ap .asde-tile {
	display: block;
	padding: 16px 20px;
	border: 1px solid var(--asde-border);
	border-top: 4px solid var(--asde-primary);
	border-radius: var(--asde-radius);
	color: var(--asde-text);
	text-decoration: none;
}
.asde-ap .asde-tile:hover,
.asde-ap .asde-tile:focus-visible {
	border-color: var(--asde-lila);
	border-top-color: var(--asde-primary);
}
.asde-ap .asde-tile strong {
	display: block;
	margin-bottom: 4px;
	color: var(--asde-primary);
	font-size: 16px;
}

.asde-ap [hidden] {
	display: none !important;
}

.asde-ap .asde-search__option {
	flex: 1 1 100%;
	margin: 0;
	font-size: 13px;
}

/* Informes */
.asde-ap .asde-table-wrap {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.asde-ap .asde-table--informe {
	min-width: 100%;
	font-size: 13px;
}
.asde-ap .asde-table--informe th {
	white-space: nowrap;
}
.asde-ap .asde-columnas {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 0 16px;
}
.asde-ap .asde-columnas__grupo--salud {
	border-color: var(--asde-tint-line);
	background: var(--asde-tint);
}
.asde-ap .asde-columnas__todas {
	margin: 0 0 4px;
	font-size: 12px;
}
.asde-ap .asde-choice--inline {
	display: inline-flex;
	margin-right: 12px;
}
/* Dentro de un formulario, «p > label» pone las etiquetas en bloque y en negrita:
   las casillas conservan su aspecto. */
.asde-ap .asde-form p > label.asde-choice {
	display: flex;
	margin: 6px 0;
	font-weight: normal;
}
.asde-ap .asde-form p > label.asde-choice--inline {
	display: inline-flex;
	margin-right: 12px;
}
.asde-ap .asde-badge--salud {
	background: var(--asde-error-bg);
	color: var(--asde-error-text);
}
.asde-ap .asde-actions--botones {
	gap: 8px;
}
.asde-ap .button.asde-button-secundario {
	background: var(--asde-surface);
	color: var(--asde-primary);
	border: 1px solid var(--asde-primary);
}
/* Enlaces con aspecto de botón: en una columna estrecha el texto se parte dentro del botón, no fuera. */
.asde-ap a.button {
	display: inline-block;
	text-align: center;
}

/* Ventana emergente (v0.10): fichas, dar acceso y solicitudes sobre la página (assets/js/area.js). */
dialog.asde-modal {
	width: min(1100px, calc(100vw - 24px));
	max-width: none;
	max-height: calc(100vh - 32px);
	padding: 0;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(30, 15, 50, 0.35);
	overflow: hidden;
}
dialog.asde-modal[open] {
	display: flex;
	flex-direction: column;
}
dialog.asde-modal::backdrop {
	background: rgba(30, 15, 50, 0.55);
}
.asde-modal__barra {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 16px;
	border-bottom: 1px solid var(--asde-tint-line);
	background: var(--asde-tint);
}
.asde-modal__titulo {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 600;
	color: var(--asde-primary);
}
.asde-modal__pagina {
	font-size: 13px;
	white-space: nowrap;
}
.asde-modal__cerrar {
	border: 0;
	background: transparent;
	color: var(--asde-muted);
	font-size: 28px;
	line-height: 1;
	padding: 0 4px;
	cursor: pointer;
}
.asde-modal__cerrar:hover,
.asde-modal__cerrar:focus-visible {
	color: var(--asde-primary);
}
.asde-modal__cuerpo {
	overflow: auto;
	padding: 16px 20px 24px;
}
.asde-modal__cuerpo:focus {
	outline: none;
}
.asde-modal__cuerpo[aria-busy="true"] {
	opacity: 0.55;
	transition: opacity 0.15s;
}
.asde-ap--modal .asde-solo-pagina {
	display: none !important;
}
@media (max-width: 600px) {
	dialog.asde-modal {
		width: 100vw;
		height: 100vh;
		max-height: 100vh;
		border-radius: 0;
	}
}

/* Solicitudes de acceso (v0.10). */
.asde-trampa {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.asde-ap .asde-copiar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
}
.asde-ap .asde-copiar__texto {
	padding: 6px 10px;
	background: var(--asde-tint);
	border: 1px solid var(--asde-tint-line);
	border-radius: 4px;
	word-break: break-all;
}
.asde-ap .asde-comparar th[scope="row"] {
	white-space: nowrap;
	width: 1%;
}
.asde-ap .asde-lista-pasos {
	margin: 0 0 16px;
	padding-left: 20px;
	display: grid;
	gap: 10px;
}
.asde-ap .asde-lista-pasos li:has(> fieldset) {
	list-style: none; /* Los hermanos/as: el recuadro ya separa el paso. */
}
.asde-ap .asde-rechazar {
	margin-top: 18px;
}
.asde-ap .asde-rechazar summary {
	cursor: pointer;
	color: var(--asde-error-text);
}
.asde-ap .asde-pendientes {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-wordfence {
	overflow-x: auto;
}

@media print {
	#header,
	#footer,
	#socket,
	.title_container,
	.asde-nav,
	.asde-no-print,
	.cky-consent-container,
	.cky-btn-revisit-wrapper {
		display: none !important;
	}
	.asde-ap .asde-card {
		border: 0;
		padding: 0;
	}
	.asde-ap .asde-table-wrap {
		overflow: visible;
	}
	.asde-ap .asde-table--informe {
		font-size: 10px;
	}
}

/* Tesorería */
.asde-ap .asde-subnav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin: -8px 0 20px;
}
.asde-ap .asde-subnav__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.asde-ap .asde-subnav__tabs li {
	margin: 0;
	list-style: none;
}
.asde-ap .asde-subnav__tabs a {
	display: block;
	padding: 6px 12px;
	border: 1px solid var(--asde-border);
	border-radius: 999px;
	color: var(--asde-primary);
	font-size: 13px;
	text-decoration: none;
}
.asde-ap .asde-subnav__tabs a.is-active,
.asde-ap .asde-subnav__tabs a:hover {
	border-color: var(--asde-primary);
	background: var(--asde-tint-strong);
}
.asde-ap .asde-subnav__ronda {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}
.asde-ap .asde-subnav__ronda label {
	margin: 0;
	font-weight: 600;
}
.asde-ap .asde-subnav__ronda select {
	width: auto;
	margin: 0;
}
.asde-ap .asde-progreso {
	height: 10px;
	margin: 0 0 12px;
	border-radius: 999px;
	background: var(--asde-neutral-bg);
	overflow: hidden;
}
.asde-ap .asde-progreso span {
	display: block;
	height: 100%;
	background: var(--asde-primary);
}
.asde-ap .asde-badge--pago-pagado { background: var(--asde-ok-bg); color: var(--asde-ok-text); }
.asde-ap .asde-badge--pago-parcial { background: var(--asde-info-bg); color: var(--asde-info-text); }
.asde-ap .asde-badge--pago-pendiente { background: var(--asde-warn-bg); color: var(--asde-warn-text); }
.asde-ap .asde-badge--pago-atrasado { background: var(--asde-error-bg); color: var(--asde-error-text); }
.asde-ap .asde-badge--pago-exento { background: var(--asde-neutral-bg); color: var(--asde-muted); }
.asde-ap .asde-grid-3 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0 16px;
}
.asde-ap .asde-grid-2--top {
	align-items: start;
}
.asde-ap .asde-tramos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 0 12px;
}
.asde-ap .asde-miembro {
	display: inline-block;
	margin: 0 12px 4px 0;
}
.asde-ap .asde-miembro--fuera,
.asde-ap .asde-anulado td {
	color: var(--asde-muted);
	text-decoration: line-through;
}
.asde-ap .asde-table--resumen th {
	font-weight: normal;
	text-align: left;
}
.asde-ap .asde-table--resumen td {
	text-align: right;
	white-space: nowrap;
}
.asde-ap .asde-total th,
.asde-ap .asde-total td {
	border-top: 2px solid var(--asde-border);
	font-weight: 700;
}
.asde-ap .asde-lista-miembros {
	margin: 0 0 12px;
}
.asde-ap .asde-sugerencia {
	margin: 0 0 12px;
	padding: 10px 14px;
	border: 1px dashed var(--asde-lila);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-sugerencia ul {
	margin: 0 0 8px;
	list-style: none;
}

/* ------------------------------------------------------------------------
 * Uniformes y Mis pagos (v0.11)
 * --------------------------------------------------------------------- */
.asde-ap .asde-resumen {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	list-style: none;
	margin: 12px 0;
	padding: 0;
}
.asde-ap .asde-resumen li {
	margin: 0;
	padding: 6px 12px;
	border: 1px solid var(--asde-border);
	border-radius: 999px;
	background: var(--asde-neutral-bg);
}
.asde-ap .asde-resumen a[aria-current] {
	font-weight: 600;
}
.asde-ap .asde-pedidos {
	display: grid;
	gap: 12px;
}
.asde-ap .asde-pedido {
	border: 1px solid var(--asde-border);
	border-left: 4px solid var(--asde-primary);
	border-radius: var(--asde-radius);
	padding: 12px 16px;
}
.asde-ap .asde-pedido--cancelado {
	border-left-color: var(--asde-border);
	opacity: 0.75;
}
.asde-ap .asde-pedido__cabecera {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}
.asde-ap .asde-pedido__contenido {
	margin: 6px 0;
}
.asde-ap .asde-pedido__accion {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}
.asde-ap .asde-pasos {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	color: var(--asde-muted);
}
.asde-ap .asde-pasos li {
	margin: 0;
}
.asde-ap .asde-pasos li.is-hecho {
	color: var(--asde-text);
}
.asde-ap .asde-pasos__marca {
	display: inline-block;
	width: 1.3em;
	height: 1.3em;
	line-height: 1.3em;
	border: 1px solid var(--asde-border);
	border-radius: 50%;
	text-align: center;
	font-size: 0.85em;
}
.asde-ap .asde-pasos li.is-hecho .asde-pasos__marca {
	background: var(--asde-primary);
	border-color: var(--asde-primary);
	color: var(--asde-on-primary);
}
.asde-ap .asde-pasos--gestion {
	display: grid;
	gap: 14px;
}
.asde-ap .asde-insignias {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 12px;
}
.asde-ap .asde-insignia {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	padding: 8px 10px;
}
.asde-ap .asde-insignia img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	flex: none;
}
.asde-ap .asde-insignia__texto {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	font-size: 0.95em;
}
/* Enfold pone width: 100% y margen inferior a los input con #top: sin esto la
   casilla ocupa toda la tarjeta y el texto queda en una columna estrecha. */
.asde-ap .asde-insignia input[type="number"],
#top .asde-ap .asde-insignia input[type="number"] {
	width: 4.5em;
	margin: 0;
	flex: none;
}
.asde-ap .asde-guia {
	margin: 10px 0;
}
.asde-ap .asde-guia summary {
	cursor: pointer;
	color: var(--asde-primary);
}
.asde-ap .asde-guia figure {
	margin: 10px 0;
}
.asde-ap .asde-guia img {
	max-width: 100%;
	height: auto;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-uniforme-total {
	font-size: 1.1em;
}
.asde-ap .asde-check {
	color: var(--asde-ok-text);
	font-weight: 700;
}
.asde-ap .asde-fila--cancelada td {
	color: var(--asde-muted);
}
.asde-ap .asde-form--compacta {
	margin-top: 8px;
}
.asde-ap .asde-form__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 8px 14px;
}
.asde-ap .asde-inline-form {
	display: inline;
	margin-left: 6px;
}
.asde-ap .asde-config-img {
	width: 64px;
	height: 64px;
	object-fit: contain;
	vertical-align: middle;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-badge--uniforme-solicitado { background: var(--asde-warn-bg); color: var(--asde-warn-text); }
.asde-ap .asde-badge--uniforme-pagado { background: var(--asde-info-bg); color: var(--asde-info-text); }
.asde-ap .asde-badge--uniforme-pedido { background: var(--asde-tint-strong); color: var(--asde-primary-dark); }
.asde-ap .asde-badge--uniforme-entregado { background: var(--asde-ok-bg); color: var(--asde-ok-text); }
.asde-ap .asde-badge--uniforme-recibido { background: var(--asde-ok-strong); color: var(--asde-ok-text); }
.asde-ap .asde-badge--uniforme-cancelado { background: var(--asde-neutral-bg); color: var(--asde-muted); }
/* Texto solo para lectores de pantalla (por si el tema no lo define). */
.asde-ap .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.asde-ap .asde-table td[data-label="Importe"] {
	white-space: nowrap;
}

/* v0.12 · Domiciliación SEPA y segundo tutor/a */
.asde-ap .asde-grid-span {
	grid-column: 1 / -1;
}
.asde-ap .asde-actions input[type="text"] {
	max-width: 180px;
}
@media print {
	.asde-ap .asde-autorizacion {
		font-size: 13px;
	}
	.asde-ap .asde-autorizacion .asde-badge {
		border: 1px solid #999999;
	}
}

/* Móvil (v0.12.1): menús en una sola fila que se desplaza, cabeceras de tarjeta y formularios */
@media (max-width: 767px) {
	.asde-ap .asde-nav__tabs,
	.asde-ap .asde-subnav__tabs {
		flex-wrap: nowrap;
		width: 100%;
		overflow-x: auto;
		padding-right: 28px;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
		mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
	}
	.asde-ap .asde-nav__tabs::-webkit-scrollbar,
	.asde-ap .asde-subnav__tabs::-webkit-scrollbar {
		display: none;
	}
	.asde-ap .asde-nav__tabs li,
	.asde-ap .asde-subnav__tabs li {
		flex: 0 0 auto;
	}
	.asde-ap .asde-nav__tabs a {
		padding: 10px 12px;
		font-size: 15px;
		white-space: nowrap;
	}
	.asde-ap .asde-subnav__tabs a {
		white-space: nowrap;
	}
	.asde-ap .asde-card {
		padding: 16px 14px;
	}
	.asde-ap fieldset {
		min-width: 0;
	}
	.asde-ap .asde-form input:not([type="checkbox"]):not([type="radio"]),
	.asde-ap .asde-form select,
	.asde-ap .asde-form textarea {
		max-width: 100%;
		box-sizing: border-box;
	}
	/* Tablas de resumen (importes): concepto a la izquierda e importe a la derecha, sin tarjeta por fila. */
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 8px;
		margin: 0;
		padding: 6px 0;
		border: 0;
		border-bottom: 1px solid var(--asde-border);
		border-radius: 0;
	}
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) > th,
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) > td {
		display: block;
		padding: 0;
		border: 0;
	}
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) > th {
		flex: 1 1 auto;
		min-width: 0;
	}
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) > td {
		flex: 0 0 auto;
		white-space: normal;
	}
	.asde-ap .asde-table.asde-table--resumen:not(.asde-table--informe) tr:not(:has(td[data-label])) > td:empty {
		display: none;
	}
	.asde-ap .asde-table--resumen td[data-label]::before {
		text-align: left;
	}
	.asde-ap .asde-table--resumen td[data-label] {
		white-space: normal;
	}
	.asde-ap .asde-card__header--split > .button,
	.asde-ap .asde-card__header--split > a.button {
		flex: 1 1 100%;
		text-align: center;
	}
}

/* Listado de usuarios (v0.12.2): filtros por columna, orden y paginación en el navegador */
.asde-ap .asde-table tr[hidden],
.asde-ap .asde-solo-movil[hidden],
.asde-ap .asde-usuarios__vacio[hidden],
.asde-ap .asde-usuarios__total [hidden] {
	display: none !important;
}
.asde-ap .asde-usuarios__total {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 16px;
	margin: 0 0 8px;
}
.asde-ap .asde-usuarios__total .asde-btn-link {
	font-size: 13px;
}
.asde-ap .asde-usuarios__vacio {
	margin: 12px 0;
	padding: 12px;
	border: 1px dashed var(--asde-border);
	border-radius: var(--asde-radius);
	color: var(--asde-muted);
	text-align: center;
}
.asde-ap .asde-table .asde-filtros th {
	padding: 4px 8px 10px;
	font-weight: 400;
}
.asde-ap .asde-table .asde-filtros input,
.asde-ap .asde-table .asde-filtros select {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 4px 6px;
	font-size: 13px;
}
.asde-ap .asde-table .asde-cabeceras th {
	border-bottom: 0;
	padding-bottom: 4px;
}
@media (max-width: 767px) {
	/* En el móvil la cabecera no se ve, pero los filtros sí: una tarjeta con un campo por columna. */
	.asde-ap .asde-table.asde-table--usuarios thead {
		display: block;
	}
	.asde-ap .asde-table.asde-table--usuarios thead tr.asde-cabeceras {
		display: none;
	}
	.asde-ap .asde-table.asde-table--usuarios thead tr.asde-filtros {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		background: var(--asde-tint);
	}
	.asde-ap .asde-table.asde-table--usuarios .asde-filtros th {
		display: block;
		width: auto;
		min-width: 0;
		padding: 0;
		border: 0;
	}
	.asde-ap .asde-table.asde-table--usuarios .asde-filtros th:empty {
		display: none;
	}
	.asde-ap .asde-table.asde-table--usuarios .asde-filtros th:first-child,
	.asde-ap .asde-table.asde-table--usuarios .asde-filtros th:nth-child(2) {
		grid-column: 1 / -1;
	}
	.asde-ap .asde-paginacion__botones {
		justify-content: center;
	}
}
@media (max-width: 767px) {
	.asde-ap .asde-orden-movil {
		display: grid;
		grid-template-columns: auto 1fr 1fr;
		gap: 8px;
		align-items: center;
		margin: 0 0 8px;
	}
	.asde-ap .asde-orden-movil[hidden] {
		display: none !important;
	}
	.asde-ap .asde-orden-movil select {
		width: 100%;
		min-width: 0;
		margin: 0;
	}
	.asde-ap .asde-table.asde-table--usuarios .asde-filtros th:nth-child(5) {
		grid-column: 1 / -1;
	}
}
@media (max-width: 767px) {
	.asde-ap .asde-paginacion__botones {
		gap: 3px;
	}
	.asde-ap .asde-paginacion__botones a,
	.asde-ap .asde-paginacion__botones span {
		min-width: 30px;
		padding: 5px 6px;
	}
	.asde-ap .asde-paginacion__tamano,
	.asde-ap .asde-paginacion__tamano span {
		white-space: nowrap;
	}
}

/* Aviso de carga (v0.12.3): barra arriba y cursor «cargando» mientras el servidor prepara la página */
.asde-progreso {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100000;
	width: 0;
	height: 3px;
	background: var(--asde-primary);
	box-shadow: 0 0 6px var(--asde-primary);
	animation: asde-progreso 12s cubic-bezier(0.1, 0.6, 0.2, 1) forwards;
}
.asde-progreso[hidden] {
	display: none;
}
html.asde-cargando,
html.asde-cargando .asde-ap a,
html.asde-cargando .asde-ap button {
	cursor: progress;
}
@keyframes asde-progreso {
	to {
		width: 92%;
	}
}
@media (prefers-reduced-motion: reduce) {
	.asde-progreso {
		animation-duration: 0.01s;
		width: 40%;
	}
}

/* Tablas de medidas y guías de uniforme (v0.12.5): visor emergente encima del pedido */
.asde-ap .asde-guia-enlaces {
	margin: 4px 0 10px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
}
.asde-ap .asde-guia-enlaces a {
	font-weight: 600;
}
.asde-ap .asde-guia-enlaces a.is-actual {
	text-decoration: underline;
}
.asde-visor {
	width: min(980px, 96vw);
	max-width: 96vw;
	max-height: 94vh;
	padding: 0;
	border: 1px solid var(--asde-border);
	border-radius: 10px;
	background: var(--asde-surface);
	color: inherit;
	overflow: hidden;
}
.asde-visor[open] {
	display: flex;
	flex-direction: column;
}
.asde-visor::backdrop {
	background: rgba(30, 20, 45, 0.55);
}
.asde-visor__barra {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 14px;
	border-bottom: 1px solid var(--asde-border);
	background: var(--asde-tint);
}
.asde-visor__titulo {
	flex: 1;
	min-width: 0;
	font-weight: 600;
	color: var(--asde-primary);
}
.asde-visor__abrir {
	font-size: 13px;
	white-space: nowrap;
}
.asde-visor__cerrar {
	flex: none;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}
.asde-visor__cuerpo {
	flex: 1;
	overflow: auto;
	padding: 12px;
	text-align: center;
	outline: none;
}
.asde-visor__cuerpo img {
	max-width: 100%;
	height: auto;
}
@media (max-width: 767px) {
	/* En el móvil la tabla se ve entera a lo ancho de la pantalla; se amplía con los dedos o se desplaza. */
	.asde-visor {
		width: 100vw;
		max-width: 100vw;
		max-height: 100vh;
		height: 100vh;
		border-radius: 0;
	}
	.asde-visor__abrir {
		display: none;
	}
	.asde-visor__cuerpo {
		padding: 6px;
	}
	.asde-visor__cuerpo img {
		width: 720px;
		max-width: none;
	}
}

/* Números de socio/a (v0.14): el nº territorial y su advertencia junto a cada persona */
.asde-ap .asde-numeros {
	font-size: 0.9em;
	white-space: nowrap;
}
.asde-ap .asde-numeros__aviso {
	display: inline-block;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
	font-size: 0.85em;
	font-weight: 600;
	white-space: normal;
}

/* Menús separados por tipo de usuario (v0.15): rótulo de grupo dentro de la misma fila de pestañas */
.asde-ap .asde-nav__tabs li.asde-nav__grupo {
	display: flex;
	align-items: center;
	margin-left: 10px;
	padding-left: 14px;
	border-left: 2px solid var(--asde-lila);
}
.asde-ap .asde-nav__grupo span {
	color: var(--asde-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.asde-ap .asde-tiles__titulo {
	margin: 24px 0 8px;
	color: var(--asde-muted);
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Selector de idioma (v0.15) */
.asde-ap .asde-idiomas {
	font-size: 13px;
}
.asde-ap .asde-idiomas > * + *::before {
	content: "·";
	margin: 0 0.4em;
	color: var(--asde-muted);
	font-weight: 400;
}
.asde-ap .asde-idiomas strong {
	color: var(--asde-text);
}
.asde-ap.asde-ap--idiomas {
	margin-bottom: 8px;
	text-align: right;
}

/* v0.16 · Alta de scouters con el enlace del grupo (doc 31) */
.asde-ap .asde-subopciones {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin: 2px 0 10px 28px;
}

/* v0.19 · Inventario de material y listas de compra (doc 32) */
.asde-ap .asde-num,
.asde-ap .asde-table th.asde-num,
.asde-ap .asde-table td.asde-num {
	text-align: right;
	white-space: nowrap;
}
.asde-ap .asde-obligatorio {
	color: var(--asde-error-text);
}
.asde-ap .asde-form__columnas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0 16px;
}
.asde-ap .asde-form__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.asde-ap .asde-inv-tipo {
	display: flex;
	gap: 6px;
	align-items: stretch;
	max-width: 420px;
	margin-bottom: 20px;
}
/* El tema pone margen debajo de cada campo: aquí lo lleva el conjunto, para que el «+» mida lo mismo que el desplegable. */
.asde-ap .asde-inv-tipo select,
.asde-ap .asde-inv-tipo .asde-inv-mas,
#top .asde-ap .asde-inv-tipo select {
	margin: 0;
}
.asde-ap .asde-inv-tipo select {
	flex: 1 1 auto;
	min-width: 0;
}
.asde-ap a.asde-inv-mas {
	flex: 0 0 auto;
	min-width: 2.6em;
	padding: 0 10px;
	border-radius: var(--asde-radius);
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.asde-ap .asde-badge--inv-pocas {
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
}
.asde-ap .asde-inv-aviso {
	display: inline-block;
	margin-top: 4px;
	padding: 2px 6px;
	border-radius: var(--asde-radius);
	background: var(--asde-warn-bg);
	color: var(--asde-warn-text);
	font-size: 13px;
}
.asde-ap .asde-inv-num {
	width: 7em;
	max-width: 100%;
}
.asde-ap .asde-inv-datos {
	margin: 0 0 12px;
	padding-left: 1.2em;
}
.asde-ap .asde-badge--compra-pendiente { background: var(--asde-warn-bg); color: var(--asde-warn-text); }
.asde-ap .asde-badge--compra-aprobada { background: var(--asde-ok-bg); color: var(--asde-ok-text); }
.asde-ap .asde-badge--compra-rechazada { background: var(--asde-neutral-bg); color: var(--asde-error-text); }
.asde-ap .asde-badge--compra-cancelada { background: var(--asde-neutral-bg); color: var(--asde-muted); }
.asde-ap .asde-table--inv-tipos .asde-form__fila input[type="text"] {
	flex: 1 1 12em;
	min-width: 0;
}
@media (max-width: 767px) {
	.asde-ap .asde-table:not(.asde-table--informe) td.asde-num {
		text-align: left;
	}
	.asde-ap .asde-table tfoot th[colspan] {
		display: none;
	}
}
/* Sin el visto bueno de Tesorería la lista no se imprime: al imprimir solo sale el aviso. */
@media print {
	.asde-ap .asde-inv-compra--sin-visto-bueno > :not(.asde-inv-sin-imprimir),
	.asde-ap .asde-inv-compra--sin-visto-bueno ~ .asde-card {
		display: none !important;
	}
	.asde-ap .asde-inv-compra--sin-visto-bueno .asde-inv-sin-imprimir {
		display: block !important;
		font-size: 16px;
		font-weight: 600;
	}
}
/* v0.19 · Importar material desde CSV (ventana emergente) */
.asde-ap .asde-inv-columnas {
	margin-top: 16px;
	padding: 8px 12px;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	background: var(--asde-tint);
}
.asde-ap .asde-inv-columnas summary {
	cursor: pointer;
	font-weight: 600;
}
.asde-ap .asde-inv-columnas ul {
	margin: 8px 0 0;
}

/* v0.20 · Zonas que se actualizan sin recargar (assets/js/parcial.js) y avisos flotantes */
.asde-ap .asde-parcial--cargando {
	opacity: 0.55;
	pointer-events: none;
	transition: opacity 0.15s;
}
.asde-avisos-flotantes {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 100000;
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: min(420px, calc(100vw - 32px));
}
.asde-avisos-flotantes .asde-notice {
	position: relative;
	margin: 0;
	padding-right: 36px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}
.asde-avisos-flotantes__cerrar {
	position: absolute;
	top: 4px;
	right: 6px;
	border: 0;
	background: transparent;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}
/* v0.20 · Banco: selección múltiple y tipos de gasto e ingreso */
.asde-ap .asde-banco-marca {
	width: 2.2em;
	text-align: center;
}
.asde-ap .asde-banco-lote {
	margin: 8px 0 12px;
}
.asde-ap .asde-table--banco-tipos .asde-form__fila input[type="text"] {
	flex: 1 1 12em;
	min-width: 0;
}
.asde-ap .asde-table--banco-revisar select {
	max-width: 100%;
}
/* v0.20 · «Cuota de la ronda» plegable (usa los apartados plegables de la ficha): el resumen, solo plegado */
.asde-ap details.asde-plegable[open] .asde-plegable__resumen--cerrado {
	display: none;
}
.asde-ap .asde-plegable__resumen--cerrado {
	color: var(--asde-muted);
	font-size: 14px;
}
/* v0.20 · Filas compactas (nombre + clase + botón en una línea; p. ej. los tipos del banco y del inventario).
   Enfold pone width:100% y margen inferior a los campos con #top: aquí no, para que quepan en la fila. */
.asde-ap .asde-form__fila--compacta {
	flex-wrap: nowrap;
	align-items: center;
}
.asde-ap .asde-form__fila--compacta > input[type="text"],
.asde-ap .asde-form__fila--compacta > input[type="search"] {
	flex: 1 1 12em;
	min-width: 0;
}
.asde-ap .asde-form__fila--compacta > input,
.asde-ap .asde-form__fila--compacta > select,
#top .asde-ap .asde-form__fila--compacta > input,
#top .asde-ap .asde-form__fila--compacta > select {
	width: auto;
	margin: 0;
}
.asde-ap .asde-form__fila--compacta > button {
	flex: 0 0 auto;
	white-space: nowrap;
}
@media (max-width: 767px) {
	.asde-ap .asde-form__fila--compacta {
		flex-wrap: wrap;
	}
}

/* v0.20.1 · «Registrar pago» con un ingreso del banco: el elegido y la ventana para buscarlo */
.asde-ap .asde-pago-banco {
	margin: 0 0 1em;
	padding: .75em 1em;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
	background: var(--asde-tint);
}
.asde-ap .asde-pago-banco p {
	margin: 0 0 .5em;
}
.asde-ap .asde-pago-banco .asde-help {
	margin: 0;
}
.asde-ap .asde-pago-banco__titulo {
	font-weight: 600;
}
.asde-ap .asde-pago-banco__elegido [data-asde-pago-banco-elegido] {
	font-weight: 600;
	overflow-wrap: anywhere;
}
.asde-ap .asde-pago-banco__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5em 1em;
}
.asde-ap .asde-banco-elegir__atajos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em;
	margin: .5em 0 1em;
}
.asde-ap .asde-banco-elegir__atajo {
	padding: .15em .7em;
	border: 1px solid var(--asde-border);
	border-radius: 999px;
	background: var(--asde-surface);
	text-decoration: none;
	font-size: 13px;
}
.asde-ap .asde-banco-elegir__atajo:hover,
.asde-ap .asde-banco-elegir__atajo:focus {
	border-color: var(--asde-primary);
}
.asde-ap .asde-banco-elegir__atajo--todos {
	color: var(--asde-muted);
}
.asde-ap .asde-banco-elegir__grupo h3 {
	margin: 1em 0 .4em;
}
.asde-ap .asde-table--banco-elegir td {
	vertical-align: top;
}
.asde-ap .asde-table--banco-elegir td:last-child {
	text-align: right;
	white-space: nowrap;
}
@media (max-width: 767px) {
	.asde-ap .asde-banco-elegir .asde-form__fila--compacta > input[type="search"] {
		flex-basis: 100%;
	}
}

/* v0.21.0 · Personas → «¿Está ya en el CRM?» (doc 34, fase 1) */
.asde-ap .asde-comprobar-crm__resultado {
	margin-top: 1em;
}
.asde-ap .asde-comprobar-crm__fichas {
	margin: .4em 0 .6em 1.2em;
}
.asde-ap .asde-comprobar-crm__fichas li {
	overflow-wrap: anywhere;
}

/* v0.23.0 · Altas en el CRM: «Alta de socio/a» en pasos y membresía en la ficha (doc 34, fase 3) */
.asde-ap .asde-pasos--alta {
	margin: 4px 0 14px;
}
.asde-ap .asde-pasos li.is-actual {
	color: var(--asde-text);
	font-weight: 600;
}
.asde-ap .asde-pasos li.is-actual .asde-pasos__marca {
	border-color: var(--asde-primary);
	color: var(--asde-primary);
}
.asde-ap .asde-alta-socio fieldset + fieldset,
.asde-ap .asde-alta-socio .asde-alta-socio__tutores {
	margin-top: 12px;
}
.asde-ap .asde-alta-socio__tutores fieldset {
	margin-top: 8px;
}
.asde-ap .asde-alta-socio__resumen dd {
	overflow-wrap: anywhere;
}
.asde-ap .asde-alta-socio__numero {
	font-size: 1.4em;
	letter-spacing: .03em;
}
.asde-ap .asde-alta-socio .asde-actions,
.asde-ap .asde-membresia-crm__acciones {
	align-items: center;
	gap: 8px 12px;
}
.asde-ap .asde-membresia-crm .asde-notice ul,
.asde-ap .asde-bajas-recientes ul {
	margin: .4em 0 0 1.2em;
}
.asde-ap .asde-bajas-recientes li {
	overflow-wrap: anywhere;
}

/* v0.25.0 · Tesorería: eliminar un pago con su motivo y el historial de la familia */
.asde-ap .asde-eliminar-mov summary {
	list-style: none;
	cursor: pointer;
	display: inline;
}
.asde-ap .asde-eliminar-mov summary::-webkit-details-marker {
	display: none;
}
.asde-ap .asde-eliminar-mov[open] summary {
	margin-bottom: 6px;
	display: block;
}
.asde-ap .asde-eliminar-mov__form {
	display: grid;
	gap: 6px;
	min-width: min(100%, 240px);
}
.asde-ap .asde-eliminar-mov__form .button {
	justify-self: start;
}
.asde-ap .asde-historial__eliminado td {
	color: var(--asde-muted);
}
.asde-ap .asde-historial td {
	overflow-wrap: anywhere;
}

/* v0.25.0 · Usuarios: sus páginas son hojas de un libro, como en una hoja de cálculo */
.asde-ap .asde-libro {
	margin-top: -8px;
}
.asde-ap .asde-hojas {
	margin: 0 0 16px;
	overflow-x: auto;
	box-shadow: inset 0 -2px 0 var(--asde-primary);
	scrollbar-width: thin;
}
.asde-ap .asde-hojas__lista {
	display: flex;
	align-items: flex-end;
	gap: 2px;
	margin: 0;
	padding: 0 4px;
	list-style: none;
}
.asde-ap .asde-hojas__item {
	flex: 0 0 auto;
	margin: 0;
	list-style: none;
}
.asde-ap .asde-hojas__pestana {
	display: block;
	margin-bottom: 2px;
	padding: 8px 16px;
	border: 1px solid var(--asde-border);
	border-bottom: 0;
	border-radius: 6px 6px 0 0;
	background: var(--asde-neutral-bg);
	color: var(--asde-text);
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
}
.asde-ap .asde-hojas__pestana:hover {
	background: var(--asde-tint);
	color: var(--asde-primary);
}
/* La hoja que se ve, unida a su contenido (tapa la raya de abajo). */
.asde-ap .asde-hojas__pestana.is-active {
	margin-bottom: 0;
	padding-bottom: 10px;
	border-color: var(--asde-primary);
	border-top-width: 3px;
	background: var(--asde-surface);
	color: var(--asde-primary);
	font-weight: 600;
}
.asde-ap .asde-hojas__pestana:focus-visible {
	outline: 2px solid var(--asde-primary);
	outline-offset: -2px;
}
.asde-ap .asde-libro--cargando .asde-hoja:not([hidden]) {
	opacity: 0.55;
	transition: opacity 0.15s;
}
.asde-ap .asde-libro__avisos:empty {
	display: none;
}
/* En el móvil, las tres hojas caben en la pantalla (a 390 px, sin desplazarse). */
@media (max-width: 600px) {
	.asde-ap .asde-hojas__lista {
		padding: 0;
	}
	.asde-ap .asde-hojas__pestana {
		padding: 8px 10px;
		font-size: 13px;
	}
	.asde-ap .asde-hojas__pestana.is-active {
		padding-bottom: 10px;
	}
}

/* v0.26.0 · Ayuda de cada página: el apartado del manual del rol (generado desde manual/fuentes) */
.asde-ap .asde-ayuda h2 {
	margin-top: 0;
}
.asde-ap .asde-ayuda h3 {
	margin: 1.4em 0 0.5em;
}
.asde-ap .asde-ayuda h4 {
	margin: 1.2em 0 0.4em;
}
.asde-ap .asde-ayuda .resumen {
	font-size: 1.05em;
}
.asde-ap .asde-ayuda__apartado + .asde-ayuda__apartado {
	margin-top: 2em;
	padding-top: 1.5em;
	border-top: 1px solid var(--asde-border);
}
.asde-ap .asde-ayuda__captura {
	margin: 1em 0 1.4em;
}
.asde-ap .asde-ayuda__captura img {
	display: block;
	max-width: 100%;
	height: auto;
	border: 1px solid var(--asde-border);
	border-radius: var(--asde-radius);
}
.asde-ap .asde-ayuda__captura--movil img {
	max-width: 260px;
}
.asde-ap .asde-ayuda__captura figcaption {
	margin-top: 6px;
	color: var(--asde-muted);
	font-size: 0.9em;
}
.asde-ap .asde-ayuda__moviles {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: flex-start;
}
.asde-ap .asde-ayuda__moviles > * {
	flex: 1 1 240px;
}
.asde-ap .asde-ayuda .nota,
.asde-ap .asde-ayuda .ojo {
	margin: 1em 0;
	padding: 10px 14px;
	border-left: 4px solid var(--asde-primary);
	border-radius: var(--asde-radius);
	background: var(--asde-tint);
}
.asde-ap .asde-ayuda .ojo {
	border-left-color: var(--asde-warn-text);
	background: var(--asde-warn-bg);
}
.asde-ap .asde-ayuda .nota p,
.asde-ap .asde-ayuda .ojo p {
	margin: 0;
}
.asde-ap .asde-ayuda .tabla {
	overflow-x: auto;
}
.asde-ap .asde-ayuda details.pregunta {
	margin: 0.5em 0;
}
.asde-ap .asde-ayuda details.pregunta summary {
	font-weight: 600;
	cursor: pointer;
}
.asde-ap .asde-ayuda__wiki {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 2em 0 0;
	padding-top: 1.2em;
	border-top: 1px solid var(--asde-border);
}
