/*
 * COEDPI — Adaptación móvil de la app (portal, área personal, login, formularios públicos).
 *
 * REGLA DE ORO: todo el contenido de este fichero vive dentro de un @media con
 * max-width. El escritorio no se ve afectado por construcción, así que se puede
 * usar !important sin riesgo para vencer a los estilos en línea que hay repartidos
 * por el PHP (p. ej. style="padding:6px 10px;font-size:11px" en botones de acción).
 * No copies estas reglas fuera de un @media. La única excepción es el bloque
 * final de anclas, que sí necesita una regla min-width para neutralizar el
 * salto en escritorio; está documentada allí.
 *
 * Breakpoints alineados con coedpi-proto-v1.css: 1050 / 760 / 430.
 * Se carga después de coedpi-proto-bridge.css y solo en páginas de la app
 * (ver coedpi_enqueue_mobile_css en includes/main.php). Nunca en wp-admin.
 */

/* Excepción funcional (no layout): «Día concreto» solo si periodicidad = un día.
 * La botonera móvil fuerza display:block en labels y anulaba el style="display:none". */
#coedpi-seguro-contratacion-panel:not(.is-open),
#coedpi-seguro-contratacion-panel[hidden] {
	display: none !important;
}
#coedpi-seguro-contratacion-panel.is-open {
	display: block !important;
}
#coedpi-seguro-contratacion-panel select,
#coedpi-seguro-contratacion-panel input[type="date"] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
#coedpi-contratar-seguro-btn {
	display: flex !important;
	width: 100% !important;
	max-width: 100%;
	box-sizing: border-box;
	justify-content: center;
	align-items: center;
	min-height: 48px !important;
	margin-top: 4px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--gold, #e5bd18) !important;
	color: #211c08 !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	box-shadow: 0 6px 16px rgba(229, 189, 24, .28);
	opacity: 1;
}
#coedpi-contratar-seguro-btn:disabled {
	background: #f3e6a8 !important;
	color: #7a6a28 !important;
	box-shadow: none;
	opacity: .72;
	cursor: not-allowed;
}

label.periodicidad-dia:not(.is-visible) {
	display: none !important;
}
label.periodicidad-dia.is-visible {
	display: block !important;
	margin-top: 8px;
	margin-left: 0 !important;
}

/* ==========================================================================
   Tablet — el sidebar ya pasa a off-canvas en proto-v1 a este mismo ancho
   ========================================================================== */
@media (max-width: 1050px) {
	.sidebar {
		width: min(300px, 86vw);
		/* El scroll va en .side-scroll; el aside no debe recortar el pie fijo */
		overflow: hidden !important;
		height: 100vh;
		height: 100dvh;
		max-height: 100dvh;
	}

	/* El menú abierto debe quedar por encima del overlay y del header sticky. */
	.sidebar.open {
		box-shadow: 0 0 40px rgba(0, 0, 0, .28);
	}

	.side-scroll {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.group-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.side-footer {
		flex: 0 0 auto;
		display: block !important;
		padding: 10px 0 calc(14px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		border-top: 1px solid var(--line, #e8e2d6);
	}

	.side-footer .side-note {
		display: flex !important;
		margin-top: 0 !important;
		margin-bottom: 10px;
	}

	.side-footer .side-logout-link {
		display: flex !important;
		min-height: 48px !important;
		font-size: 15px !important;
		font-weight: 800;
	}

	/* Botonera de seguros: en tablet ya no caben 3 columnas con selects largos. */
	table.botonera {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		table-layout: fixed;
	}

	table.botonera tbody,
	table.botonera tr {
		display: block !important;
		width: 100% !important;
	}

	table.botonera td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		padding: 0 0 12px !important;
	}

	table.botonera select,
	table.botonera input[type="date"] {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	table.botonera label.periodicidad-dia:not(.is-visible) {
		display: none !important;
	}

	table.botonera label.periodicidad-dia.is-visible {
		display: block !important;
	}
}

/* ==========================================================================
   Móvil — bloque principal
   ========================================================================== */
@media (max-width: 760px) {

	.group-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Login: textos de cabecera a la izquierda (no centrados). */
	body.coedpi-app-landing .login-intro,
	body.coedpi-app-landing .login-intro .eyebrow,
	body.coedpi-app-landing .login-intro h1,
	body.coedpi-app-landing .login-intro p {
		text-align: left !important;
	}

	/* ----------------------------------------------------------------------
	   Campos de formulario.
	   Safari en iOS hace zoom automático al enfocar cualquier campo con fuente
	   menor de 16px, y no revierte el zoom al salir. Es la causa principal de
	   que la app resulte inmanejable en iPhone.
	   ---------------------------------------------------------------------- */
	input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
	select,
	textarea {
		font-size: 16px !important;
		min-height: 44px !important;
		max-width: 100%;
	}

	.coedpi-modal select:not([multiple]):not([size]),
	.coedpi-modal-select:not([multiple]):not([size]) {
		height: auto !important;
		min-height: 48px !important;
		line-height: 1.35 !important;
		padding: 12px 36px 12px 14px !important;
	}

	textarea {
		min-height: 96px !important;
		line-height: 1.5;
	}

	/* Casillas y radios: agrandar el objetivo sin tocar el layout. */
	input[type="checkbox"],
	input[type="radio"] {
		width: 20px !important;
		height: 20px !important;
	}

	label {
		font-size: 12px;
	}

	/* ----------------------------------------------------------------------
	   Botones y enlaces de acción — mínimo 44x44px.
	   El !important neutraliza los estilos en línea del PHP.
	   ---------------------------------------------------------------------- */
	.btn,
	a.btn,
	button.btn,
	.btnormal,
	.coedpibutton,
	button[type="submit"],
	input[type="submit"],
	.coedpi-row-actions .btn,
	.dual-actions .btn {
		min-height: 44px !important;
		padding: 11px 18px !important;
		font-size: 13px !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* ----------------------------------------------------------------------
	   Botonera contratar seguros / renovaciones / CRM.
	   En escritorio es una <table> de 3 celdas en fila; en móvil desborda y
	   obliga a scroll horizontal para ver la tarifa. Se apila en columna.
	   ---------------------------------------------------------------------- */
	table.botonera {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		border-collapse: collapse;
		table-layout: fixed;
		overflow: visible !important;
	}

	table.botonera tbody,
	table.botonera tr {
		display: block !important;
		width: 100% !important;
	}

	table.botonera td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		padding: 0 0 12px !important;
		vertical-align: top;
	}

	table.botonera td:last-child {
		padding-bottom: 0 !important;
	}

	table.botonera label {
		display: block !important;
		margin: 0 0 6px !important;
		font-weight: 700;
	}

	/* Día concreto: oculto por defecto; solo visible con class is-visible (periodicidad = un día). */
	table.botonera label.periodicidad-dia {
		display: none !important;
		margin-top: 8px !important;
		margin-left: 0 !important;
	}

	table.botonera label.periodicidad-dia.is-visible {
		display: block !important;
	}

	table.botonera .coedpibutton,
	table.botonera .btnormal,
	table.botonera button,
	table.botonera input[type="submit"] {
		width: 100% !important;
		box-sizing: border-box;
		margin: 0 !important;
	}

	table.botonera select,
	table.botonera select.periodicidad,
	table.botonera select.seguro,
	table.botonera #tarifa,
	table.botonera #periodicidad,
	table.botonera #seguro,
	table.botonera #accion,
	table.botonera input[type="date"] {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		/* Evita que el texto largo de la tarifa ensanche la página. */
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	/* Botones con aspecto de enlace: sin padding propio quedan en ~13px de alto. */
	.text-link,
	a.text-link,
	.lost-link,
	button.lost-link {
		font-size: 13px !important;
		display: inline-flex;
		align-items: center;
		padding: 8px 2px !important;
		min-height: 42px !important;
	}

	/* Botones de cierre e iconos cuadrados. */
	.coedpi-modal__close,
	.coedpi-pwd-toggle,
	.coedpi-otp-close,
	.coedpi-notif-btn,
	.menu,
	.coedpi-menu-btn {
		min-width: 44px !important;
		min-height: 44px !important;
	}

	/* Popup añadir atleta: lista con altura usable + overlay scrollable (Safari). */
	.coedpi-grupo-add-picker {
		padding: 8px !important;
		align-items: flex-start !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	.coedpi-grupo-add-picker .coedpi-modal {
		width: 100%;
		max-width: 100%;
		max-height: none !important;
		margin: 8px auto 20px !important;
		padding: 16px 14px 12px;
		overflow: visible !important;
	}
	.coedpi-grupo-add-picker .coedpi-grupo-add-intro {
		margin: 0 0 8px;
		font-size: 12px;
	}
	.coedpi-grupo-add-picker h3 {
		font-size: 16px !important;
		margin-bottom: 4px !important;
	}
	.coedpi-grupo-add-list {
		min-height: 160px !important;
		height: 240px !important;
		max-height: 240px !important;
		height: 38vh !important;
		max-height: 38vh !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	.coedpi-grupo-add-list label {
		padding: 7px 10px;
	}
	.coedpi-grupo-add-picker .coedpi-modal__actions {
		position: relative;
		margin-top: 8px;
		padding-top: 8px;
		padding-bottom: max(4px, env(safe-area-inset-bottom));
		background: #fffef9;
	}
	.coedpi-grupo-add-picker .coedpi-modal__actions .btn {
		flex: 1 1 auto;
		min-height: 44px;
		justify-content: center;
	}

	/* ----------------------------------------------------------------------
	   Pestañas y tiras de filtros: deslizables en vez de comprimidas.
	   ---------------------------------------------------------------------- */
	.personal-tabs,
	.entity-tabs,
	.context-filters,
	.service-filters,
	.notification-filters,
	.coedpi-stat-tabs,
	.coedpi-grupo-filter-tabs {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		flex-wrap: nowrap;
	}

	.personal-tabs::-webkit-scrollbar,
	.entity-tabs::-webkit-scrollbar,
	.context-filters::-webkit-scrollbar,
	.service-filters::-webkit-scrollbar,
	.notification-filters::-webkit-scrollbar,
	.coedpi-stat-tabs::-webkit-scrollbar,
	.coedpi-grupo-filter-tabs::-webkit-scrollbar {
		display: none;
	}

	.personal-tabs a,
	.personal-tabs button,
	.entity-tabs a,
	.entity-tabs button,
	.context-filters a,
	.context-filters button,
	.service-filters a,
	.service-filters button,
	.notification-filters a,
	.notification-filters button,
	.coedpi-stat-tabs button,
	.coedpi-grupo-filter-tabs a,
	.coedpi-grupo-filter-tabs button {
		font-size: 12px !important;
		min-height: 42px !important;
		padding: 10px 14px !important;
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	/* Conmutadores tipo píldora: reparten el ancho, no se deslizan. */
	.view-switch,
	.segmented {
		width: 100%;
	}

	.view-switch a,
	.view-switch button,
	.segmented a,
	.segmented button {
		flex: 1 1 0;
		font-size: 12px !important;
		min-height: 42px !important;
		padding: 10px 12px !important;
	}

	/* ----------------------------------------------------------------------
	   Cabecera.
	   En móvil: lupa + «Opciones»; el campo se abre a ancho de pantalla
	   (fixed) para no salirse del viewport.
	   ---------------------------------------------------------------------- */
	.coedpi-menu-search-wrap {
		position: static;
	}

	.coedpi-menu-search-toggle {
		display: inline-flex !important;
		min-width: 44px;
		min-height: 44px !important;
		height: 44px !important;
		padding: 0 10px !important;
		font-size: 13px !important;
	}

	.head-actions input.search,
	.head-actions input.coedpi-header-menu-search,
	.app-header input.search,
	.app-header input.coedpi-header-menu-search {
		display: none !important;
	}

	.coedpi-menu-search-wrap.is-open input.search,
	.coedpi-menu-search-wrap.is-open input.coedpi-header-menu-search {
		display: block !important;
		position: fixed !important;
		top: max(8px, env(safe-area-inset-top, 0px)) !important;
		left: 12px !important;
		right: 12px !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		min-height: 44px !important;
		height: 44px !important;
		font-size: 16px !important;
		z-index: 1200 !important;
		margin: 0 !important;
		box-shadow: 0 10px 28px rgba(28, 25, 21, .18) !important;
		background: #fff !important;
	}

	.coedpi-menu-search-wrap.is-open .coedpi-menu-search-toggle {
		border-color: #c9b89a;
		background: #fff;
	}

	.coedpi-menu-search-pop {
		left: 12px !important;
		right: 12px !important;
		width: auto !important;
		max-width: none !important;
		box-sizing: border-box;
		z-index: 1201;
	}

	.head-actions {
		min-width: 0;
		gap: 6px;
	}

	.head-actions > * {
		min-width: 0;
	}

	/* Nombre y rol en texto: fuera. El avatar y el selector de perfil se quedan,
	   porque cambiar de perfil es una acción central de la app. */
	.head-user .user div,
	a.user div,
	a.user i {
		display: none !important;
	}

	.coedpi-perfil-switch,
	.coedpi-perfil-switch select {
		min-width: 0 !important;
		max-width: 44vw;
	}

	.bell,
	a.bell,
	.head-user .user,
	a.user {
		min-width: 44px !important;
		min-height: 44px !important;
	}

	/* Los badges de estado (Al corriente, Sin seguro…) suelen ser enlaces a la
	   vista de detalle, así que también son objetivo táctil. */
	a.badge {
		min-height: 40px !important;
		padding: 8px 12px !important;
		display: inline-flex;
		align-items: center;
	}

	/* ----------------------------------------------------------------------
	   Navegación lateral
	   ---------------------------------------------------------------------- */

	/* Acciones del pie del sidebar (área personal, cambiar escuela, salir):
	   9px de fuente y 26px de alto en el prototipo. */
	.context-actions a,
	.context-actions button {
		font-size: 13px !important;
		min-height: 44px !important;
		padding: 10px 8px !important;
		display: flex;
		align-items: center;
	}

	.side-footer {
		display: block !important;
	}

	.side-footer .side-note {
		display: flex !important;
	}

	.side-footer .side-logout-link {
		display: flex !important;
		align-items: center;
		justify-content: center;
		min-height: 48px !important;
		width: 100%;
		box-sizing: border-box;
		font-size: 15px !important;
		font-weight: 800;
	}

	/* Botón de cerrar el menú lateral. */
	[data-coedpi-nav-close] {
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.sidebar nav a.nav-link,
	.sidebar nav button {
		min-height: 48px !important;
	}

	.sidebar nav span {
		font-size: 14px !important;
	}

	.sidebar nav > p {
		font-size: 10px !important;
	}

	/* ----------------------------------------------------------------------
	   Densidad de texto: los 8-11px del prototipo son ilegibles en móvil.
	   ---------------------------------------------------------------------- */
	.data-row span {
		font-size: 13px !important;
	}

	.data-row.data-head {
		font-size: 11px !important;
	}

	.badge,
	.card small {
		font-size: 11px !important;
	}

	table.coedpi-table,
	table.athlete-table,
	table.coedpi-stat-table {
		font-size: 13px;
	}

	/* ----------------------------------------------------------------------
	   Filtros y barras de herramientas: una columna, sin min-width que fuerce
	   dos columnas apretadas antes de envolver.
	   ---------------------------------------------------------------------- */
	.toolbar,
	.athlete-filters-wrap.is-open .athlete-table-filters,
	.athlete-directory-tools {
		flex-direction: column;
		align-items: stretch;
	}
	.athlete-filters-toggle {
		width: auto !important;
		max-width: 100%;
	}

	.toolbar > *,
	.toolbar label,
	.athlete-table-filters > *,
	.athlete-table-filters label,
	.athlete-directory-tools > * {
		flex: 1 1 100% !important;
		min-width: 0 !important;
		width: 100%;
	}

	/* Muchas barras de filtro son un <form> flex suelto, sin clase .toolbar, así
	   que no basta con actuar sobre el contenedor. Se fuerza desde el propio
	   filtro: base del 100% para que cada uno caiga en su fila al envolver. */
	.coedpi-filter-select,
	.field-label {
		min-width: 0 !important;
		flex: 1 1 100% !important;
		width: 100% !important;
		box-sizing: border-box;
	}

	/* Los selects de filtro los fija el bridge en 34px con !important y
	   especificidad 0-2-1, así que la regla genérica de 44px no les llega.
	   Hay que igualar el selector para poder vencerlos. */
	.app-shell .coedpi-filter-select,
	.coedpi-proto-shell .coedpi-filter-select {
		min-height: 46px !important;
		width: 100% !important;
		font-size: 12px !important;
	}

	.app-shell .coedpi-filter-select > select:not([multiple]):not([size]),
	.coedpi-proto-shell .coedpi-filter-select > select:not([multiple]):not([size]),
	.app-shell .toolbar > label > select:not([multiple]):not([size]),
	.coedpi-proto-shell .toolbar > label > select:not([multiple]):not([size]) {
		height: 44px !important;
		min-height: 44px !important;
		line-height: 44px !important;
		font-size: 16px !important;
	}

	/* ----------------------------------------------------------------------
	   Tablas anchas que no se pueden convertir en tarjetas (la de atletas son
	   9 columnas, 1055px). El contenedor ya recorta con overflow-x:auto; aquí
	   se añade inercia táctil y se ancla la columna del nombre para no perder
	   la referencia de qué fila se está leyendo al desplazarse.
	   ---------------------------------------------------------------------- */
	.athlete-table-wrap,
	.coedpi-table-scroll {
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
	}

	.athlete-table-wrap table.athlete-table th:first-child,
	.athlete-table-wrap table.athlete-table td:first-child {
		position: sticky;
		left: 0;
		z-index: 2;
		background: #fff;
		box-shadow: 1px 0 0 var(--line, #e8e2d6);
	}

	#coedpi-seguro-con-table tbody tr:hover td:first-child {
		background: #faf8f2;
	}

	.coedpi-seguro-con-toolbar .coedpi-renew-search,
	.coedpi-seguro-con-toolbar input[type="search"] {
		max-width: none;
		width: 100%;
	}

	/* ----------------------------------------------------------------------
	   Contención horizontal: nada debe empujar el ancho de la página.
	   ---------------------------------------------------------------------- */
	img,
	video,
	iframe {
		max-width: 100%;
		height: auto;
	}

	.page-intro h1 {
		font-size: 22px;
		line-height: 1.25;
	}

	/* Acciones del page-intro (Crear escuela, Crear grupo…): siempre visibles en móvil. */
	.page-intro {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		margin-bottom: 12px !important;
		min-height: 0 !important;
	}

	.page-intro > div:first-of-type {
		flex: 0 1 auto !important;
	}

	.page-intro .page-intro-school-logo,
	.page-intro > .real-school-logo.large,
	.page-intro > .real-school-logo {
		width: 48px !important;
		height: 48px !important;
		max-width: 48px !important;
		max-height: 48px !important;
	}

	.page-intro-actions {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		gap: 8px;
		order: 2;
	}

	.page-intro-actions .btn {
		width: 100%;
		justify-content: center;
		text-align: center;
		min-height: 44px;
		box-sizing: border-box;
	}

	/* Atajos del menú lateral (drawer): no perder opciones clave del gestor. */
	.context-actions a {
		display: flex !important;
		align-items: center;
		min-height: 44px;
	}

	/* ----------------------------------------------------------------------
	   Hojas de inscripción (editor + QR / enlaces por grupo)
	   ---------------------------------------------------------------------- */
	.enrollment-layout {
		grid-template-columns: 1fr !important;
		gap: 14px;
	}

	.coedpi-hoja-atletas-section,
	.coedpi-hoja-sidebar {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	/* Formador: solo grid de grupos (sin columna vacía ni textos introductorios). */
	.enrollment-layout[data-coedpi-hoja-formador="1"] > div:first-child {
		display: none !important;
	}

	.coedpi-hoja-formador-grupos {
		padding-top: 12px !important;
	}

	.section-title {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 8px;
	}

	.section-title h2 {
		font-size: 17px !important;
		line-height: 1.25;
	}

	.section-title p {
		font-size: 13px !important;
	}

	.sheet-fields label {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 8px;
		font-size: 13px !important;
		padding: 10px 0 !important;
	}

	.coedpi-hoja-editor-tabs {
		display: flex !important;
		flex-wrap: wrap;
		gap: 8px !important;
	}

	.coedpi-hoja-editor-tabs a {
		min-height: 42px !important;
		display: inline-flex !important;
		align-items: center;
		padding: 10px 14px !important;
		font-size: 13px !important;
	}

	.coedpi-hoja-action-row,
	.coedpi-hoja-grupo-actions,
	.hoja-share-actions {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		width: 100%;
		gap: 8px !important;
	}

	.coedpi-hoja-action-row .btn,
	.coedpi-hoja-grupo-actions .btn,
	.hoja-share-actions .btn,
	.hoja-share-actions a.btn {
		width: auto !important;
		flex: 1 1 calc(50% - 8px) !important;
		margin: 0 !important;
		min-width: 0;
		max-width: 100%;
		white-space: nowrap;
	}

	.app-shell .share-url,
	.enrollment-share .share-url,
	.coedpi-hoja-grupos-grid .share-url {
		flex-direction: column !important;
		align-items: stretch !important;
		padding: 10px !important;
	}

	.app-shell .share-url code,
	.enrollment-share .share-url code,
	.coedpi-hoja-grupos-grid .share-url code {
		flex: 1 1 100% !important;
		width: 100% !important;
		font-size: 12px !important;
		line-height: 1.4 !important;
		white-space: normal !important;
		word-break: break-all !important;
		overflow-wrap: anywhere !important;
		overflow: visible !important;
		text-overflow: unset !important;
	}

	.app-shell .share-url .btn,
	.enrollment-share .share-url .btn,
	.coedpi-hoja-grupos-grid .share-url .btn {
		display: none !important;
	}

	.enrollment-share img,
	.enrollment-share.qr-display img,
	.hoja-qr-wrap img {
		max-width: min(320px, 100%) !important;
		width: 100% !important;
		height: auto !important;
	}

	.hoja-send-email {
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.coedpi-hoja-send-email-row {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.coedpi-hoja-send-email-row input[type="email"] {
		width: 100% !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
	}

	.coedpi-hoja-send-email-row .btn {
		width: 100% !important;
	}

	.coedpi-cf-row {
		max-width: 100%;
		box-sizing: border-box;
	}

	.coedpi-cf-row .btn,
	.coedpi-cf-row button {
		width: 100%;
	}

	.coedpi-hoja-grupo-actions .btn {
		width: auto !important;
		flex: 1 1 calc(50% - 8px) !important;
	}

	/* Hoja inscripción pública: modal, mensajes y controles táctiles */
	.coedpi-hoja-login-overlay.is-open {
		align-items: flex-end !important;
		justify-content: center !important;
		padding: 0 !important;
	}
	.coedpi-hoja-login-card {
		width: 100% !important;
		max-width: none !important;
		border-radius: 18px 18px 0 0 !important;
		max-height: min(92dvh, 100%) !important;
		padding: 20px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
	}
	.coedpi-hoja-login-field input {
		font-size: 16px !important;
		min-height: 44px !important;
	}
	.coedpi-hoja-login-btn,
	.coedpi-hoja-login-btn-alt {
		min-height: 48px !important;
		font-size: 16px !important;
	}
	.coedpi-hoja-login-error.is-visible {
		font-size: 15px !important;
		padding: 12px 14px !important;
	}
	.coedpi-public-enrollment-form .acf-field .acf-input > input[type="radio"] + label,
	.coedpi-public-enrollment-form .coedpi-hoja-radio-group > input[type="radio"] + label,
	.coedpi-public-enrollment-form .coedpi-hoja-radio-pill {
		flex: 1 1 100%;
		min-width: 0;
	}
	.coedpi-public-enrollment-form .coedpi-hoja-check,
	.coedpi-public-enrollment-form .acf-field label.coedpi-hoja-check {
		padding: 16px 14px !important;
	}
	.coedpi-hoja-check-text {
		font-size: 16px !important;
		line-height: 1.5 !important;
	}
	.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt,
	.coedpi-public-enrollment-form label.coedpi-hoja-seguro-opt {
		padding: 16px 14px !important;
		min-height: 52px !important;
	}
	.coedpi-hoja-seguro-opt-text {
		font-size: 16px !important;
		line-height: 1.5 !important;
	}
	.coedpi-public-enrollment-form select:not([multiple]):not([size]) {
		font-size: 16px !important;
		min-height: 48px !important;
		height: 48px !important;
		line-height: 46px !important;
		width: 100% !important;
	}
	#coedpi-hoja-submit-errors {
		font-size: 16px !important;
		padding: 16px 18px !important;
		line-height: 1.5 !important;
	}
	#coedpi-hoja-submit-errors[hidden] {
		pointer-events: none !important;
	}
	.coedpi-hoja-login-overlay:not(.is-open),
	.coedpi-hoja-login-overlay[hidden] {
		pointer-events: none !important;
	}
	#coedpi-hoja-error-banner {
		top: env(safe-area-inset-top, 0px);
	}

	/* Sidebar off-canvas: sin pointer-events cuando está cerrado (iOS). */
	.sidebar:not(.open) {
		pointer-events: none;
	}

	.sidebar.open {
		pointer-events: auto;
	}

	#coedpi-nav-overlay[hidden] {
		display: none !important;
		pointer-events: none !important;
	}

	body.coedpi-scroll-locked {
		overflow: hidden;
	}

	/* position:fixed en body rompe toques en iOS dentro de formularios largos */
	@media (min-width: 901px) {
		body.coedpi-scroll-locked {
			position: fixed;
			width: 100%;
			left: 0;
			right: 0;
		}
	}

	button,
	a,
	.btn,
	input[type="submit"],
	input[type="button"],
	select,
	[role="button"],
	[role="tab"] {
		touch-action: manipulation;
	}

	/* Atajos del grupo (página gestionar): botones apilados a ancho completo. */
	.group-quick-actions {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	/* Listado de grupos: tres atajos en una fila, iconos del mismo tamaño que cabecera. */
	.group-grid .group-quick-actions {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		gap: 0;
		margin-top: 12px;
		min-width: 0;
	}
	.group-grid .coedpi-grupo-list-actions {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		flex-direction: unset !important;
		flex-wrap: unset !important;
		align-items: start;
		gap: 8px 4px !important;
		width: 100%;
		min-width: 0;
	}
	.group-grid .coedpi-grupo-list-actions.is-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.group-grid .coedpi-grupo-list-actions .coedpi-atajos-tile {
		min-width: 0;
		width: 100%;
		max-width: 100%;
		overflow: hidden;
		padding: 6px 2px;
		gap: 8px;
	}
	.group-grid .coedpi-grupo-list-actions .coedpi-atajos-well,
	.group-grid .coedpi-grupo-list-actions.is-3 .coedpi-atajos-well {
		width: min(76px, 100%) !important;
		height: auto !important;
		aspect-ratio: 1;
		max-width: 76px;
		border-radius: 18px !important;
	}
	.group-grid .coedpi-grupo-list-actions .coedpi-atajos-well img,
	.group-grid .coedpi-grupo-list-actions.is-3 .coedpi-atajos-well img {
		width: 80% !important;
		height: 80% !important;
		max-width: 58px !important;
		max-height: 58px !important;
	}
	.group-grid .coedpi-grupo-list-actions .coedpi-atajos-tile strong,
	.group-grid .coedpi-grupo-list-actions.is-3 .coedpi-atajos-tile strong {
		font-size: 12px !important;
		font-weight: 800 !important;
		max-width: 100%;
		width: 100%;
		line-height: 1.25;
		color: #a08a2a !important;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.group-quick-actions .btn {
		width: 100% !important;
		justify-content: center;
	}

	/* Pestañas Alumnos / Ajustes: estilo tab, no botones. */
	.group-tabs.entity-tabs,
	.entity-tabs.group-tabs {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		width: 100%;
		margin: 12px 0 16px;
		border-bottom: 1px solid var(--line, #e8e2d6);
		overflow-x: auto;
	}

	.group-tabs.entity-tabs a,
	.entity-tabs.group-tabs a {
		flex: 1 1 0;
		justify-content: center;
		text-align: center;
		min-height: 44px;
		padding: 12px 14px !important;
		font-size: 13px !important;
		font-weight: 800 !important;
		border-radius: 0 !important;
		border: 0 !important;
		border-bottom: 2px solid transparent !important;
		background: transparent !important;
		color: var(--muted, #8a847a) !important;
		box-shadow: none !important;
		width: auto !important;
	}

	.group-tabs.entity-tabs a.active,
	.entity-tabs.group-tabs a.active {
		color: var(--olive, #6d5910) !important;
		border-bottom-color: var(--gold, #e5bd18) !important;
		border-bottom-width: 3px !important;
		background: rgba(229, 189, 24, 0.18) !important;
	}

	/* Sede: atajo vigente (Datos Sede) */
	.quick-strip .coedpi-atajos-wrap--sede .coedpi-atajos-tile.is-active .coedpi-atajos-well {
		background: #e5bd18;
		border: 2px solid #6b5a12;
		box-shadow:
			0 0 0 3px rgba(229, 189, 24, 0.55),
			0 4px 14px rgba(107, 90, 18, 0.28);
		transform: scale(1.08);
	}
	.quick-strip .coedpi-atajos-wrap--sede .coedpi-atajos-tile.is-active strong {
		color: #2a2208 !important;
		font-weight: 900 !important;
		text-decoration: underline;
		text-decoration-thickness: 2px;
		text-underline-offset: 3px;
	}
	#coedpi-sede-panel,
	.coedpi-sede-panel-land {
		scroll-margin-top: 110px;
	}

	/* Tabla de alumnos del grupo → filas compactas expandibles. */
	.coedpi-grupo-alumnos-scroll {
		overflow-x: visible !important;
	}

	.coedpi-grupo-alumnos-table thead {
		display: none;
	}

	.coedpi-grupo-alumnos-table tbody tr.coedpi-grupo-alumno-row {
		display: block;
		margin: 0 0 8px;
		padding: 0;
		border: 1px solid var(--line, #e8e2d6);
		border-radius: 12px;
		background: #fff;
		overflow: hidden;
	}

	.coedpi-grupo-alumnos-table tbody td {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 10px;
		padding: 8px 14px !important;
		border: 0 !important;
		max-width: none !important;
		white-space: normal !important;
	}

	.coedpi-grupo-alumnos-table tbody td::before {
		content: attr(data-label);
		flex: 0 0 38%;
		font-size: 10px;
		font-weight: 800;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: var(--muted, #8a847a);
		padding-top: 2px;
	}

	/* Resumen compacto: foto/iniciales + nombre + alertas + Ver más. */
	.coedpi-grupo-alumnos-table tbody td.coedpi-grupo-alumno-head {
		display: block;
		padding: 10px 12px !important;
		margin: 0;
		border-bottom: 0 !important;
	}

	.coedpi-grupo-alumnos-table tbody td.coedpi-grupo-alumno-head::before {
		display: none;
	}

	.coedpi-grupo-alumno-summary {
		display: grid !important;
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"who toggle"
			"flags flags";
		align-items: center;
		gap: 4px 10px;
		min-width: 0;
	}

	.coedpi-grupo-alumno-who {
		grid-area: who;
		display: flex !important;
		align-items: center;
		gap: 10px;
		min-width: 0;
	}

	.coedpi-grupo-alumno-avatar.avatar {
		width: 44px !important;
		height: 44px !important;
		flex: 0 0 44px;
	}

	.coedpi-grupo-alumno-identity {
		grid-area: auto;
		min-width: 0;
	}

	.coedpi-grupo-alumno-identity strong {
		font-size: 14px;
		line-height: 1.25;
	}

	.coedpi-grupo-alumno-identity small {
		font-size: 11px;
	}

	.coedpi-grupo-alumno-flags {
		grid-area: flags;
		display: flex;
		flex-wrap: wrap;
		gap: 4px;
		min-height: 0;
		padding-left: 54px;
	}

	.coedpi-grupo-alumno-flags:empty {
		display: none;
	}

	.coedpi-grupo-alumno-flag {
		display: inline-flex;
		align-items: center;
		padding: 2px 7px;
		border-radius: 999px;
		font-size: 10px;
		font-weight: 800;
		letter-spacing: .02em;
		line-height: 1.3;
		background: #f3f0e8;
		color: #6b6458;
	}

	.coedpi-grupo-alumno-flag.is-warn {
		background: #fff3d2;
		color: #8a5a00;
	}

	.coedpi-grupo-alumno-flag.is-deuda {
		background: #fef3c7;
		color: #92400e;
		border: 1px solid #f59e0b;
	}

	.coedpi-grupo-alumno-pagar-quick {
		display: inline-flex !important;
		align-items: center;
		margin: 0;
		padding: 5px 12px !important;
		min-height: 32px;
		font-size: 12px !important;
		font-weight: 800;
		line-height: 1.2;
		border-radius: 999px;
	}

	/* En móvil el Pagar va también en el resumen; en detalle se muestra apilado. */
	.coedpi-grupo-alumno-row.is-expanded td.coedpi-grupo-alumno-pagos {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		gap: 6px;
		overflow: visible;
	}

	.coedpi-grupo-alumnos-table tbody td.coedpi-grupo-alumno-pagos::before {
		flex: none;
		width: auto;
		max-width: none;
	}

	.coedpi-grupo-alumno-pagos-body {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.coedpi-grupo-alumno-pagos-body ul {
		margin: 6px 0 0 !important;
		padding-left: 16px !important;
	}

	.coedpi-grupo-alumno-pagos-body .coedpi-grupo-pagar-detail {
		display: block !important;
	}

	.coedpi-grupo-alumno-toggle {
		grid-area: toggle;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		gap: 4px;
		margin: 0;
		padding: 6px 10px;
		min-height: 36px;
		border: 1px solid var(--line, #e0d8c8);
		border-radius: 999px;
		background: #faf8f2;
		color: var(--olive, #6d5910);
		font-size: 11px;
		font-weight: 800;
		cursor: pointer;
		-webkit-tap-highlight-color: rgba(229, 189, 24, .18);
		touch-action: manipulation;
		white-space: nowrap;
	}

	.coedpi-grupo-alumno-toggle__less {
		display: none;
	}

	.coedpi-grupo-alumno-row.is-expanded .coedpi-grupo-alumno-toggle__more {
		display: none;
	}

	.coedpi-grupo-alumno-row.is-expanded .coedpi-grupo-alumno-toggle__less {
		display: inline;
	}

	.coedpi-grupo-alumno-row.is-expanded .coedpi-grupo-alumno-toggle {
		background: var(--gold-soft, #fff8da);
		border-color: #d9bb3d;
	}

	/* Detalle y acciones ocultos hasta expandir. */
	.coedpi-grupo-alumnos-table tbody td.coedpi-grupo-alumno-detail {
		display: none !important;
	}

	.coedpi-grupo-alumno-row.is-expanded td.coedpi-grupo-alumno-detail {
		display: flex !important;
		border-top: 1px solid var(--line, #eee) !important;
	}

	.coedpi-grupo-alumno-row.is-expanded td.coedpi-grupo-alumno-head {
		border-bottom: 1px solid var(--line, #eee) !important;
		padding-bottom: 10px !important;
	}

	/* Acciones: contraídas hasta «Ver más»; misma rejilla 3 cols que los atajos. */
	.coedpi-grupo-alumno-row.is-expanded td.coedpi-grupo-alumno-actions {
		display: block !important;
		padding: 10px 12px 12px !important;
		border-top: 1px solid var(--line, #eee) !important;
		white-space: normal !important;
	}

	.coedpi-grupo-alumnos-table tbody td.coedpi-grupo-alumno-actions::before {
		display: block;
		flex: none;
		margin-bottom: 8px;
	}

	.coedpi-grupo-alumno-actions-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 14px 8px !important;
		width: 100%;
		align-items: start;
		justify-items: center;
	}

	.coedpi-grupo-alumno-actions .coedpi-atajos-tile,
	.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 8px;
		width: 100% !important;
		max-width: 112px !important;
		min-width: 0 !important;
		flex: none !important;
		padding: 6px 2px !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		min-height: 0 !important;
	}

	.coedpi-grupo-alumno-actions .coedpi-atajos-well {
		width: 76px !important;
		height: 76px !important;
		border-radius: 18px !important;
		background: #efe4a8 !important;
		border: 1px solid #d9c46a !important;
		display: grid !important;
		place-items: center !important;
	}

	.coedpi-grupo-alumno-actions .coedpi-atajos-well img {
		width: 58px !important;
		height: 58px !important;
		object-fit: contain !important;
		filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%) !important;
	}

	.coedpi-grupo-alumno-actions .coedpi-atajos-tile strong,
	.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo strong {
		display: block !important;
		visibility: visible !important;
		width: auto !important;
		height: auto !important;
		overflow: visible !important;
		position: static !important;
		clip: auto !important;
		text-align: center;
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}

	.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo.is-danger .coedpi-atajos-well {
		background: #f8e4de !important;
		border-color: #e0b0a4 !important;
	}

	.coedpi-grupo-alumno-atajo-form {
		display: contents !important;
		width: auto;
	}

	.coedpi-grupo-alumnos-table .coedpi-row-actions .btn,
	.coedpi-grupo-alumnos-table .coedpi-row-actions button.btn,
	.coedpi-grupo-alumnos-table .coedpi-row-actions a.btn {
		width: auto !important;
		min-height: 44px !important;
		margin: 0 !important;
		padding: 11px 14px !important;
		font-size: 13px !important;
		justify-content: center;
		white-space: normal;
	}

	/* Alta de parte: 8px lateral en campos (evita que queden pegados a la card). */
	.coedpi-partes-portal .card:has(#partenuevo) {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}

	.coedpi-partes-portal #partenuevo.acf-form,
	.app-shell .coedpi-partes-portal #partenuevo.acf-form {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.coedpi-partes-portal #partenuevo .acf-fields > .acf-field,
	.coedpi-partes-portal #partenuevo .acf-fields .acf-fields > .acf-field {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}

	.coedpi-partes-portal #partenuevo .acf-form-submit {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
}

/* ==========================================================================
   Táctil — sin hover pegajoso
   ========================================================================== */
@media (hover: none) and (max-width: 1050px) {
	.btn:hover,
	.card:hover,
	.mod-tile:hover,
	.data-row:hover,
	.school-card:hover {
		transform: none;
	}

	.btn:active,
	.mod-tile:active,
	a.card:active,
	.school-card:active {
		transform: scale(.985);
	}

	/* Formulario hoja: la tarjeta NO debe encogerse al tocar un campo (parecía un botón gigante). */
	.coedpi-public-enrollment-form.card:active,
	.coedpi-public-enrollment-form.portal-page-card:active,
	.portal-page-card.coedpi-public-enrollment-form:active {
		transform: none !important;
	}

	.coedpi-public-enrollment-form .coedpi-hoja-check:active,
	.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt:active,
	.coedpi-public-enrollment-form .coedpi-hoja-radio-pill:active,
	.coedpi-public-enrollment-form .acf-field .acf-input > input[type="radio"] + label:active,
	.coedpi-public-enrollment-form .btn:active {
		transform: scale(.985);
	}

	.coedpi-public-enrollment-form,
	.coedpi-public-enrollment-form .acf-field .acf-label > label:not(.coedpi-hoja-check):not(.coedpi-hoja-seguro-opt) {
		-webkit-tap-highlight-color: transparent;
	}

	.coedpi-public-enrollment-form .coedpi-hoja-check,
	.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt,
	.coedpi-public-enrollment-form .coedpi-hoja-radio-pill,
	.coedpi-public-enrollment-form .btn,
	.coedpi-public-enrollment-form button,
	.coedpi-public-enrollment-form select,
	.coedpi-public-enrollment-form input[type="checkbox"],
	.coedpi-public-enrollment-form input[type="radio"] {
		-webkit-tap-highlight-color: rgba(229, 189, 24, .18);
		touch-action: manipulation;
	}

	a,
	button,
	.btn,
	summary {
		-webkit-tap-highlight-color: rgba(229, 189, 24, .18);
	}

	/* ----------------------------------------------------------------------
	   Estadísticas escuela: KPI + charts no se salen en horizontal.
	   ---------------------------------------------------------------------- */
	.coedpi-stats-page,
	.coedpi-stats-block,
	.coedpi-stats-kpi-grid,
	.two-col.coedpi-stats-charts,
	.coedpi-stats-charts > .card,
	.coedpi-stat-chart-card,
	.coedpi-stat-detail,
	.coedpi-stat-op-grid {
		min-width: 0 !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.coedpi-stats-page {
		overflow-x: clip;
	}

	.coedpi-stats-kpi-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.coedpi-stats-kpi-grid > .coedpi-stat-kpi {
		min-width: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.two-col.coedpi-stats-charts {
		grid-template-columns: 1fr !important;
	}

	.coedpi-stat-donut-wrap {
		grid-template-columns: 1fr !important;
		justify-items: center;
	}

	.coedpi-stat-bar-row {
		grid-template-columns: 1fr !important;
	}

	.coedpi-stat-op-grid {
		grid-template-columns: 1fr !important;
	}

	.coedpi-stats-hero,
	.coedpi-stats-block-head--total,
	.coedpi-stat-detail-head.section-title {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.coedpi-stats-school,
	.coedpi-stat-filter-label,
	.coedpi-stat-filter-label select {
		max-width: 100% !important;
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* ==========================================================================
   Móvil estrecho — rellena los huecos donde el prototipo se queda en 2 columnas
   ========================================================================== */
@media (max-width: 430px) {
	.stat-grid,
	.coedpi-partes-portal .incident-kpis,
	.tutor-kpi-grid,
	.coedpi-stats-kpi-grid {
		grid-template-columns: 1fr !important;
	}

	.card,
	.portal-page-card {
		padding: 14px;
	}

	/* En pantallas muy estrechas los botones de acción ocupan el ancho para
	   no quedar apilados a medias. */
	.dual-actions {
		flex-direction: column;
	}

	.dual-actions .btn {
		width: 100%;
	}
}

/* ==========================================================================
   Aterrizaje tras filtros / búsquedas / recargas (#coedpi-contenido, #detalle)
   ========================================================================== */

/* En móvil el selector de Acciones rápidas mide más que la pantalla (892px de
   alto frente a 844), así que al elegir una opción la página recargaba y
   aterrizaba arriba del todo: se volvía a ver la misma lista y parecía que no
   había pasado nada. Los enlaces y el buscador apuntan ahora a #detalle /
   #coedpi-contenido; este margen deja el bloque justo debajo del header sticky
   + la barra de migas. */
@media (max-width: 1050px) {
	#detalle,
	#coedpi-contenido {
		scroll-margin-top: 110px;
	}
}

@media (max-width: 760px) {
	#detalle,
	#coedpi-contenido {
		scroll-margin-top: 110px;
	}

	/* Reserva mínima solo en acciones rápidas del área personal (no en el resto
	   de pantallas: ese min-height creaba un hueco muerto enorme). */
	.quick-action-workspace#detalle {
		min-height: min(40vh, 320px);
	}
}

/* Escritorio: cabecera (74) + migas (~42). */
@media (min-width: 1051px) {
	#detalle,
	#coedpi-contenido {
		scroll-margin-top: 120px;
	}
}


/* Ficha atleta: el hero no debe salirse de la card en móvil */
@media (max-width: 760px) {
	.coedpi-atleta-portal .profile-hero {
		flex-direction: column;
		align-items: flex-start;
		padding: 16px;
		gap: 12px;
	}
	.coedpi-atleta-portal .profile-hero > .avatar,
	.coedpi-atleta-portal .profile-hero > .avatar.xlarge {
		align-self: flex-start;
	}
	.coedpi-atleta-portal .profile-hero h1 {
		font-size: 20px !important;
	}
	/* Anula proto-v1: .profile-actions{width:100%} + .profile-actions .btn{flex:1} */
	.coedpi-atleta-portal .profile-hero > .profile-actions,
	.coedpi-atleta-portal .profile-actions {
		flex: 0 0 auto !important;
		width: auto !important;
		height: auto !important;
		align-self: flex-start !important;
	}
	.coedpi-atleta-portal .profile-actions > a.btn,
	.coedpi-atleta-portal .profile-actions .btn {
		flex: 0 0 auto !important;
		width: auto !important;
		height: auto !important;
		max-height: 48px !important;
		margin-top: 0 !important;
		min-height: 44px !important;
		justify-content: center;
	}
}

/* Gestor: rejilla de atajos en móvil */
@media (max-width: 760px) {
	/* Hero identidad + facturación: solo escritorio */
	.member-hero {
		display: none !important;
	}
	/* KPIs home personal: escuelas, grupos, servicios, solicitudes */
	.coedpi-home-stat-grid {
		display: none !important;
	}
	/* Cards Mis escuelas: bloque Gestores */
	.coedpi-gestor-invite-block {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos > .quick-strip-list,
	.quick-strip.coedpi-gestor-atajos .quick-strip-head,
	.quick-strip.coedpi-gestor-atajos .atajos-desk-only,
	.quick-strip.coedpi-gestor-atajos .atajos-mob-only {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-wrap {
		display: block !important;
		width: 100%;
		box-sizing: border-box;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-block + .coedpi-atajos-block {
		margin-top: 20px !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-block--alumnado {
		margin-top: 22px !important;
		padding-top: 18px !important;
		border-top: 1px dotted var(--line, #e8e2d9) !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-block-title {
		display: block !important;
		margin: 0 0 10px !important;
		padding: 0 !important;
		font-size: 12px !important;
		font-weight: 500 !important;
		letter-spacing: 0.08em;
		line-height: 1.3;
		text-transform: uppercase;
		color: var(--muted, #756f68) !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 16px 8px;
		margin: 0 !important;
		width: 100%;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-grid--stats {
		display: flex !important;
		justify-content: center !important;
		align-items: flex-start;
		grid-template-columns: none !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-grid--stats .coedpi-atajos-tile {
		width: auto;
		max-width: 120px;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-tile,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile,
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-tile,
	.quick-strip.coedpi-atleta-atajos .coedpi-atajos-tile {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 8px;
		text-decoration: none !important;
		color: inherit;
		padding: 6px 2px;
		min-width: 0;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-well,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-well,
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-well,
	.quick-strip.coedpi-atleta-atajos .coedpi-atajos-well {
		width: 76px !important;
		height: 76px !important;
		border-radius: 18px !important;
		background: #efe4a8 !important;
		border: 1px solid #d9c46a !important;
		display: grid !important;
		place-items: center !important;
		box-sizing: border-box !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-well img,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-well img,
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-well img,
	.quick-strip.coedpi-atleta-atajos .coedpi-atajos-well img {
		width: 58px !important;
		height: 58px !important;
		object-fit: contain !important;
		filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%) !important;
	}
	/* Tipografía títulos = acciones alumno (Parte / Ficha / …) */
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-tile strong,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile strong,
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-tile strong,
	.quick-strip.coedpi-atleta-atajos .coedpi-atajos-tile strong {
		text-align: center;
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
		font-family: inherit;
		letter-spacing: normal;
		text-transform: none;
	}
}
/* Sin reducir iconos en móvil estrecho: mismo tamaño que acciones alumno. */

/* Textos aclaratorios → icono i + tooltip (solo móvil) */
.coedpi-hint__btn {
	display: none;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 0 0 0 8px;
	padding: 0;
	border: 1.5px solid var(--muted, #756f68);
	border-radius: 50%;
	background: transparent;
	color: var(--muted, #756f68);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 13px;
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	cursor: pointer;
	vertical-align: middle;
	-webkit-tap-highlight-color: transparent;
}
.coedpi-hint-heading .coedpi-hint__btn {
	vertical-align: middle;
	position: relative;
	top: -1px;
}
.coedpi-hint__tip {
	display: none;
	box-sizing: border-box;
	padding: 12px 14px;
	border-radius: 10px;
	border: 1px solid var(--line, #e5e0d6);
	background: #fff;
	color: var(--ink, #211c08);
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	letter-spacing: normal !important;
	text-align: left;
	text-transform: none !important;
	box-shadow: 0 8px 28px rgba(33, 28, 8, 0.14);
	pointer-events: auto;
}
.coedpi-hint__tip[hidden] {
	display: none !important;
}
.coedpi-hint__tip:not([hidden]) {
	display: block;
}

@media (min-width: 761px) {
	.coedpi-hint__btn,
	.coedpi-hint__tip {
		display: none !important;
	}
	.coedpi-hint__text {
		display: contents;
	}
}

@media (max-width: 760px) {
	p.coedpi-hint,
	div.coedpi-hint,
	span.coedpi-hint,
	section.coedpi-hint {
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		min-height: 0 !important;
		font-size: 0 !important;
		line-height: 0 !important;
	}
	.coedpi-hint__text {
		display: none !important;
	}
	.coedpi-hint__btn {
		display: inline-flex !important;
	}
	.coedpi-hint-heading {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0 4px;
	}
	/* Sin título precedente: el botón queda en el propio bloque */
	p.coedpi-hint > .coedpi-hint__btn,
	div.coedpi-hint > .coedpi-hint__btn,
	span.coedpi-hint > .coedpi-hint__btn,
	section.coedpi-hint > .coedpi-hint__btn {
		margin: 0 0 10px;
		font-size: 13px;
		line-height: 1;
	}

	.quick-strip.coedpi-gestor-atajos--grupo {
		margin: 0 0 16px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-gestor-atajos--grupo .coedpi-atajos-wrap--grupo {
		display: block !important;
	}
	.quick-strip.coedpi-gestor-atajos--grupo .coedpi-atajos-block-title {
		margin: 0 0 10px !important;
		font-size: 22px !important;
		font-weight: 800 !important;
		letter-spacing: -0.02em !important;
		text-transform: none !important;
		color: var(--ink, #1c1915) !important;
	}
	.quick-strip.coedpi-gestor-atajos--grupo .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}
	.coedpi-atajos-tile.is-disabled {
		opacity: 0.45;
		cursor: not-allowed;
	}
	.coedpi-atajos-tile.is-active .coedpi-atajos-well {
		background: #e5bd18;
		border-color: #c9a012;
		box-shadow: 0 0 0 2px rgba(229, 189, 24, 0.35);
	}
	.coedpi-atajos-tile.is-active strong {
		color: #6b5a12;
		font-weight: 900;
	}

	/* Área personal: pestaña vigente muy clara (móvil) */
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile.is-active {
		position: relative;
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile.is-active .coedpi-atajos-well {
		background: #e5bd18;
		border: 2px solid #6b5a12;
		box-shadow:
			0 0 0 3px rgba(229, 189, 24, 0.55),
			0 4px 14px rgba(107, 90, 18, 0.28);
		transform: scale(1.08);
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile.is-active strong {
		color: #2a2208 !important;
		font-weight: 900 !important;
		text-decoration: underline;
		text-decoration-thickness: 2px;
		text-underline-offset: 3px;
	}
	#coedpi-personal-panel,
	.coedpi-personal-panel-land {
		scroll-margin-top: 110px;
	}

	#coedpi-grupo-alumnos-land,
	#coedpi-grupo-ajustes-land,
	#coedpi-pricing-connect,
	#coedpi-pagos-calendario,
	#coedpi-morosidad {
		scroll-margin-top: 110px;
	}

	.quick-strip.coedpi-gestor-atajos--pricing {
		margin: 0 0 16px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-gestor-atajos--pricing .coedpi-atajos-wrap--pricing {
		display: block !important;
	}
	.quick-strip.coedpi-gestor-atajos--pricing .coedpi-atajos-block-title {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos--pricing .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}

	.quick-strip.coedpi-gestor-atajos--pagos {
		margin: 0 0 16px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-gestor-atajos--pagos .coedpi-atajos-block-title {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos--pagos .coedpi-atajos-wrap--pagos-nav .coedpi-atajos-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		max-width: 240px;
		margin: 0 auto !important;
	}
	.quick-strip.coedpi-gestor-atajos--pagos .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}

	.coedpi-u-hide-mobile {
		display: none !important;
	}
	.coedpi-u-show-mobile-only {
		display: block !important;
	}

	/* Área personal: atajos móvil (mismo patrón que gestor / formador home) */
	.quick-strip.coedpi-personal-ficha-nav {
		margin: 0 0 18px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-wrap {
		display: block !important;
		width: 100%;
		box-sizing: border-box;
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 16px 8px;
		margin: 0 !important;
		width: 100%;
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n5,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n4,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n3,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n6,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n2,
	.quick-strip.coedpi-personal-ficha-nav .coedpi-personal-ficha-nav-grid--n1 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.quick-strip.coedpi-personal-ficha-nav .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}
	.quick-strip.coedpi-atleta-atajos {
		margin: 0 0 18px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-tutor-atajos {
		margin: 0 0 18px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 16px 8px;
		width: 100%;
	}
	.quick-strip.coedpi-tutor-atajos .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}
	.coedpi-sede-tabs,
	.entity-tabs.coedpi-u-hide-mobile {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-wrap--sede .coedpi-atajos-tile strong {
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}
	.quick-strip.coedpi-gestor-atajos--after-banner {
		margin: 0 0 18px !important;
		padding: 0 !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
	}
	.school-banner-rol {
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		gap: 10px;
	}
	.school-banner .coedpi-school-banner-permisos > .coedpi-hint__btn {
		margin: 0 !important;
	}

	/* Solicitudes gestor: solo contador + lista en móvil */
	.coedpi-solicitudes-gestor .page-intro.coedpi-solicitudes-intro {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		margin: 0 0 12px;
		padding: 8px 0 4px;
	}
	.coedpi-solicitudes-gestor .coedpi-solicitudes-intro-badge .badge {
		font-size: 15px;
		padding: 10px 18px;
	}
	.coedpi-solicitudes-gestor .coedpi-solicitudes-list {
		margin-top: 0;
	}

	.coedpi-hoja-destino-card {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.coedpi-hoja-destino-card select {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 48px;
		font-size: 16px;
	}

	/* Formador: grupos de clase en home (cards) */
	#coedpi-formador-grupos-clase {
		scroll-margin-top: 72px;
	}
	.coedpi-formador-grupos-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 12px !important;
		margin: 0 !important;
	}
	.coedpi-formador-grupo-card .btn.secondary {
		width: 100%;
		justify-content: center;
		margin-top: 4px;
	}

	.coedpi-formador-quick-grupos .coedpi-formador-grupos-grid {
		margin-top: 0 !important;
	}

	.coedpi-formador-grupo-card .capacity {
		margin-top: 4px;
	}

	/* Formador · quick: solo cards, sin listado de acciones */
	.quick-action-picker.coedpi-u-hide-mobile {
		display: none !important;
	}
	.coedpi-shell[data-coedpi-perfil="formador"] .quick-group-grid > .coedpi-quick-group-open {
		font-size: 14px;
	}
	.coedpi-shell[data-coedpi-perfil="formador"] .quick-group-grid > .coedpi-quick-group-open strong {
		font-size: 15px !important;
	}
	.coedpi-shell[data-coedpi-perfil="formador"] .quick-group-grid > .coedpi-quick-group-open b {
		font-size: 13px !important;
	}

	/* Formador · partes de accidentes (móvil) */
	.coedpi-partes-portal[data-coedpi-partes-formador="1"] .coedpi-partes-formador-kpis,
	.coedpi-partes-portal[data-coedpi-partes-formador="1"] .coedpi-partes-filtro-activo {
		display: none !important;
	}
	.coedpi-parte-search--mobile-expanded.parte-athlete-search {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}
	.coedpi-parte-search--mobile-expanded .parte-athlete-search__toggle {
		display: none !important;
	}
	.coedpi-parte-search--mobile-expanded .parte-athlete-search__panel {
		display: flex !important;
		flex-direction: column;
		width: 100%;
	}
	.coedpi-parte-search--mobile-expanded .parte-athlete-search__panel .btn {
		width: 100%;
		justify-content: center;
	}
	.coedpi-partes-portal[data-coedpi-partes-formador="1"] .coedpi-partes-formador-list-heading {
		margin: 0 0 12px;
	}

	/* Formador · listado móvil Acciones pendientes */
	.coedpi-partes-formador-mobile {
		display: flex;
		flex-direction: column;
		gap: 18px;
		margin-bottom: 8px;
	}
	.parte-acciones-pendientes-block,
	.parte-acciones-historial-block {
		border: 1px solid var(--line, #ebe4d4);
		border-radius: 12px;
		background: #fff;
		overflow: hidden;
	}
	.parte-acciones-pendientes-title {
		margin: 0;
		padding: 14px 16px;
		font-size: 15px;
		font-weight: 700;
		border-bottom: 1px solid var(--line, #ebe4d4);
	}
	.parte-acciones-pendientes-empty {
		margin: 0;
		padding: 14px 16px 16px;
		font-size: 13px;
		color: var(--muted, #7a7364);
	}
	.parte-acciones-pendientes-list {
		display: flex;
		flex-direction: column;
	}
	.parte-acciones-pendientes-row {
		padding: 12px 16px 14px;
		border-bottom: 1px solid var(--line, #ebe4d4);
	}
	.parte-acciones-pendientes-row:last-child {
		border-bottom: 0;
	}
	.parte-acciones-pendientes-person {
		display: flex;
		align-items: center;
		gap: 12px;
		text-decoration: none;
		color: inherit;
		margin-bottom: 10px;
	}
	.parte-acciones-pendientes-copy {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}
	.parte-acciones-pendientes-copy strong {
		font-size: 14px;
		line-height: 1.25;
	}
	.parte-acciones-pendientes-copy > span {
		font-size: 13px;
		color: var(--ink, #1c1915);
	}
	.parte-acciones-pendientes-copy .badge {
		align-self: flex-start;
		margin-top: 4px;
		font-style: normal;
	}
	.parte-acciones-pendientes-actions {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 14px 8px;
		justify-items: center;
		align-items: start;
		width: 100%;
	}
	.parte-acciones-pendientes-actions .coedpi-atajos-tile,
	.parte-acciones-pendientes-actions .coedpi-parte-icon-atajo {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 8px;
		width: 100% !important;
		max-width: 112px !important;
		min-width: 0 !important;
		flex: none !important;
		padding: 6px 2px !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		text-decoration: none;
		color: inherit;
		-webkit-tap-highlight-color: transparent;
	}
	.parte-acciones-pendientes-actions .coedpi-parte-icon-atajo.is-disabled {
		opacity: 0.45;
		pointer-events: none;
	}
	.parte-acciones-pendientes-actions .coedpi-atajos-well {
		width: 76px !important;
		height: 76px !important;
		border-radius: 18px !important;
		background: #efe4a8 !important;
		border: 1px solid #d9c46a !important;
		display: grid !important;
		place-items: center !important;
		position: relative;
	}
	.parte-acciones-pendientes-actions .coedpi-atajos-well img {
		width: 58px !important;
		height: 58px !important;
		object-fit: contain !important;
		filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%) !important;
	}
	.parte-acciones-pendientes-actions .coedpi-atajos-tile strong,
	.parte-acciones-pendientes-actions .coedpi-parte-icon-atajo strong {
		display: block !important;
		text-align: center;
		font-size: 13px !important;
		font-weight: 800 !important;
		max-width: 112px;
		line-height: 1.25;
		color: #a08a2a !important;
	}
	.parte-acciones-pendientes-actions .coedpi-parte-icon-atajo.is-danger .coedpi-atajos-well {
		background: #f8e4de !important;
		border-color: #e0b0a4 !important;
	}

	/* Legacy (por si queda markup antiguo en caché) */
	.parte-parte-icon-action {
		display: none !important;
	}

	.coedpi-atleta-carne .coedpi-carne-download {
		display: flex !important;
		width: 100% !important;
		justify-content: center;
		min-height: 48px !important;
		box-sizing: border-box;
	}
	.coedpi-atleta-descuentos .coedpi-descuentos-list li {
		flex-wrap: wrap;
	}

	.coedpi-actividad-escuela-head {
		transition: background 0.15s ease;
	}
	.coedpi-actividad-escuela-head:active {
		background: var(--sand, #f3f0ea) !important;
	}
	.coedpi-actividad-escuela-ficha .coedpi-atleta-portal {
		margin-top: 0;
	}
	.coedpi-actividad-escuela-ficha .profile-hero h1 {
		font-size: clamp(1.25rem, 4vw, 1.75rem);
	}
}
