/**
 * Bridge WP: logo del plugin + ocultar chrome Elementor.
 * El look&feel viene íntegramente de coedpi-proto-v1.css (CSS del prototipo).
 */
body.coedpi-proto-shell {
	background: var(--ivory, #fbfaf7) !important;
}

body.coedpi-proto-shell .elementor-location-header,
body.coedpi-proto-shell .elementor-location-footer,
body.coedpi-proto-shell .eael-breadcrumbs,
body.coedpi-proto-shell .coedpi-chrome-hide {
	display: none !important;
}

body.coedpi-proto-shell .site-main,
body.coedpi-proto-shell #content,
body.coedpi-proto-shell .page-content,
body.coedpi-proto-shell .elementor-17644,
body.coedpi-proto-shell .elementor-page-17644 {
	background: var(--ivory, #fbfaf7) !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

body.coedpi-proto-shell .elementor-widget-shortcode > .elementor-widget-container {
	padding: 0 !important;
	max-width: none !important;
}

/* Logo local del plugin (sustituye /coedpi-logo.png del prototipo) */
.sidebar .side-brand img,
.mobile-brand img {
	width: 36px;
	height: 36px;
	object-fit: contain;
}

/* Vista móvil: quitar logo + texto COEDPI de la barra superior (queda menú + acciones). */
@media (max-width: 900px) {
	.app-header .mobile-brand,
	.coedpi-app-header .coedpi-mobile-brand {
		display: none !important;
	}
}

/* Hamburguesa NAV-MENU: compacta (~20px), sin forzar display (el prototipo la oculta en escritorio) */
button.menu[data-coedpi-nav-open] {
	align-items: center;
	justify-content: center;
	padding: 0;
	line-height: 0;
}
button.menu[data-coedpi-nav-open] .coedpi-nav-hamburger-icon {
	width: 24px;
	height: 24px;
	display: block;
	object-fit: contain;
	/* Negro → oliva COEDPI */
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}

/* Enlaces del menú como botones del prototipo */
.sidebar nav a.nav-link {
	color: #655f58;
	text-align: left;
	background: 0 0;
	border: 0;
	border-radius: 9px;
	align-items: center;
	gap: 11px;
	width: 100%;
	min-height: 42px;
	padding: 8px 10px;
	display: flex;
	text-decoration: none;
	font: inherit;
	font-size: 12px;
	font-weight: 650;
	cursor: pointer;
	box-sizing: border-box;
}

.sidebar nav a.nav-link:hover {
	color: var(--ink);
	background: #faf7ef;
}

.sidebar nav a.nav-link.active {
	background: var(--gold-soft);
	color: #6d5910;
}

.sidebar nav a.nav-link i {
	font-style: normal;
	width: 1.55em;
	min-width: 1.55em;
	height: 1.55em;
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
}
.sidebar nav a.nav-link i.coedpi-nav-atajo-icon img.coedpi-nav-atajo-img {
	width: 1.55em;
	height: 1.55em;
	max-width: 26px;
	max-height: 26px;
	object-fit: contain;
	display: block;
	/* Dorado COEDPI (mismo filtro que atajos superiores, sin well) */
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
.sidebar nav a.nav-link.active i.coedpi-nav-atajo-icon img.coedpi-nav-atajo-img {
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}

.sidebar nav a.nav-link span {
	flex: 1;
}

.context-actions a {
	color: var(--olive);
	background: 0 0;
	border: 0;
	font-size: 9px;
	font-weight: 850;
	text-align: left;
	padding: 6px 4px;
	text-decoration: none;
	cursor: pointer;
}

.context-actions a:hover {
	text-decoration: underline;
}

/* Menú lateral: scroll en el medio + tip/logout fijos al pie (evita margin-top:auto + sticky) */
.sidebar {
	display: flex;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
	max-height: 100dvh;
	overflow: hidden;
	box-sizing: border-box;
}
.side-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}
.side-footer {
	flex: 0 0 auto;
	padding: 10px 0 calc(14px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--line, #e8e2d6);
	background: #fff;
	z-index: 2;
}
.side-footer .side-note {
	margin-top: 0 !important;
	margin-bottom: 10px;
}
.side-logout-link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid var(--line, #e8e2d6);
	background: #fff;
	color: var(--ink, #1a1a1a);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	box-sizing: border-box;
	width: 100%;
}
.side-logout-link:hover {
	border-color: var(--olive, #6b7c3a);
	color: var(--olive, #6b7c3a);
}
.nav-link-logout span {
	font-weight: 700;
}

/* Acciones rápidas: botones con href */
.quick-strip > .quick-strip-list > a.quick-action {
	text-align: left;
	background: #faf8f2;
	border: 0;
	border-radius: 11px;
	align-items: center;
	gap: 8px;
	min-height: 62px;
	padding: 9px;
	display: flex;
	text-decoration: none;
	color: inherit;
	box-sizing: border-box;
}

.quick-strip > .quick-strip-list > a.quick-action:first-child {
	background: #fff5c9;
	grid-column: span 2;
}

.quick-strip > .quick-strip-list > a.quick-action > i,
.quick-strip > .quick-strip-list > span.quick-action > i {
	color: var(--olive);
	background: #fff;
	border-radius: 8px;
	justify-content: center;
	align-items: center;
	width: 34px;
	height: 34px;
	font-size: 14px;
	font-style: normal;
	display: flex;
	flex: 0 0 34px;
	padding: 0;
	line-height: 0;
}
.quick-strip > .quick-strip-list > a.quick-action > i.coedpi-nav-atajo-icon img.coedpi-nav-atajo-img,
.quick-strip > .quick-strip-list > span.quick-action > i.coedpi-nav-atajo-icon img.coedpi-nav-atajo-img {
	width: 22px;
	height: 22px;
	max-width: 22px;
	max-height: 22px;
	object-fit: contain;
	display: block;
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}

.quick-strip > .quick-strip-list > a.quick-action > span {
	flex: 1;
	display: grid;
}

.quick-strip > .quick-strip-list > a.quick-action strong {
	font-size: 11px;
}

.quick-strip > .quick-strip-list > a.quick-action small {
	color: var(--muted);
	font-size: 9px;
}

.quick-strip > .quick-strip-list > a.quick-action > b {
	color: var(--olive);
}

.quick-strip > .quick-strip-list > span.quick-action.soon {
	opacity: 0.55;
	text-align: left;
	background: #ebe6dc;
	border-radius: 11px;
	align-items: center;
	gap: 8px;
	min-height: 62px;
	padding: 9px;
	display: flex;
}

.school-card a.btn {
	width: 100%;
	margin-top: auto;
	text-decoration: none;
	box-sizing: border-box;
}

.school-card .role-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0;
}

.real-school-logo {
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--line, #e8e4d8);
	border-radius: 12px;
	flex-shrink: 0;
}
.real-school-logo.small {
	width: 40px;
	height: 40px;
}
.real-school-logo.large,
.page-intro-school-logo {
	width: 72px;
	height: 72px;
	max-width: 96px;
	max-height: 96px;
}
.page-intro {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 14px 18px;
}
.page-intro > .page-intro-school-logo,
.page-intro > .real-school-logo {
	order: 0;
}
.page-intro > div:first-of-type {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
}
.page-intro-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	flex: 0 1 auto;
}
.page-intro-actions .btn {
	white-space: nowrap;
}
.coedpi-add-school-cta {
	margin: 0 0 14px;
	padding: 12px 14px;
	border: 1px solid var(--line, #e8e4d8);
	border-radius: 12px;
	background: var(--card, #fff);
	align-items: center;
}
.coedpi-add-school-cta > div:first-of-type p:last-child {
	margin: 4px 0 0;
	font-size: 14px;
	color: var(--muted, #5c584e);
	line-height: 1.45;
}
.school-banner {
	flex-wrap: wrap;
}
.school-banner-rol {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.school-banner .coedpi-school-banner-permisos {
	margin: 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.45;
}
.school-banner-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 8px;
	align-items: stretch;
	width: 100%;
	flex: 1 0 100%;
	margin-top: 4px;
}
.school-banner-actions .btn {
	flex: 1 1 0;
	text-align: center;
	justify-content: center;
	white-space: nowrap;
	min-height: 40px;
	box-sizing: border-box;
}
@media (max-width: 720px) {
	.school-banner-actions {
		gap: 6px;
	}
	.school-banner-actions .btn {
		padding-left: 8px;
		padding-right: 8px;
		font-size: 12px;
		min-height: 44px;
	}
}
.school-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}
.school-card-head .real-school-logo {
	width: 56px;
	height: 56px;
}

/* Tutor · abrir parte (área personal → Partes) */
.coedpi-tutor-parte-form {
	display: grid;
	grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) auto;
	gap: 12px 14px;
	align-items: end;
}
.coedpi-tutor-parte-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	min-width: 0;
	font-size: 12px;
	font-weight: 750;
	color: var(--muted, #8a847a);
}
.coedpi-tutor-parte-field > span {
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 11px;
}
.coedpi-tutor-parte-form select:not([multiple]):not([size]) {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 40px !important;
	height: 40px !important;
	line-height: 38px !important;
	padding: 0 32px 0 12px !important;
	font-size: 13px !important;
	font-weight: 650 !important;
}
.coedpi-tutor-parte-actions {
	display: flex;
	align-items: flex-end;
}
@media (max-width: 720px) {
	.coedpi-tutor-parte-form {
		grid-template-columns: 1fr;
	}
	.coedpi-tutor-parte-actions .btn {
		width: 100%;
	}
}

/* Usuario del header como <a> (en prototipo es <button>) */
a.user {
	background: 0 0;
	border: 0;
	align-items: center;
	gap: 8px;
	display: flex;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

a.user > span {
	background: var(--gold-soft);
	color: var(--olive);
	border: 1px solid #ead78c;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	width: 34px;
	height: 34px;
	font-size: 9px;
	font-weight: 850;
	display: flex;
	flex: 0 0 34px;
	overflow: hidden;
}

a.user > span.has-photo,
a.user > span.coedpi-header-avatar.has-photo {
	padding: 0;
	border-color: #ead78c;
	background: #fff;
}

a.user > span img,
.coedpi-header-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
}

.school-context .coedpi-header-avatar.avatar {
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	border-radius: 50%;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--gold-soft);
	color: var(--olive);
	font-size: 11px;
	font-weight: 850;
	border: 1px solid #ead78c;
}

a.user div {
	text-align: left;
	display: grid;
}

a.user strong {
	font-size: 10px;
}

a.user small {
	font-size: 8px;
}

a.user i {
	color: #8e877f;
	font-style: normal;
}

/* Contenido de subpáginas (tablas/formularios legacy) dentro del card del prototipo */
.portal-page-card,
.app-shell .coedpi-portal-content {
	overflow: auto;
}

.portal-page-card h3,
.portal-page-card h4,
.app-shell .coedpi-portal-content h3,
.app-shell .coedpi-portal-content h4 {
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 850;
	color: var(--ink);
}

.portal-page-card table,
.portal-page-card .wp-list-table,
.app-shell .coedpi-portal-content table,
.app-shell .dataTables_wrapper table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
	background: #fff;
}

.portal-page-card table th,
.portal-page-card table td,
.app-shell .coedpi-portal-content table th,
.app-shell .coedpi-portal-content table td {
	border-bottom: 1px solid var(--line);
	padding: 10px 8px;
	text-align: left;
}

.portal-page-card table th,
.app-shell .coedpi-portal-content table th {
	color: var(--muted);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Botonera legacy → look prototipo */
.app-shell .coedpicuadro {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin: 0 0 16px;
	padding: 14px;
	background: #faf8f2;
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 14px;
}

.app-shell a.btnormal,
.app-shell .btnormal,
.app-shell .coedpibutton,
.app-shell input[type="submit"].btnormal,
.portal-page-card a.btnormal,
.portal-page-card .btnormal,
.portal-page-card .coedpibutton,
.portal-page-card input[type="submit"] {
	border: 0;
	border-radius: 999px;
	background: var(--gold);
	color: #211c08;
	font-size: 12px;
	font-weight: 800;
	min-height: 38px;
	padding: 8px 18px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 6px 16px #e5bd182e;
}

.app-shell .coedpibutton.btinvertido {
	background: #fff;
	border: 1px solid #ead78c;
	box-shadow: none;
}

.app-shell .coedpicuadro .elementor-icon-list-icon,
.app-shell .coedpibutton .elementor-icon-list-icon {
	display: inline-flex;
}

.app-shell a:not(.btnormal):not(.coedpibutton):not(.btn):not(.nav-link):not(.quick-action):not(.user) {
	color: var(--olive);
	font-weight: 750;
}

.portal-page-card a:not(.btnormal):not(.coedpibutton):not(.btn) {
	color: var(--olive);
	font-weight: 750;
}

.portal-page-card .mensaje.exito,
.app-shell .mensaje.exito {
	background: #f1f4e9;
	border: 1px solid #c9d6a8;
	border-radius: 12px;
	padding: 12px 14px;
}

.portal-page-card .mensaje.error,
.app-shell .mensaje.error {
	background: #fff0ec;
	border: 1px solid #f0c4b8;
	border-radius: 12px;
	padding: 12px 14px;
}

.app-shell .notificacion.solicitudes {
	background: #fff8e1;
	border: 1px solid #ead78c;
	border-radius: 12px;
	padding: 10px 12px;
	margin: 0 0 12px;
	width: 100%;
}

.app-shell .acf-form,
.portal-page-card .acf-form,
.portal-page-card form.red_form {
	background: #fff;
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 14px;
	padding: 16px;
}

.app-shell .dataTables_wrapper .dataTables_filter input {
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 8px;
	padding: 6px 10px;
	font-size: 12px;
}
.app-shell .dataTables_wrapper .dataTables_length select:not([multiple]):not([size]) {
	min-width: 72px;
	width: auto;
}

/* Toolbar atletas: segmented / view-switch usan <a> (el proto solo estiliza button) */
.segmented {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0;
	background: #f1ede4;
	border-radius: 10px;
	padding: 3px;
	width: fit-content;
	max-width: 100%;
}
.segmented a {
	background: 0 0;
	border: 0;
	border-radius: 999px;
	padding: 7px 12px;
	font-size: 9px;
	font-weight: 750;
	color: inherit;
	text-decoration: none;
	display: inline-block;
	white-space: nowrap;
	line-height: 1.2;
}
.segmented a.active {
	color: var(--olive);
	background: #fff;
	box-shadow: 0 2px 7px #32280a14;
}
.coedpi-afil-escuelas-tabs {
	margin: 0 0 16px;
}
.view-switch {
	display: flex;
	align-items: stretch;
	gap: 0;
	background: #f1ede4;
	border-radius: 10px;
	padding: 3px;
}
.view-switch a {
	background: 0 0;
	border: 0;
	border-radius: 8px;
	padding: 9px 12px;
	font-size: 8px;
	font-weight: 800;
	color: inherit;
	text-decoration: none;
	display: inline-block;
	white-space: nowrap;
	line-height: 1.2;
}
.view-switch a.active {
	color: var(--olive);
	background: #fff;
}

/* Pagos: pastillas de estado del calendario (desktop = 18px; móvil las agranda) */
.coedpi-pagos-cel {
	display: inline-block;
	width: 18px;
	height: 18px;
	border-radius: 4px;
	vertical-align: middle;
	box-sizing: border-box;
}
.coedpi-pagos-cel--vacio {
	background: #e5e7eb;
}
.coedpi-pagos-cel--pagado {
	background: #16a34a;
}
.coedpi-pagos-cel--pendiente {
	background: #dc2626;
}
.coedpi-pagos-cel-btn {
	border: 0;
	padding: 0;
	cursor: pointer;
	background: transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	vertical-align: middle;
}
.coedpi-pagos-cel-btn:focus-visible {
	outline: 2px solid var(--olive, #1a4d3e);
	outline-offset: 2px;
}
.coedpi-pagos-cel-form {
	display: inline;
	margin: 0;
}
.coedpi-pagos-metodo-form {
	margin: 0;
}
.coedpi-pagos-filtro {
	margin: 0;
}
.coedpi-pagos-acciones-metodo {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.coedpi-pagos-marcar-form {
	display: inline;
	margin: 0;
}

.athlete-directory-tools {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 16px;
}
.athlete-directory-tools__views {
	display: flex;
	justify-content: flex-end;
}
.athlete-directory-tools__views .view-switch {
	margin: 0;
}
.athlete-directory-tools__filter-mobile {
	display: none;
	margin: 0;
	gap: 6px;
}
.athlete-filter-select-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #6b6560);
	margin: 0 0 4px;
}
.athlete-directory-tools__filters-desk {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	background: #f1ede4;
	border-radius: 10px;
	padding: 3px;
	box-sizing: border-box;
}
.athlete-directory-tools__filters-desk a {
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 12px;
	font-weight: 750;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.2;
}
.athlete-directory-tools__filters-desk a.is-active {
	color: var(--olive);
	background: #fff;
	box-shadow: 0 2px 7px #32280a14;
}
@media (max-width: 720px) {
	.athlete-directory-tools {
		gap: 10px;
	}
	.athlete-directory-tools__views {
		justify-content: stretch;
	}
	.athlete-directory-tools__views .view-switch {
		width: 100%;
		display: flex;
	}
	.athlete-directory-tools__views .view-switch a {
		flex: 1 1 0;
		text-align: center;
		font-size: 13px;
		font-weight: 800;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 10px 14px;
		border-radius: 999px;
	}
	.athlete-directory-tools__filter-mobile {
		display: grid;
	}
	.athlete-directory-tools__filters-desk {
		display: none !important;
	}
	.athlete-filter-select .coedpi-filter-select,
	.athlete-directory-tools .athlete-filter-select {
		width: 100%;
	}
	.athlete-directory-tools .athlete-filter-select select {
		width: 100%;
		min-height: 46px;
		font-size: 16px;
		font-weight: 650;
	}
}

/* Área personal: tabs y filtros como <a> */
.personal-tabs a,
.notification-filters a {
	white-space: nowrap;
	background: 0 0;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 10px 12px;
	font-size: 9px;
	font-weight: 800;
	color: inherit;
	text-decoration: none;
	display: inline-block;
}
.personal-tabs a.active {
	border-color: var(--gold);
	border-bottom-width: 3px;
	color: var(--olive);
	background: rgba(229, 189, 24, 0.2);
	border-radius: 8px 8px 0 0;
	box-shadow: inset 0 -1px 0 var(--gold);
}

/* Tabs de filtro en gestionar grupo (mismo estilo que área personal) */
.coedpi-grupo-filter-tabs {
	margin-bottom: 0;
}
.coedpi-grupo-alumnos-toolbar .coedpi-grupo-alumnos-search input:focus {
	outline: 2px solid #e5bd1840;
	border-color: #d8b636;
}
/* Lista alumnos grupo: resumen compacto + expandir (móvil) */
.coedpi-grupo-alumno-summary {
	display: contents;
}
.coedpi-grupo-alumno-who {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.coedpi-grupo-alumno-avatar.avatar {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 800;
	overflow: hidden;
}
.coedpi-grupo-alumno-identity {
	min-width: 0;
}
.coedpi-grupo-alumno-flags {
	display: none;
}
.coedpi-grupo-alumno-pagar-quick {
	display: none !important;
}
.coedpi-grupo-alumno-toggle {
	display: none;
}
.coedpi-grupo-alumno-toggle__less {
	display: none;
}
.coedpi-seguro-tipo {
	display: inline-block;
	font-weight: 700;
	font-size: 12px;
}
.coedpi-seguro-tipo--coedpi { color: #15803d; }
.coedpi-seguro-tipo--federativa,
.coedpi-seguro-tipo--poliza { color: #92400e; }
.coedpi-seguro-tipo--sin { color: #b45309; }
.coedpi-seguro-tipo--alerta {
	color: #b91c1c;
	font-weight: 800;
}
.notification-filters a {
	border-bottom: 0;
	border-radius: 999px;
	padding: 7px 13px;
	font-weight: 750;
}
.notification-filters a.active {
	color: var(--olive);
	background: #fff;
	box-shadow: 0 2px 8px #32280a14;
}
.area-switch .avatar {
	flex: 0 0 42px;
}
.head-user {
	display: flex;
	align-items: center;
	gap: 10px;
}
.head-actions .coedpi-perfil-switch {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
}
.head-actions .coedpi-perfil-switch-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
/* Selects nativos: mismo formato que el selector de Perfil (arriba derecha) */
.app-shell select:not([multiple]):not([size]),
.coedpi-proto-shell select:not([multiple]):not([size]),
.coedpi-proto-form select:not([multiple]):not([size]),
.coedpi-partes-portal select:not([multiple]):not([size]),
.coedpi-atleta-portal select:not([multiple]):not([size]),
.coedpi-atleta-edit select:not([multiple]):not([size]),
.coedpi-public-enrollment-form select:not([multiple]):not([size]),
.coedpi-modal select:not([multiple]):not([size]),
.portal-page-card select:not([multiple]):not([size]),
.coedpi-comunicados select:not([multiple]):not([size]),
.coedpi-escuela-alta select:not([multiple]):not([size]),
.head-actions .coedpi-perfil-switch select {
	display: inline-block;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 1px solid var(--line, #e8e2d6);
	background-color: #fff;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%233d4a1f' d='M1.2 1.2L6 6l4.8-4.8'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 10px 7px;
	border-radius: 9px;
	min-height: 34px;
	height: 34px;
	padding: 0 28px 0 11px;
	font-family: inherit;
	font-size: 12px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	line-height: 32px;
	cursor: pointer;
	box-sizing: border-box;
	max-width: 100%;
	vertical-align: middle;
}
.head-actions .coedpi-perfil-switch select {
	display: block;
	min-width: 132px;
}
/* Modales: altura fija 34px + padding recortaba el texto del <select>. */
.coedpi-modal select:not([multiple]):not([size]),
.coedpi-modal-select:not([multiple]):not([size]) {
	display: block;
	width: 100%;
	height: auto;
	min-height: 48px;
	line-height: 1.35;
	padding: 12px 36px 12px 14px;
	font-size: 15px;
}
.app-shell select:not([multiple]):not([size]):focus,
.coedpi-proto-shell select:not([multiple]):not([size]):focus,
.coedpi-proto-form select:not([multiple]):not([size]):focus,
.coedpi-partes-portal select:not([multiple]):not([size]):focus,
.coedpi-atleta-portal select:not([multiple]):not([size]):focus,
.coedpi-atleta-edit select:not([multiple]):not([size]):focus,
.coedpi-public-enrollment-form select:not([multiple]):not([size]):focus,
.coedpi-modal select:not([multiple]):not([size]):focus,
.portal-page-card select:not([multiple]):not([size]):focus,
.coedpi-comunicados select:not([multiple]):not([size]):focus,
.coedpi-escuela-alta select:not([multiple]):not([size]):focus,
.head-actions .coedpi-perfil-switch select:focus {
	outline: 2px solid #e5bd1840;
	border-color: #d8b636;
}
/* Toolbar / filtros: el <label> es la caja; el select va limpio al lado del texto */
.app-shell .toolbar > label,
.coedpi-proto-shell .toolbar > label,
.app-shell .coedpi-filter-select,
.coedpi-proto-shell .coedpi-filter-select {
	display: flex !important;
	align-items: center;
	gap: 8px;
	position: relative;
	border: 1px solid var(--line, #e8e2d6);
	background: #fff;
	border-radius: 9px;
	min-height: 36px;
	padding: 0 8px 0 11px;
	width: min(260px, 100%);
	box-sizing: border-box;
	font-size: 11px;
	font-weight: 750;
	color: var(--muted, #8a847a);
}
.app-shell .toolbar > label > select:not([multiple]):not([size]),
.coedpi-proto-shell .toolbar > label > select:not([multiple]):not([size]),
.app-shell .coedpi-filter-select > select:not([multiple]):not([size]),
.coedpi-proto-shell .coedpi-filter-select > select:not([multiple]):not([size]) {
	display: block !important;
	flex: 1 1 auto;
	width: auto !important;
	min-width: 0;
	max-width: none;
	height: 34px !important;
	min-height: 34px !important;
	margin: 0;
	border: 0 !important;
	border-radius: 0;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%233d4a1f' d='M1.2 1.2L6 6l4.8-4.8'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 2px center !important;
	background-size: 10px 7px !important;
	padding: 0 22px 0 0 !important;
	box-shadow: none !important;
	outline: none;
	font-size: 12px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	line-height: 34px;
}
.app-shell .toolbar > label > select:focus,
.coedpi-proto-shell .toolbar > label > select:focus,
.app-shell .coedpi-filter-select > select:focus,
.coedpi-proto-shell .coedpi-filter-select > select:focus {
	outline: none;
	border: 0 !important;
}
.coedpi-filter-select__lab {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--muted, #8a847a);
}
/* En formularios: ancho completo y misma altura que inputs */
.coedpi-proto-form .field-label select:not([multiple]):not([size]),
.coedpi-proto-form select:not([multiple]):not([size]),
.coedpi-atleta-edit .acf-input select:not([multiple]):not([size]),
.coedpi-public-enrollment-form select:not([multiple]):not([size]),
.coedpi-modal .coedpi-proto-form select:not([multiple]):not([size]) {
	display: block;
	width: 100%;
	height: 39px;
	min-height: 39px;
	line-height: 37px;
}
.app-shell[data-coedpi-area="personal"] .sidebar nav a.nav-link b {
	background: var(--gold);
	color: #312a0c;
	border-radius: 999px;
	padding: 2px 7px;
	font-size: 9px;
}

/* Acciones rápidas: el prototipo usa button; nosotros <a> con mismas reglas */
.quick-action-picker > a {
	border: 1px solid var(--line, #ebe4d4);
	text-align: left;
	background: #fff;
	border-radius: 12px;
	align-items: flex-start;
	gap: 8px;
	min-height: 92px;
	padding: 11px;
	display: flex;
	text-decoration: none;
	color: inherit;
	box-sizing: border-box;
}
.quick-action-picker > a.active {
	box-shadow: var(--small-shadow, 0 2px 10px #32280a14);
	background: #fff8dc;
	border-color: #d9b82b;
}
.quick-action-picker > a > i {
	background: var(--gold-soft, #fff3c4);
	color: var(--olive, #3d4a1f);
	border-radius: 8px;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	font-size: 14px;
	font-style: normal;
	display: flex;
	flex: 0 0 32px;
}
.quick-action-picker > a > span {
	flex: 1;
	display: grid;
}
.quick-action-picker > a strong { font-size: 8px; }
.quick-action-picker > a small { color: var(--muted, #7a7364); margin-top: 3px; font-size: 7px; line-height: 1.4; }
.quick-action-picker > a .badge { align-self: flex-start; font-size: 6px; }

.quick-group-grid > a {
	text-align: left;
	background: #faf8f2;
	border: 1px solid transparent;
	border-radius: 12px;
	align-items: center;
	gap: 10px;
	padding: 12px;
	display: flex;
	text-decoration: none;
	color: inherit;
}
.quick-group-grid > a:hover {
	background: #fff9df;
	border-color: #d9bd45;
}
.quick-group-grid > a > span {
	background: var(--gold-soft, #fff3c4);
	color: var(--olive, #3d4a1f);
	border-radius: 9px;
	justify-content: center;
	align-items: center;
	width: 38px;
	height: 38px;
	display: flex;
	flex: 0 0 38px;
}
.quick-group-grid > a > div { flex: 1; display: grid; }
.quick-group-grid > a small,
.quick-group-grid > a em { color: var(--muted, #7a7364); font-size: 7px; font-style: normal; }
.quick-group-grid > a strong { font-size: 10px; }
.quick-group-grid > a b { color: var(--olive, #3d4a1f); font-size: 8px; }

/* Cards de grupos: la sede no debe salirse del card */
.group-grid > .card,
.group-grid > section.card {
	min-width: 0;
	overflow: hidden;
}
.group-grid .group-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}
.group-grid .group-head > span:first-child {
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
}
.group-grid .group-head > .badge {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
	width: auto !important;
	height: auto !important;
	justify-content: flex-start;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
	line-height: 1.35;
	padding: 6px 10px;
}
.group-grid .group-head > .badge:before {
	display: inline-block;
	vertical-align: middle;
	margin-right: 6px;
}
.group-grid p {
	overflow-wrap: anywhere;
	word-break: break-word;
}
.group-grid .group-meta {
	display: grid;
	gap: 4px;
	margin-top: 14px;
	min-width: 0;
}
.group-grid .group-meta > p {
	margin: 0;
	color: var(--muted, #7a7364);
	font-size: 12px;
	line-height: 1.4;
}
.group-grid .group-meta .group-meta-label,
.group-grid .group-meta .coedpi-mi-grupo-horario > span {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #7a7364);
	margin: 0 0 2px;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.group-grid .group-meta .group-meta-horario,
.group-grid .group-meta .coedpi-mi-grupo-horario {
	order: -1;
	margin: 0 0 10px;
	font-size: 22px;
	font-weight: 850;
	color: var(--ink, #1c1915);
	line-height: 1.25;
}
.group-grid .group-meta .group-meta-horario .group-meta-label,
.group-grid .group-meta .coedpi-mi-grupo-horario .group-meta-label {
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #7a7364);
}

#coedpi-menores-tutor-kids li.has-apellido-hit {
	background: #f4f7ea;
	margin: 0 -8px;
	padding-left: 8px;
	padding-right: 8px;
	border-radius: 8px;
}
#coedpi-menores-tutor-kids .coedpi-apellido-hit {
	display: inline-block;
	margin: 6px 0 0;
	white-space: normal;
	height: auto;
	min-height: 22px;
	line-height: 1.3;
	max-width: 100%;
}

/* Listado de grupos: atajos con icono (gestionar, pasar lista, hoja) siempre en una fila */
.group-grid .group-quick-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 0;
	margin-top: 12px;
	min-width: 0;
}
.group-grid .coedpi-grupo-list-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 8px 10px;
	width: 100%;
	min-width: 0;
}
.group-grid .coedpi-grupo-list-actions.is-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.group-grid .coedpi-grupo-list-actions .coedpi-atajos-tile {
	min-width: 0;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	padding: 6px 2px;
	gap: 8px;
	box-sizing: border-box;
}
.coedpi-grupo-list-actions .coedpi-atajos-well,
.group-grid .coedpi-grupo-list-actions .coedpi-atajos-well,
.group-grid .coedpi-grupo-list-actions.is-3 .coedpi-atajos-well {
	width: min(88px, 100%) !important;
	height: auto !important;
	aspect-ratio: 1;
	max-width: 88px;
	border-radius: 20px !important;
	flex-shrink: 0;
	box-sizing: border-box;
}
.coedpi-grupo-list-actions .coedpi-atajos-well img,
.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: 70px !important;
	max-height: 70px !important;
	object-fit: contain;
}
.group-grid .coedpi-grupo-list-actions .coedpi-atajos-tile strong,
.group-grid .coedpi-grupo-list-actions.is-3 .coedpi-atajos-tile strong {
	font-size: clamp(11px, 1.15vw, 14px);
	font-weight: 800;
	max-width: 100%;
	width: 100%;
	line-height: 1.25;
	color: #a08a2a;
	text-align: center;
	hyphens: auto;
	overflow-wrap: anywhere;
	word-break: break-word;
}
@media (max-width: 1400px) {
	.group-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 760px) {
	.group-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.quick-strip-head > a {
	color: var(--olive, #3d4a1f);
	background: 0 0;
	border: 0;
	font-size: 8px;
	font-weight: 850;
	text-decoration: none;
}

.back-nav {
	padding: 10px 22px 0;
}
.back-nav .text-link {
	font-size: 9px;
	font-weight: 850;
	color: var(--olive, #3d4a1f);
	text-decoration: none;
}
.global-alert-wrap {
	padding: 12px 22px 0;
}
.role-filter-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 14px;
}
a.role-chip {
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 999px;
	padding: 6px 12px;
	font-size: 8px;
	font-weight: 800;
	text-decoration: none;
	color: inherit;
	background: #fff;
}
a.role-chip.active {
	background: #fff8dc;
	border-color: #d9b82b;
	color: var(--olive, #3d4a1f);
}
.stat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 10px;
	margin: 18px 0 22px;
}
.stat-grid > .card {
	padding: 14px;
}
.stat-grid > a.card.stat-grid-kpi,
.stat-grid > div.card.stat-grid-kpi {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	cursor: pointer;
}
.stat-grid > a.card.stat-grid-kpi:hover,
.stat-grid > a.card.stat-grid-kpi:focus-visible,
.stat-grid > div.card.stat-grid-kpi:hover {
	border-color: var(--olive, #3d4a1f);
	box-shadow: 0 2px 10px rgba(61, 74, 31, .12);
	transform: translateY(-1px);
	outline: none;
}
.stat-grid > div.card.stat-grid-kpi {
	cursor: default;
}
.stat-grid .coedpi-kpi-main {
	display: block;
	text-decoration: none;
	color: inherit;
}
.stat-grid .coedpi-kpi-crear-parte {
	display: inline-block;
	margin-top: 10px;
	font-size: 12px;
	font-weight: 700;
}
.stat-grid > .card > i,
.stat-grid > .card > span:first-child,
.stat-grid .coedpi-kpi-main > i,
.stat-grid .coedpi-kpi-main > span:first-child {
	font-style: normal;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin-bottom: 6px;
	width: 28px;
	height: 28px;
	line-height: 0;
}
.stat-grid .coedpi-nav-atajo-icon img.coedpi-nav-atajo-img {
	width: 28px;
	height: 28px;
	max-width: 28px;
	max-height: 28px;
	object-fit: contain;
	display: block;
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
.stat-grid > .card strong {
	font-size: 22px;
	display: block;
}
.stat-grid > .card small {
	display: block;
	font-weight: 800;
	margin-top: 4px;
}
.stat-grid > .card p {
	margin: 4px 0 0;
	color: var(--muted, #7a7364);
	font-size: 8px;
}
@media (max-width: 900px) {
	.stat-grid { grid-template-columns: repeat(2, 1fr); }
}

.athlete-summary {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 18px;
}
.athlete-summary.athlete-summary--formador {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.athlete-summary > .card {
	padding: 14px;
}
.athlete-summary > a.card.athlete-summary-kpi {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	cursor: pointer;
}
.athlete-summary > a.card.athlete-summary-kpi.is-active {
	border-color: var(--gold, #e5bd18);
	box-shadow: 0 0 0 1px var(--gold, #e5bd18), 0 2px 10px rgba(229, 189, 24, .18);
	background: var(--gold-soft, #fff8da);
}
.athlete-summary > a.card.athlete-summary-kpi.is-active span {
	color: var(--olive, #6d5910);
}

/* Pendientes de relevancia: filas clicables (mismo layout que .timeline > div) */
.timeline.coedpi-pendientes-links > a {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
	border-radius: 8px;
	padding: 4px 6px;
	margin: 0 -6px;
	transition: background-color .15s ease;
}
.timeline.coedpi-pendientes-links > a:hover,
.timeline.coedpi-pendientes-links > a:focus-visible {
	background: var(--gold-soft, #f3efe6);
	outline: none;
}
.timeline.coedpi-pendientes-links > a i {
	background: var(--gold-soft, #f3efe6);
	color: var(--olive, #3d4a1f);
	border-radius: 8px;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	font-style: normal;
	display: flex;
	flex: 0 0 auto;
}
.timeline.coedpi-pendientes-links > a span {
	display: grid;
	min-width: 0;
}
.timeline.coedpi-pendientes-links > a strong {
	font-size: 10px;
}
.timeline.coedpi-pendientes-links > a small {
	color: var(--muted, #7a7364);
}
.athlete-summary > a.card.athlete-summary-kpi:hover,
.athlete-summary > a.card.athlete-summary-kpi:focus-visible {
	border-color: var(--olive, #3d4a1f);
	box-shadow: 0 2px 10px rgba(61, 74, 31, .12);
	transform: translateY(-1px);
	outline: none;
}
.athlete-summary > .card strong {
	font-size: 22px;
	display: block;
}
.athlete-summary > .card span {
	display: block;
	margin-top: 4px;
	color: var(--muted, #7a7364);
	font-size: 12px;
	font-weight: 700;
}
@media (max-width: 900px) {
	.athlete-summary { grid-template-columns: repeat(2, 1fr); }
}

a.bell {
	position: relative;
}
a.bell .coedpi-atajo-inline,
a.bell i.coedpi-atajo-inline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}
a.bell .coedpi-atajo-inline img {
	width: 22px;
	height: 22px;
	object-fit: contain;
	display: block;
}
a.bell b,
a.bell .bell-badge,
button.bell b {
	position: absolute;
	top: -4px;
	right: -4px;
	background: var(--gold, #d4af37);
	color: #312a0c;
	border-radius: 999px;
	padding: 1px 6px;
	font-size: 8px;
	font-weight: 850;
	line-height: 1.4;
	min-width: 14px;
	text-align: center;
}
.notification-feed .card.is-unread {
	border-color: #d9b82b;
	background: #fffdf3;
}
.app-shell .sidebar nav a.nav-link b {
	background: var(--gold, #d4af37);
	color: #312a0c;
	border-radius: 999px;
	padding: 2px 7px;
	font-size: 9px;
	margin-left: auto;
}

/* Partes: búsqueda de atleta — contraída (solo icono) hasta pulsar */
.parte-athlete-search {
	display: flex;
	gap: 10px;
	align-items: stretch;
	margin: 0 0 14px;
	width: auto;
	max-width: 100%;
}
.parte-athlete-search__toggle {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	min-height: 42px;
	padding: 0;
	margin: 0;
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 10px;
	background: #faf8f2;
	color: var(--muted, #7a7364);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: none;
}
.parte-athlete-search__toggle:hover,
.parte-athlete-search.is-open .parte-athlete-search__toggle {
	background: #fff;
	border-color: #c9b89a;
	color: #1c1915;
}
.parte-athlete-search__panel {
	display: none;
	flex: 1 1 auto;
	min-width: 0;
	gap: 10px;
	align-items: stretch;
}
.parte-athlete-search.is-open {
	width: 100%;
}
.parte-athlete-search.is-open .parte-athlete-search__panel {
	display: flex;
}
.parte-athlete-search .athlete-quick-search {
	flex: 1 1 auto;
	min-width: 0;
	background: #faf8f2;
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 10px;
	align-items: center;
	gap: 8px;
	padding: 0 12px;
	display: flex !important;
	min-height: 42px;
	margin: 0;
	font-weight: 400;
}
.parte-athlete-search .athlete-quick-search input[type="search"],
.parte-athlete-search .athlete-quick-search input[type="text"] {
	border: 0 !important;
	outline: 0;
	width: 100% !important;
	min-width: 0;
	flex: 1 1 auto;
	min-height: 38px;
	background: transparent !important;
	font-size: 13px;
	display: block !important;
	appearance: none;
	-webkit-appearance: none;
}
/* El prototipo fuerza .btn { width:100% } y aplasta el input */
.parte-athlete-search .parte-athlete-search__panel > .btn,
.parte-athlete-search .parte-athlete-search__panel button.btn,
.parte-athlete-search > .btn,
.parte-athlete-search button.btn {
	width: auto !important;
	flex: 0 0 auto;
	white-space: nowrap;
}
.parte-search-hint,
.parte-search-empty {
	color: var(--muted, #7a7364);
	margin: 8px 0 0;
	font-size: 13px;
}
.parte-athlete-results {
	display: grid;
	gap: 10px;
	margin-top: 12px;
}
.parte-athlete-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
}
.parte-athlete-card > div:first-child {
	display: grid;
	gap: 2px;
}
.parte-athlete-card small,
.parte-athlete-card em {
	color: var(--muted, #7a7364);
	font-style: normal;
	font-size: 12px;
}
.parte-athlete-card strong {
	font-size: 15px;
}
.parte-athlete-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

/* Alumnos con seguro — listado compacto (formador / buscador de partes) */
.parte-alumnos-seguro-block {
	margin-top: 16px;
	border: 1px solid var(--line, #ebe4d4);
	border-radius: 12px;
	background: #fff;
	overflow: hidden;
}
.parte-alumnos-seguro-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 16px;
	cursor: pointer;
	list-style: none;
	font-weight: 700;
	font-size: 15px;
}
.parte-alumnos-seguro-summary::-webkit-details-marker {
	display: none;
}
.parte-alumnos-seguro-summary::after {
	content: "▾";
	font-size: 14px;
	color: var(--muted, #7a7364);
	margin-left: auto;
}
.parte-alumnos-seguro-block:not([open]) .parte-alumnos-seguro-summary::after {
	content: "▸";
}
.parte-alumnos-seguro-block .parte-search-hint {
	margin: 0;
	padding: 0 16px 10px;
	font-size: 13px;
}
.parte-alumnos-seguro-list {
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--line, #ebe4d4);
}
.parte-alumnos-seguro-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--line, #ebe4d4);
}
.parte-alumnos-seguro-row:last-child {
	border-bottom: 0;
}
.parte-alumnos-seguro-person {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	flex: 1 1 auto;
	text-decoration: none;
	color: inherit;
}
.parte-alumnos-seguro-avatar.avatar {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	font-size: 14px;
}
.parte-alumnos-seguro-avatar.avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}
.parte-alumnos-seguro-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.parte-alumnos-seguro-name {
	font-size: 15px;
	line-height: 1.25;
}
.parte-alumnos-seguro-grupo {
	font-size: 12px;
	color: var(--muted, #7a7364);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.parte-alumnos-seguro-action {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 5px;
	width: 64px;
	min-width: 64px;
	max-width: 72px;
	padding: 2px 0;
	margin: 0;
	border: 0;
	background: transparent;
	text-decoration: none;
	color: inherit;
	text-align: center;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
}
.parte-alumnos-seguro-action .coedpi-atajos-well {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: #efe4a8;
	border: 1px solid #d9c46a;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	flex-shrink: 0;
	position: relative;
}
.parte-alumnos-seguro-action .coedpi-atajos-well img {
	width: 36px;
	height: 36px;
	object-fit: contain;
	display: block;
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
.parte-alumnos-seguro-action > strong {
	display: block;
	text-align: center;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	color: #a08a2a;
	max-width: 100%;
	white-space: normal;
}
/* Legacy */
.parte-alumnos-seguro-action-icon,
.parte-alumnos-seguro-action-label {
	display: none !important;
}

.coedpi-partes-portal .data-row {
	text-decoration: none;
	color: inherit;
}

/* Ficha atleta: anotaciones editables */
.coedpi-atleta-portal .coedpi-atleta-notas-form textarea {
	width: 100%;
	min-height: 140px;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #cfc8bc;
	border-radius: 8px;
	font: inherit;
	line-height: 1.4;
	resize: vertical;
	background: #fffef9;
}
.coedpi-atleta-portal .coedpi-atleta-notas-form .btn {
	width: auto !important;
	cursor: pointer;
}

/* Ficha atleta: acciones del hero y botones en cards */
.coedpi-atleta-portal .profile-actions > a.btn {
	width: auto !important;
	text-decoration: none;
}
/* Hero: no desbordar la card (nombres largos / badges nowrap del prototipo) */
.coedpi-atleta-portal .profile-hero {
	min-width: 0;
	max-width: 100%;
	flex-wrap: wrap;
	align-items: flex-start;
	box-sizing: border-box;
}
/* Solo el bloque de texto crece; NUNCA .profile-actions (si no, el botón se hincha). */
.coedpi-atleta-portal .profile-hero > div:not(.profile-actions) {
	min-width: 0 !important;
	flex: 1 1 180px;
	max-width: 100%;
}
.coedpi-atleta-portal .profile-hero h1 {
	overflow-wrap: anywhere;
	word-break: break-word;
	max-width: 100%;
	line-height: 1.2;
}
.coedpi-atleta-portal .profile-hero p {
	overflow-wrap: anywhere;
	word-break: break-word;
	max-width: 100%;
}
.coedpi-atleta-portal .profile-hero-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
	max-width: 100%;
}
.coedpi-atleta-portal .profile-hero-badges .badge {
	white-space: normal;
	height: auto;
	max-width: 100%;
	line-height: 1.35;
	box-sizing: border-box;
}
.coedpi-atleta-portal .profile-hero > .profile-actions,
.coedpi-atleta-portal .profile-actions {
	flex: 0 0 auto !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-start !important;
	gap: 8px;
	width: auto !important;
	max-width: 100%;
	min-width: 0;
	min-height: 0 !important;
	height: auto !important;
	margin-top: 0;
}
.coedpi-atleta-portal .profile-toolbar {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	margin: 0 0 16px;
}
.coedpi-atleta-portal .coedpi-cuenta-credenciales__actions {
	margin-top: 4px;
}
.coedpi-atleta-portal .coedpi-cuenta-credenciales__form {
	display: inline-flex;
	margin: 0;
}
.coedpi-atleta-portal .coedpi-cuenta-credenciales__actions .btn {
	flex: 0 0 auto !important;
	width: auto !important;
}
.coedpi-atleta-portal .profile-actions > a.btn,
.coedpi-atleta-portal .profile-actions .btn {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: 100%;
	margin-top: 0 !important;
	min-height: 42px !important;
	height: auto !important;
	max-height: 48px !important;
	align-self: flex-start !important;
	justify-content: center;
	padding: 9px 21px !important;
	border-radius: 999px;
}
@media (min-width: 761px) {
	.coedpi-atleta-portal .profile-hero > .profile-actions,
	.coedpi-atleta-portal .profile-actions {
		align-self: flex-start !important;
		margin-left: 0;
		margin-top: 0;
	}
}
.coedpi-atleta-portal .person-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}
.coedpi-atleta-portal .person-actions > a.btn,
.coedpi-atleta-portal .insurance-focus > a.btn {
	width: auto !important;
}
@media (max-width: 900px) {
	.coedpi-atleta-portal .health-dashboard {
		grid-template-columns: 1fr 1fr;
	}
	.coedpi-atleta-portal .two-col.athlete-profile-grid {
		grid-template-columns: 1fr;
	}
}

/* Modalidades escuela: tiles alineados al prototipo (display grid, no texto seguido) */
.family-grid > .mod-tile {
	border: 1px solid var(--line, #e8e2d6);
	text-align: left;
	background: #fff;
	border-radius: 13px;
	gap: 4px;
	min-height: 106px;
	padding: 14px;
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	align-content: start;
	cursor: pointer;
	box-sizing: border-box;
	box-shadow: none;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.family-grid > .mod-tile:hover {
	border-color: #d8b636;
	background: #fffdf7;
}
.family-grid > .mod-tile.is-active {
	box-shadow: var(--small-shadow, 0 1px 8px #32280a14);
	background: #fffaf0;
	border-color: #d8b636;
}
.family-grid > .mod-tile.is-locked {
	border-color: #94a3b8;
	background: #f8fafc;
	cursor: not-allowed;
	opacity: .92;
}
.family-grid > .mod-tile.is-locked.is-active {
	border-color: #64748b;
	background: #f1f5f9;
}
.family-grid > .mod-tile .mod-tile__status {
	display: block;
	color: var(--olive, #6d5910);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.3;
}
.family-grid > .mod-tile .mod-tile__name {
	display: block;
	color: var(--ink, #1c1915);
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
	text-transform: none;
	letter-spacing: 0;
}
.family-grid > .mod-tile .mod-tile__id {
	display: block;
	color: var(--muted, #8a847a);
	font-size: 8px;
	font-weight: 650;
	letter-spacing: .04em;
	line-height: 1.3;
	margin-top: 2px;
}
.family-grid > .mod-tile .mod-tile__check {
	width: 16px;
	height: 16px;
	margin: 8px 0 0;
	accent-color: #d8b636;
	justify-self: start;
}

/* Modalidades: toolbar (buscador + vista lista/tarjetas) */
.mod-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	margin: 0 0 14px;
}
.mod-search-wrap {
	flex: 1 1 220px;
	min-width: 180px;
	margin: 0;
}
.mod-family-wrap {
	flex: 0 1 240px;
	min-width: 180px;
	margin: 0;
}
.mod-family {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 13px;
	background: #fff;
	min-height: 42px;
}
.mod-search {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 14px;
	background: #fff;
}
.mod-search:focus {
	outline: 2px solid #d8b63655;
	border-color: #d8b636;
}
.mod-view-toggle {
	display: inline-flex;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.mod-view-btn {
	appearance: none;
	border: 0;
	background: transparent;
	padding: 9px 14px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	color: var(--muted, #8a847a);
}
.mod-view-btn + .mod-view-btn {
	border-left: 1px solid var(--line, #e8e2d6);
}
.mod-view-btn.is-active {
	background: #fff8e6;
	color: var(--olive, #6d5910);
}
.mod-bulk {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.mod-bulk .btn {
	width: auto !important;
	padding: 8px 12px;
	font-size: 12px;
}
.mod-count,
.mod-selected-hint {
	margin: 0;
	font-size: 12px;
	color: var(--muted, #8a847a);
}
.mod-empty {
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--muted, #8a847a);
}
.mod-catalog-idle {
	margin: 0 0 14px;
	padding: 16px 18px;
	border: 1px dashed var(--line, #e8e2d6);
	border-radius: 12px;
	background: #fff;
	color: var(--muted, #6b6560);
	font-size: 14px;
	line-height: 1.5;
}
.mod-family-wrap--block {
	display: block;
	flex: none;
	width: 100%;
	max-width: 520px;
	margin: 0 0 12px;
}
.mod-family-label {
	display: block;
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--muted, #6b6560);
}
.mod-catalog-tools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	margin: 10px 0 12px;
}
.mod-catalog-panel {
	display: flex;
	flex-direction: column;
	min-height: 0;
	margin: 0 0 12px;
}
.mod-catalog-panel[hidden] {
	display: none !important;
}
.mod-catalog-sticky {
	position: sticky;
	top: 116px; /* .app-header 74 + .demo-bar ~42; JS ajusta la medida real */
	z-index: 28;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 14px;
	margin: 0 0 12px;
	padding: 10px 12px;
	background: #fffef9;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	box-shadow: 0 8px 18px rgba(40, 32, 8, 0.07);
	scroll-margin-top: 124px;
}
.mod-catalog-sticky[hidden] {
	display: none !important;
}
.mod-catalog-sticky .mod-catalog-tools {
	flex: 1 1 260px;
	margin: 0;
}
.mod-catalog-sticky .modalidades-form__actions--top {
	flex: 0 0 auto;
	margin: 0;
}
.mod-catalog-panel .family-grid:not([hidden]):not(.is-idle) {
	max-height: calc(100dvh - 240px);
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 2px 4px 8px 0;
}
@media (max-width: 1050px) {
	.mod-catalog-sticky {
		top: 106px; /* header 64 + migas ~42 */
		scroll-margin-top: 114px;
	}
	.mod-catalog-panel .family-grid:not([hidden]):not(.is-idle) {
		max-height: calc(100dvh - 220px);
	}
}
@media (max-width: 760px) {
	.mod-catalog-sticky {
		align-items: stretch;
	}
	.mod-catalog-sticky .modalidades-form__actions--top,
	.mod-catalog-sticky .modalidades-form__actions--top .btn {
		width: 100% !important;
	}
}
.family-grid:not([hidden]):not(.is-idle) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 10px;
	margin: 0 0 8px;
}
.family-grid:not([hidden]):not(.is-idle)[data-view="list"] {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.family-grid[hidden],
.family-grid.is-idle {
	display: none !important;
}
.mod-catalog-tools[hidden] {
	display: none !important;
}
.mod-bulk[hidden] {
	display: none !important;
}
.modalidades-form__actions--top {
	margin: 0 0 14px;
}
.modalidades-form__actions--bottom {
	margin-top: 16px;
}
.mod-selected-above {
	min-height: 42px;
	margin: 0 0 14px;
	padding: 10px 12px;
	border: 1px dashed var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fffdf7;
}
.mod-picked-title {
	margin: 0 0 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--olive, #6d5910);
}
.mod-picked-empty {
	font-size: 13px;
	color: var(--muted, #8a847a);
}
.mod-picked-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin: 0 6px 6px 0;
	padding: 4px 10px;
	background: #fff;
	border: 1px solid #d8b636;
	border-radius: 999px;
	font-size: 13px;
}
.mod-picked-chip.is-locked {
	background: #f1f5f9;
	border-color: #94a3b8;
	color: #475569;
}

/* Bloques plegables (Datos escuela, etc.) */
.coedpi-collapse-card > .coedpi-details-block {
	margin: 0;
}
.coedpi-details-block > .coedpi-details-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
	list-style: none;
	padding: 2px 0;
	user-select: none;
}
.coedpi-details-block > .coedpi-details-summary::-webkit-details-marker {
	display: none;
}
.coedpi-details-summary__main {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.coedpi-details-summary__main strong {
	font-size: 1.05rem;
	font-weight: 750;
	color: var(--ink, #1c1915);
}
.coedpi-details-summary__main small {
	color: var(--muted, #8a847a);
	font-size: 13px;
	line-height: 1.35;
}
.coedpi-details-summary__hint {
	flex-shrink: 0;
	color: var(--olive, #6d5910);
	font-size: 11px;
	font-weight: 750;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.coedpi-details-block[open] > .coedpi-details-summary .coedpi-details-summary__hint::before {
	content: '';
}
.coedpi-details-block[open] > .coedpi-details-summary .coedpi-details-summary__hint {
	font-size: 0;
}
.coedpi-details-block[open] > .coedpi-details-summary .coedpi-details-summary__hint::after {
	content: 'Contraer';
	font-size: 11px;
}
.coedpi-details-body {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--line, #e8e4dc);
}
.mod-picked-remove {
	appearance: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	font-weight: 700;
	line-height: 1;
	padding: 0 2px;
	color: var(--olive, #6d5910);
}

/* Vista lista: filas seleccionables múltiples */
.family-grid[data-view="list"] {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.family-grid[data-view="list"] > .mod-tile {
	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 12px;
	row-gap: 2px;
	min-height: 0;
	padding: 10px 12px;
	border-radius: 10px;
}
.family-grid[data-view="list"] > .mod-tile .mod-tile__check {
	grid-column: 1;
	grid-row: 1 / span 2;
	margin: 0;
	width: 18px;
	height: 18px;
	justify-self: center;
}
.family-grid[data-view="list"] > .mod-tile .mod-tile__name {
	grid-column: 2;
	grid-row: 1;
	font-size: 14px;
}
.family-grid[data-view="list"] > .mod-tile .mod-tile__id {
	grid-column: 2;
	grid-row: 2;
	margin-top: 0;
}
.family-grid[data-view="list"] > .mod-tile .mod-tile__status {
	grid-column: 3;
	grid-row: 1 / span 2;
	align-self: center;
	justify-self: end;
	margin: 0;
}

.modalidades-form__actions {
	margin-top: 18px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
}
.modalidades-form__actions .btn {
	width: auto !important;
}
.catalog-note {
	margin-bottom: 14px;
	font-size: 12px;
	line-height: 1.45;
}

/* Sedes / grupos: pestañas legibles (el proto-v1 las deja a 8px en button). */
.app-shell .entity-tabs a,
.app-shell .entity-tabs button,
.coedpi-proto-shell .entity-tabs a,
.coedpi-proto-shell .entity-tabs button,
.entity-tabs a,
.entity-tabs button {
	white-space: nowrap;
	color: inherit;
	background: 0 0;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 10px 14px;
	font-size: 15px !important;
	line-height: 1.3;
	font-weight: 800;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
}
.app-shell .entity-tabs a.active,
.app-shell .entity-tabs button.active,
.coedpi-proto-shell .entity-tabs a.active,
.coedpi-proto-shell .entity-tabs button.active,
.entity-tabs a.active,
.entity-tabs button.active {
	border-color: var(--gold, #e5bd18);
	border-bottom-width: 3px;
	color: var(--olive, #6d5910);
	background: rgba(229, 189, 24, 0.2);
	border-radius: 8px 8px 0 0;
	box-shadow: inset 0 -1px 0 var(--gold, #e5bd18);
}
#coedpi-sede-panel,
.coedpi-sede-panel-land {
	scroll-margin-top: 72px;
}
.app-shell .entity-tabs a:hover,
.app-shell .entity-tabs button:hover,
.coedpi-proto-shell .entity-tabs a:hover,
.coedpi-proto-shell .entity-tabs button:hover,
.entity-tabs a:hover,
.entity-tabs button:hover {
	color: var(--olive, #6d5910);
}
a.back-link {
	display: inline-block;
	color: var(--olive, #6d5910);
	margin-bottom: 14px;
	font-size: 10px;
	font-weight: 800;
	text-decoration: none;
}
.coedpi-proto-form .field-label {
	color: var(--muted, #8a847a);
	gap: 5px;
	margin-bottom: 12px;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	display: grid;
}
.coedpi-proto-form .field-label input,
.coedpi-proto-form .field-label select,
.coedpi-proto-form .field-label textarea {
	border: 1px solid var(--line, #e8e2d6);
	background-color: #fff;
	border-radius: 9px;
	min-height: 39px;
	padding: 0 11px;
	font-size: 12px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	text-transform: none;
	letter-spacing: 0;
	width: 100%;
	box-sizing: border-box;
}
.coedpi-proto-form .field-label textarea {
	min-height: 88px;
	padding: 10px 11px;
	resize: vertical;
	font-family: inherit;
}
/* select: flecha/padding los define la regla global unificada */
.coedpi-proto-form .field-label select {
	padding-right: 28px;
}
.coedpi-proto-form .field-label input:focus,
.coedpi-proto-form .field-label select:focus,
.coedpi-proto-form .field-label textarea:focus {
	outline: 2px solid #e5bd1840;
	border-color: #d8b636;
}

/* Password: ojo dentro del campo */
.coedpi-pwd-wrap {
	position: relative;
	display: block;
	width: 100%;
}
.coedpi-pwd-wrap > input[type="password"],
.coedpi-pwd-wrap > input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	padding-right: 44px !important;
}
.coedpi-pwd-toggle {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #8a847a;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	z-index: 2;
}
.coedpi-pwd-toggle:hover,
.coedpi-pwd-toggle:focus-visible {
	color: #1c1915;
	background: #f3efe6;
	outline: none;
}
.coedpi-pwd-toggle .coedpi-pwd-icon--hide { display: none; }
.coedpi-pwd-toggle.is-visible .coedpi-pwd-icon--show { display: none; }
.coedpi-pwd-toggle.is-visible .coedpi-pwd-icon--hide { display: block; }

/* Modal establecer contraseña */
.coedpi-modal-overlay {
	position: fixed;
	/* Fallbacks Safari antiguo (sin inset) */
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	inset: 0;
	/* Por encima del pad ACF firma (.m-signature-pad { z-index: 5000 }) */
	z-index: 10050;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(28, 25, 21, 0.45);
	box-sizing: border-box;
	/* Si el diálogo no cabe, el overlay hace scroll (Safari/Mac) */
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.coedpi-modal-overlay.is-open {
	display: flex;
}
.coedpi-modal-overlay[hidden] {
	display: none !important;
}
/* Modal bloqueante (colegiación): no se cierra con Escape ni clic fuera */
.coedpi-modal-overlay.coedpi-modal-blocking.is-open {
	display: flex;
	pointer-events: auto;
}
html.coedpi-blocking-modal,
html.coedpi-blocking-modal body {
	overflow: hidden !important;
}
html.coedpi-blocking-modal .app-shell {
	pointer-events: none;
	user-select: none;
}
html.coedpi-blocking-modal .coedpi-modal-overlay {
	pointer-events: auto;
	user-select: auto;
}
.coedpi-modal {
	position: relative;
	width: min(440px, 100%);
	max-height: min(90vh, 640px);
	overflow: auto;
	background: #fffef9;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 16px;
	padding: 22px 22px 18px;
	box-shadow: 0 24px 60px rgba(33, 28, 18, 0.22);
	animation: coedpiModalIn 0.22s ease-out;
}
@keyframes coedpiModalIn {
	from { opacity: 0; transform: translateY(10px) scale(0.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}
.coedpi-modal__close {
	position: absolute;
	top: 10px;
	right: 12px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	font-size: 22px;
	line-height: 1;
	color: #8a847a;
	cursor: pointer;
}
.coedpi-modal__close:hover {
	background: #f3efe6;
	color: #1c1915;
}
.coedpi-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
}
.coedpi-seguro-popup-resumen {
	margin: 0 0 14px;
	font-size: 14px;
	color: var(--text, #1c1915);
	line-height: 1.45;
}
.coedpi-seguro-popup-resumen p {
	margin: 0 0 8px;
}
.coedpi-seguro-popup-resumen p:last-child {
	margin-bottom: 0;
}
.coedpi-seguro-popup-estado {
	min-height: 20px;
	margin: 0 0 8px;
	font-size: 13px;
	color: var(--muted, #6b6560);
}
#coedpi-seguro-popup .coedpi-modal {
	width: min(520px, 100%);
}
#coedpi-reclamacion-ok-popup .coedpi-modal {
	width: min(580px, 100%);
	max-height: min(92vh, 720px);
}
/* Por encima de modales bloqueantes (colegiación ~100060, tutor ~100090). */
#coedpi-stripe-checkout-overlay {
	z-index: 100200 !important;
}
.coedpi-stripe-checkout-modal {
	width: min(480px, 100%);
	max-height: min(92vh, 720px);
}
#coedpi-stripe-checkout-mount {
	min-height: 420px;
}

/* Calendario visual (partes de accidente + pasar lista) */
.coedpi-parte-cal {
	margin: 0 0 1.25rem;
	max-width: 26rem;
}
.coedpi-parte-cal__why {
	margin: 0 0 .75rem;
	padding: .85rem 1rem;
	border-radius: 14px;
	background: #fffaf2;
	border: 1px solid #e2d5bc;
	color: #3d3426;
}
.coedpi-parte-cal__why.is-error {
	background: #fff7ed;
	border-color: #fdba74;
	color: #9a3412;
}
.coedpi-parte-cal__why-title {
	font-weight: 750;
	font-size: .95rem;
	margin: 0 0 .45rem;
	color: inherit;
}
.coedpi-parte-cal__why ul {
	margin: 0;
	padding-left: 1.15rem;
}
.coedpi-parte-cal__why li {
	margin: 0 0 .35rem;
	font-size: .84rem;
	line-height: 1.45;
	color: #5a4f3d;
}
.coedpi-parte-cal__why.is-error li {
	color: #9a3412;
}
.coedpi-parte-cal__why li:last-child {
	margin-bottom: 0;
}
.coedpi-parte-cal__card {
	background: linear-gradient(165deg, #f7f3ea 0%, #efe6d4 48%, #e8dcc6 100%);
	border: 1px solid #d9cdb6;
	border-radius: 16px;
	padding: 1rem 1.05rem 1.1rem;
	box-shadow: 0 10px 28px rgba(70, 55, 30, .08);
}
.coedpi-parte-cal__title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #3d3426;
	margin: 0 0 .85rem;
	letter-spacing: .01em;
}
.coedpi-parte-cal__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	margin-bottom: .55rem;
}
.coedpi-parte-cal__month {
	font-weight: 700;
	text-transform: capitalize;
	color: #2f281c;
	font-size: .98rem;
}
.coedpi-parte-cal__navbtn {
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 999px;
	border: 1px solid #cbbda3;
	background: #fffaf0;
	color: #3d3426;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}
.coedpi-parte-cal__navbtn:disabled {
	opacity: .35;
	cursor: not-allowed;
}
.coedpi-parte-cal__dows {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: .28rem;
	margin-bottom: .35rem;
}
.coedpi-parte-cal__dows span {
	text-align: center;
	font-size: .7rem;
	font-weight: 700;
	color: #8a7b64;
	letter-spacing: .04em;
}
.coedpi-parte-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: .28rem;
}
.coedpi-parte-cal__cell {
	aspect-ratio: 1;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: #b0a28c;
	font-size: .9rem;
	font-weight: 600;
	cursor: default;
}
.coedpi-parte-cal__cell.is-pad {
	visibility: hidden;
}
.coedpi-parte-cal__cell.is-off {
	opacity: .28;
	pointer-events: none;
}
.coedpi-parte-cal__cell.is-ok {
	background: #fff;
	border: 1px solid #d2c4a8;
	color: #2f281c;
	cursor: pointer;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset;
}
.coedpi-parte-cal__cell.is-ok.is-saved {
	background: #d8f0dc;
	border-color: #6faf7a;
	color: #1f4d28;
}
.coedpi-parte-cal__cell.is-ok.is-saved:hover {
	border-color: #4e8f58;
	background: #c8e8ce;
}
.coedpi-parte-cal__cell.is-ok:hover {
	border-color: #a89060;
	transform: translateY(-1px);
}
.coedpi-parte-cal__cell.is-today.is-ok {
	box-shadow: 0 0 0 2px rgba(180, 140, 60, .35);
}
.coedpi-parte-cal__cell.is-today.is-ok.is-saved {
	box-shadow: 0 0 0 2px rgba(80, 150, 90, .4);
}
.coedpi-parte-cal__cell.is-on {
	background: #3d3426 !important;
	color: #f7f1e4 !important;
	border-color: #3d3426 !important;
}
.coedpi-parte-cal__cell.is-on.is-saved {
	background: #2f6b3a !important;
	border-color: #2f6b3a !important;
	color: #f4fbf5 !important;
}
.coedpi-parte-cal__summary {
	margin-top: .85rem;
	padding: .65rem .75rem;
	border-radius: 10px;
	background: rgba(255, 255, 255, .55);
	border: 1px dashed #cbbda3;
	font-size: .92rem;
	color: #3d3426;
}

.coedpi-lista-table .coedpi-lista-justificado-wrap {
	margin: 0;
}
.coedpi-lista-table .coedpi-lista-justificado-wrap .acf-label label {
	font-size: 12px;
	font-weight: 700;
	margin: 0 0 6px;
}
.coedpi-lista-section.is-readonly .coedpi-lista-edit-only {
	display: none !important;
}
.coedpi-lista-section.is-editing .coedpi-lista-info-only {
	display: none !important;
}
.coedpi-lista-estado {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
}
.coedpi-lista-estado.is-presente {
	background: #ecfdf3;
	color: #166534;
	border: 1px solid #bbf7d0;
}
.coedpi-lista-estado.is-ausente {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}
.coedpi-lista-just-info {
	font-size: 14px;
	font-weight: 600;
	color: #3d3426;
}

.coedpi-contrato-picker .coedpi-modal {
	width: min(560px, 100%);
	max-height: min(90vh, 680px);
}
/* Añadir atletas: overlay scrollable + lista con altura fija (Safari no traga bien
 * flex+overflow:hidden+dvh y deja la lista/botones fuera de vista sin scroll). */
.coedpi-grupo-add-picker.coedpi-modal-overlay {
	align-items: flex-start;
	justify-content: center;
	padding: 16px;
}
.coedpi-grupo-add-picker .coedpi-modal {
	width: 100%;
	max-width: 560px;
	margin: 12px auto 24px;
	/* Fallbacks: px → vh → dvh (Safari antiguo ignora dvh y tumba todo el decl) */
	max-height: none;
	display: block;
	overflow: visible;
}
.coedpi-grupo-add-picker #coedpi-grupo-add-form {
	display: block;
	overflow: visible;
	min-height: 0;
}
.coedpi-grupo-add-intro {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--muted, #6b6560);
}
.coedpi-grupo-add-search-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #6b6560);
	margin: 0 0 10px;
}
.coedpi-grupo-add-search-label input {
	display: block;
	width: 100%;
	margin-top: 4px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	font-size: 14px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	box-sizing: border-box;
}
.coedpi-grupo-add-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	align-items: center;
	margin: 0 0 8px;
	font-size: 13px;
}
.coedpi-grupo-add-toolbar button {
	border: 0;
	background: none;
	padding: 0;
	color: var(--gold, #a08a2a);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.coedpi-grupo-add-toolbar #coedpi-grupo-add-count {
	margin-left: auto;
	color: var(--muted, #6b6560);
	font-weight: 650;
}
.coedpi-grupo-add-list {
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: hidden;
	overflow-y: auto;
	min-height: 140px;
	height: 280px;
	max-height: 280px;
	max-height: 42vh;
	height: 42vh;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fff;
	-webkit-overflow-scrolling: touch;
}
.coedpi-grupo-add-list li {
	border-bottom: 1px solid var(--line, #e8e2d6);
}
.coedpi-grupo-add-list li:last-child {
	border-bottom: 0;
}
.coedpi-grupo-add-list label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 10px 12px;
	cursor: pointer;
}
.coedpi-grupo-add-list label:hover {
	background: #f7f3ea;
}
.coedpi-grupo-add-list input[type="checkbox"] {
	margin-top: 3px;
	flex: 0 0 auto;
}
.coedpi-grupo-add-list strong {
	display: block;
	font-size: 14px;
	font-weight: 750;
	color: var(--ink, #1c1915);
}
.coedpi-grupo-add-list small {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	color: var(--muted, #6b6560);
}
#coedpi-grupo-add-empty {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--muted, #6b6560);
}
.coedpi-grupo-add-picker .coedpi-modal__actions {
	position: relative;
	z-index: 2;
	margin-top: 12px;
	padding-top: 12px;
	background: #fffef9;
}
.group-grid .coedpi-grupo-clonar-bar {
	margin: 10px 0 0;
}
.group-grid .coedpi-grupo-clonar-bar .btn {
	width: 100%;
	justify-content: center;
}
.coedpi-grupo-clonar-picker .coedpi-modal {
	width: min(520px, 100%);
	max-height: min(90vh, 720px);
	overflow: auto;
}
.coedpi-grupo-clonar-intro {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--muted, #6b6560);
}
.coedpi-grupo-clonar-form .field-label {
	display: block;
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ink, #1c1915);
}
.coedpi-grupo-clonar-form .field-label input,
.coedpi-grupo-clonar-form .field-label select {
	display: block;
	width: 100%;
	margin-top: 6px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	font-size: 14px;
	font-weight: 650;
	box-sizing: border-box;
}
.coedpi-grupo-clonar-picker .coedpi-modal__actions {
	margin-top: 16px;
}
.coedpi-contrato-picker-intro {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--muted, #6b6560);
}
.coedpi-contrato-picker-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}
.coedpi-contrato-picker-item {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	background: #f8fafc;
}
.coedpi-contrato-picker-item__body {
	flex: 1 1 220px;
	min-width: 0;
}
.coedpi-contrato-picker-item strong {
	display: block;
	margin-bottom: 4px;
	color: #1a4d3e;
	font-size: 15px;
}
.coedpi-contrato-picker-meta {
	display: block;
	font-size: 13px;
	line-height: 1.4;
	color: var(--text, #1c1915);
	margin-bottom: 2px;
}
.coedpi-contrato-picker-meta em {
	font-style: normal;
	color: var(--muted, #6b6560);
}
.coedpi-contrato-picker-ref {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: var(--muted, #6b6560);
}
.coedpi-contrato-picker-trigger {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	cursor: pointer;
	text-decoration: underline;
}
.coedpi-reclamacion-ok-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	padding: 8px 12px;
	border-radius: 999px;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
	font-size: 13px;
	font-weight: 600;
}
.coedpi-reclamacion-ok-resumen,
.coedpi-reclamacion-ok-envios {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--text, #1c1915);
}
.coedpi-reclamacion-ok-resumen h4,
.coedpi-reclamacion-ok-envios h4 {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1a4d3e;
}
.coedpi-reclamacion-ok-dl {
	margin: 0;
	display: grid;
	gap: 0;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.coedpi-reclamacion-ok-dl div {
	display: grid;
	grid-template-columns: minmax(120px, 38%) 1fr;
	gap: 0;
	border-bottom: 1px solid var(--line, #e8e2d6);
}
.coedpi-reclamacion-ok-dl div:last-child {
	border-bottom: 0;
}
.coedpi-reclamacion-ok-dl dt {
	margin: 0;
	padding: 8px 12px;
	background: #f7faf8;
	color: #64748b;
	font-weight: 500;
}
.coedpi-reclamacion-ok-dl dd {
	margin: 0;
	padding: 8px 12px;
	color: #211c08;
	word-break: break-word;
}
.coedpi-reclamacion-ok-aleg {
	max-height: 120px;
	overflow: auto;
	white-space: pre-wrap;
}
.coedpi-reclamacion-ok-envios ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 8px;
}
.coedpi-reclamacion-ok-envios li {
	padding: 10px 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #f8fafc;
}
.coedpi-reclamacion-ok-envios strong {
	display: block;
	margin-bottom: 4px;
	color: #1a4d3e;
}
.coedpi-reclamacion-ok-envios span {
	display: block;
	font-size: 13px;
	color: var(--muted, #6b6560);
}
.coedpi-modal .coedpi-proto-form .field-label {
	margin-bottom: 14px;
}
.coedpi-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.coedpi-check {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 4px 0 14px;
	font-size: 12px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	cursor: pointer;
}
.coedpi-check input {
	width: 16px;
	height: 16px;
	accent-color: #d8b636;
}
.coedpi-form-actions {
	margin-top: 8px;
	flex-wrap: wrap;
}
.coedpi-form-actions .btn,
.coedpi-sede-edit .person-actions .btn {
	width: auto !important;
	flex: 0 1 auto;
}
.coedpi-sede-edit .site-kpis {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-top: 4px;
}
.coedpi-sede-edit .site-kpis > .site-kpi,
.coedpi-sede-edit .site-kpis > div {
	display: block;
	padding: 12px 10px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fffef9;
	text-decoration: none;
	color: inherit;
	text-align: left;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.coedpi-sede-edit .site-kpis > a.site-kpi {
	cursor: pointer;
}
.coedpi-sede-edit .site-kpis > a.site-kpi:hover,
.coedpi-sede-edit .site-kpis > a.site-kpi:focus-visible {
	border-color: var(--olive, #3d4a1f);
	box-shadow: 0 2px 10px rgba(61, 74, 31, .12);
	transform: translateY(-1px);
	outline: none;
}
.coedpi-sede-edit .site-kpis strong {
	display: block;
	font-size: 22px;
	line-height: 1.1;
}
.coedpi-sede-edit .site-kpis span {
	display: block;
	margin-top: 4px;
	color: var(--muted, #7a7364);
	font-size: 12px;
	font-weight: 700;
}
@media (max-width: 760px) {
	.coedpi-sede-edit .site-kpis {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.coedpi-form-row {
		grid-template-columns: 1fr;
	}
}

/* Editar atleta: ACF dentro del panel proto */
.coedpi-atleta-edit .acf-form {
	margin: 0;
}
.coedpi-atleta-edit .acf-fields > .acf-field {
	border-color: var(--line, #e8e2d6);
	padding: 14px 0;
}
.coedpi-atleta-edit .acf-label label {
	color: var(--muted, #8a847a);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.coedpi-atleta-edit .acf-input input[type="text"],
.coedpi-atleta-edit .acf-input input[type="email"],
.coedpi-atleta-edit .acf-input input[type="number"],
.coedpi-atleta-edit .acf-input input[type="tel"],
.coedpi-atleta-edit .acf-input input[type="date"],
.coedpi-atleta-edit .acf-input select,
.coedpi-atleta-edit .acf-input textarea {
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	min-height: 39px;
	padding: 8px 11px;
	font-size: 12px;
	width: 100%;
	box-sizing: border-box;
	background-color: #fff;
}
.coedpi-atleta-edit .acf-input select:not([multiple]):not([size]) {
	padding: 0 28px 0 11px;
	height: 39px;
	line-height: 37px;
}
.coedpi-atleta-edit .acf-form-submit {
	margin-top: 16px;
	padding-top: 8px;
}
.coedpi-atleta-edit .acf-form-submit .btn,
.coedpi-atleta-edit .acf-form-submit input[type="submit"] {
	border: 0;
	border-radius: 999px;
	background: var(--gold, #e5bd18);
	color: #211c08;
	min-height: 42px;
	padding: 9px 21px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
	width: auto !important;
}

/* Hoja inscripción pública (App / QR) */
.public-form-shell {
	min-height: 100vh;
	background: var(--ivory, #fbfaf7);
}
.public-form-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 22px;
	border-bottom: 1px solid var(--line, #e8e2d6);
	background: #fff;
}
.public-form-header .brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: var(--ink, #1c1915);
	font-weight: 800;
}
.public-form-header .brand img {
	width: 36px;
	height: 36px;
	object-fit: contain;
}
.public-form-header > span,
.public-form-header-actions > span {
	color: var(--muted, #8a847a);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
}
.public-form-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px 14px;
}
a.public-form-enter-app,
.public-form-enter-app {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	text-decoration: none !important;
	border-radius: 999px;
	background: var(--gold, #e5bd18);
	color: #211c08 !important;
	min-height: 36px;
	padding: 7px 16px;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	box-shadow: 0 4px 12px #e5bd182e;
}
a.public-form-enter-app:hover,
.public-form-enter-app:hover {
	filter: brightness(1.05);
}
.public-form-main {
	max-width: 820px;
	margin: 0 auto;
	padding: 22px 16px 40px;
}
.coedpi-pago-colegiado {
	max-width: 560px;
	margin: 0 auto;
}
.coedpi-pago-colegiado__kicker {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--muted, #8a847a);
}
.coedpi-pago-colegiado h1 {
	margin: 0 0 10px;
	font-size: 26px;
	line-height: 1.2;
	color: var(--ink, #1c1915);
}
.coedpi-pago-colegiado > p {
	margin: 0 0 18px;
	color: var(--muted, #5c574f);
	font-size: 14px;
	line-height: 1.5;
}
.coedpi-pago-colegiado__lead {
	margin: 0 0 18px;
	color: var(--ink, #3d3933);
	font-size: 15px;
	line-height: 1.55;
}
.coedpi-pago-colegiado__lead strong {
	color: var(--ink, #1c1915);
	font-weight: 700;
}
.coedpi-pago-colegiado__card {
	background: #fff;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 14px;
	padding: 6px 18px;
	margin: 0 0 18px;
}
.coedpi-pago-colegiado__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line, #e8e2d6);
	font-size: 14px;
	min-width: 0;
}
.coedpi-pago-colegiado__row:last-child {
	border-bottom: 0;
}
.coedpi-pago-colegiado__row span {
	color: var(--muted, #8a847a);
	flex: 0 0 auto;
}
.coedpi-pago-colegiado__row strong {
	color: var(--ink, #1c1915);
	text-align: right;
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}
.coedpi-pago-colegiado__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 4px 0 12px;
}
.coedpi-pago-colegiado__actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border: 0;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
}
.coedpi-pago-colegiado__actions .btn.primary {
	background: #1a4d3e;
	color: #fff;
}
.coedpi-pago-colegiado__actions .btn.secondary {
	background: #e5bd18;
	color: #211c08;
}
.coedpi-pago-colegiado__hint {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--muted, #5c574f);
	line-height: 1.45;
}
.coedpi-pago-seguro-inline {
	display: none;
	margin: 4px 0 16px;
	min-height: 0;
}
.coedpi-pago-seguro-inline.is-open {
	display: block;
	min-height: 420px;
	padding-top: 8px;
	border-top: 1px solid var(--line, #e8e2d6);
}
/* .btn usa display:flex !important y pisa [hidden] */
#coedpi-seguro-pagar-btn[hidden] {
	display: none !important;
}
body.coedpi-pago-seguro-public .coedpi-pago-colegiado {
	max-width: none;
	width: 100%;
	margin: 0;
	min-width: 0;
}
body.coedpi-pago-seguro-public .coedpi-pago-colegiado__card {
	min-width: 0;
}
body.coedpi-pago-seguro-public .coedpi-pago-seguro-inline.is-open {
	width: 100%;
	min-height: min(70vh, 640px);
}
body.coedpi-pago-seguro-public .coedpi-pago-seguro-inline iframe {
	width: 100% !important;
	max-width: 100%;
}
@media (max-width: 720px) {
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado h1 {
		font-size: 1.5rem;
		line-height: 1.2;
	}
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado > p,
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__lead {
		font-size: 15px;
	}
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__card {
		padding: 4px 14px;
	}
	body.coedpi-pago-seguro-public .pago-seguro-card .btn,
	body.coedpi-pago-seguro-public .login-card .btn,
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__actions .btn {
		min-height: 48px !important;
		font-size: 16px !important;
		padding: 12px 18px !important;
		width: 100%;
	}
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__hint {
		font-size: 13px;
	}
}
@media (max-width: 480px) {
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		padding: 10px 0;
	}
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__row span {
		font-size: 12px;
		letter-spacing: 0.02em;
		text-transform: uppercase;
	}
	body.coedpi-pago-seguro-public .coedpi-pago-colegiado__row strong {
		text-align: left;
		font-size: 15px;
	}
}
.coedpi-pago-colegiado__ok,
.coedpi-pago-colegiado__warn,
.coedpi-pago-colegiado__err {
	border-radius: 12px;
	padding: 12px 14px;
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.45;
}
.coedpi-pago-colegiado__ok {
	background: #e8f5ef;
	color: #1a4d3e;
}
.coedpi-pago-colegiado__warn {
	background: #fff6d8;
	color: #6a5408;
}
.coedpi-pago-colegiado__err {
	background: #fdecea;
	color: #8a1f11;
}
.public-enrollment-logo {
	width: 55px;
	height: 55px;
	object-fit: contain;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d6);
}
.coedpi-public-enrollment-form .acf-form,
.coedpi-public-enrollment-form.red_form {
	margin: 0;
}
.coedpi-public-enrollment-form .acf-fields > .acf-field,
.coedpi-public-enrollment-form .acf-field {
	border-color: var(--line, #e8e2d6);
}
.coedpi-public-enrollment-form input[type="text"],
.coedpi-public-enrollment-form input[type="email"],
.coedpi-public-enrollment-form input[type="tel"],
.coedpi-public-enrollment-form input[type="number"],
.coedpi-public-enrollment-form input[type="date"],
.coedpi-public-enrollment-form select,
.coedpi-public-enrollment-form textarea {
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	min-height: 39px;
	padding: 8px 11px;
	font-size: 12px;
	width: 100%;
	box-sizing: border-box;
	background-color: #fff;
}
.coedpi-public-enrollment-form select:not([multiple]):not([size]) {
	padding: 0 28px 0 11px;
	height: 39px;
	line-height: 37px;
}
.coedpi-public-enrollment-form .coedpibutton,
.coedpi-public-enrollment-form .btnormal,
.coedpi-public-enrollment-form input[type="submit"] {
	border: 0;
	border-radius: 999px;
	background: var(--gold, #e5bd18);
	color: #211c08;
	min-height: 42px;
	padding: 9px 21px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
	width: auto !important;
}
@media (max-width: 640px) {
	.public-form-header {
		padding: 10px 12px;
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.public-form-header-actions {
		width: 100%;
		justify-content: space-between;
	}
	a.public-form-enter-app,
	.public-form-enter-app {
		min-height: 34px;
		padding: 6px 12px;
		font-size: 11px;
	}
	/* Anular .content del prototipo: máxima anchura útil en móvil */
	.public-form-main,
	.public-form-main.content,
	.app-shell.public-form-shell .public-form-main.content {
		max-width: none;
		width: 100%;
		margin: 0;
		padding: 10px 6px 28px;
		box-sizing: border-box;
	}
	.coedpi-public-enrollment {
		margin: 0;
		padding: 0;
		width: 100%;
		max-width: none;
	}
	.coedpi-public-enrollment .entity-profile-hero {
		margin: 0 0 10px;
		padding: 12px 10px;
		border-radius: 12px;
		gap: 10px;
	}
	.coedpi-public-enrollment .entity-profile-hero h1 {
		font-size: 1.25rem;
		line-height: 1.2;
	}
	.coedpi-public-enrollment .entity-profile-hero > div {
		min-width: 0;
	}
	/* Card casi a borde: priorizar campos */
	.coedpi-public-enrollment .card.portal-page-card,
	.coedpi-public-enrollment-form.card,
	section.card.coedpi-public-enrollment-form {
		padding: 10px 8px !important;
		border-radius: 12px;
		margin-left: 0;
		margin-right: 0;
		width: 100%;
		max-width: none;
		box-sizing: border-box;
	}
	.coedpi-public-enrollment-form .acf-fields > .acf-field,
	.coedpi-public-enrollment-form .acf-field {
		padding: 10px 4px !important;
	}
	.coedpi-public-enrollment-form .acf-fields.-left > .acf-field {
		padding: 10px 0 !important;
	}
	.coedpi-public-enrollment-form input[type="text"],
	.coedpi-public-enrollment-form input[type="email"],
	.coedpi-public-enrollment-form input[type="tel"],
	.coedpi-public-enrollment-form input[type="number"],
	.coedpi-public-enrollment-form input[type="date"],
	.coedpi-public-enrollment-form input[type="password"],
	.coedpi-public-enrollment-form select,
	.coedpi-public-enrollment-form textarea {
		font-size: 16px; /* evita zoom iOS al enfocar */
		min-height: 44px;
		padding: 10px 12px;
		width: 100% !important;
		max-width: 100%;
	}
	.coedpi-public-enrollment-form select:not([multiple]):not([size]) {
		height: 44px;
		line-height: 42px;
		padding: 0 32px 0 12px;
	}
	.coedpi-public-enrollment-form .coedpibutton,
	.coedpi-public-enrollment-form .btnormal,
	.coedpi-public-enrollment-form input[type="submit"] {
		width: 100% !important;
		min-height: 48px;
		font-size: 15px;
	}
	.coedpi-public-enrollment-form .acf-label,
	.coedpi-public-enrollment-form label {
		font-size: 13px;
	}
}

@media (max-width: 400px) {
	.public-form-main,
	.public-form-main.content,
	.app-shell.public-form-shell .public-form-main.content {
		padding: 8px 4px 24px;
	}
	.coedpi-public-enrollment .card.portal-page-card,
	.coedpi-public-enrollment-form.card,
	section.card.coedpi-public-enrollment-form {
		padding: 8px 4px !important;
		border-radius: 10px;
	}
	.coedpi-public-enrollment-form .acf-fields > .acf-field,
	.coedpi-public-enrollment-form .acf-field {
		padding: 8px 2px !important;
	}
}

/* Hoja de inscripción pública: radios, checks, mensajes y modal login */
.coedpi-public-enrollment-form .acf-field .acf-input:has(> input[type="radio"]),
.coedpi-public-enrollment-form .coedpi-hoja-radio-group {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	width: 100%;
}
.coedpi-public-enrollment-form input[type="radio"],
.coedpi-public-enrollment-form input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-width: 22px;
	margin: 0;
	accent-color: #c9a227;
	flex-shrink: 0;
}
.coedpi-public-enrollment-form .acf-field .acf-input > input[type="radio"],
.coedpi-public-enrollment-form .coedpi-hoja-radio-group > input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
}
.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 {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 calc(50% - 4px);
	min-width: 120px;
	min-height: 44px;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 650;
	color: var(--ink, #1c1915);
	cursor: pointer;
	box-sizing: border-box;
	text-align: center;
}
.coedpi-public-enrollment-form .acf-field .acf-input > input[type="radio"]:focus-visible + label,
.coedpi-public-enrollment-form .coedpi-hoja-radio-group > input[type="radio"]:focus-visible + label,
.coedpi-public-enrollment-form .coedpi-hoja-radio-pill:focus-visible {
	outline: 2px solid #e5bd18;
	outline-offset: 2px;
}
.coedpi-public-enrollment-form .acf-field .acf-input > input[type="radio"]:checked + label,
.coedpi-public-enrollment-form .coedpi-hoja-radio-group > input[type="radio"]:checked + label {
	background: #fff6d6;
	border-color: #d8b636;
	color: #211c08;
	box-shadow: 0 0 0 1px rgba(216, 182, 54, 0.35);
}
.coedpi-public-enrollment-form .coedpi-hoja-check,
.coedpi-public-enrollment-form .acf-field label.coedpi-hoja-check {
	display: grid !important;
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	width: 100%;
	max-width: 100%;
	min-height: 44px;
	margin: 0 0 12px;
	padding: 14px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	background: #faf8f2;
	line-height: 1.5;
	font-size: 15px;
	font-weight: 500;
	color: var(--ink, #1c1915);
	cursor: pointer;
	box-sizing: border-box;
}
.coedpi-hoja-check-text {
	display: block;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}
.coedpi-public-enrollment-form .coedpi-hoja-check input[type="checkbox"],
.coedpi-public-enrollment-form .acf-field label.coedpi-hoja-check > input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-width: 22px;
	margin: 2px 0 0;
}
.coedpi-public-enrollment-form .coedpi-hoja-check:has(input[type="checkbox"]:checked),
.coedpi-public-enrollment-form .acf-field label.coedpi-hoja-check:has(> input[type="checkbox"]:checked) {
	background: #fff6d6;
	border-color: #d8b636;
}
.coedpi-public-enrollment-form .coedpi-hoja-check.coedpi-hoja-check-missing {
	border-color: #c45c26 !important;
	background: #fff8f3 !important;
	box-shadow: 0 0 0 2px rgba(196, 92, 38, 0.22);
}
.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt,
.coedpi-public-enrollment-form label.coedpi-hoja-seguro-opt {
	display: grid !important;
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	margin: 0 0 10px;
	padding: 14px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	background: #faf8f2;
	line-height: 1.5;
	font-size: 15px;
	font-weight: 500;
	color: var(--ink, #1c1915);
	cursor: pointer;
	box-sizing: border-box;
}
.coedpi-hoja-seguro-opt-text {
	display: block;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}
.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt input[type="radio"],
.coedpi-public-enrollment-form label.coedpi-hoja-seguro-opt > input[type="radio"] {
	position: static !important;
	opacity: 1 !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	margin: 2px 0 0 !important;
}
.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt:has(input[type="radio"]:checked),
.coedpi-public-enrollment-form label.coedpi-hoja-seguro-opt:has(> input[type="radio"]:checked) {
	background: #fff6d6;
	border-color: #d8b636;
}
.coedpi-public-enrollment-form .coedpi-hoja-seguro-opt.coedpi-hoja-check-missing,
.coedpi-public-enrollment-form .coedpi-hoja-seguro-field.coedpi-field-error-hl .coedpi-hoja-seguro-opt {
	border-color: #c45c26 !important;
	background: #fff8f3 !important;
}
.coedpi-public-enrollment-form .coedpi-hoja-seguro-options {
	display: block;
	width: 100%;
}
.coedpi-public-enrollment-form .coedpi-hoja-login-help label:has(> input[type="checkbox"]) {
	display: flex !important;
	grid-template-columns: none;
	min-height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
#coedpi-check-msg:not(:empty),
#coedpi-dob-check-msg:not(:empty),
#coedpi-tutor-tutelados-msg:not(:empty),
#coedpi-menor-acceso-otp-msg:not(:empty),
.coedpi-hoja-inline-msg:not(:empty):not(#coedpi-hoja-submit-errors):not(#coedpi-firma-msg) {
	display: block !important;
	margin: 12px 0 0 !important;
	padding: 12px 14px !important;
	border-radius: 12px !important;
	background: #eff6ff !important;
	border: 1px solid #93c5fd !important;
	color: #1e40af !important;
	font-size: 14px !important;
	line-height: 1.45 !important;
	font-weight: 650 !important;
}
#coedpi-check-msg.coedpi-msg-info:not(:empty),
#coedpi-dob-check-msg.coedpi-msg-info:not(:empty),
#coedpi-tutor-tutelados-msg.coedpi-msg-info:not(:empty),
#coedpi-menor-acceso-otp-msg.coedpi-msg-info:not(:empty),
.coedpi-hoja-inline-msg.coedpi-msg-info:not(:empty) {
	background: #eff6ff !important;
	border-color: #93c5fd !important;
	color: #1e40af !important;
}
#coedpi-check-msg.coedpi-msg-error:not(:empty),
#coedpi-dob-check-msg.coedpi-msg-error:not(:empty),
#coedpi-tutor-tutelados-msg.coedpi-msg-error:not(:empty),
#coedpi-menor-acceso-otp-msg.coedpi-msg-error:not(:empty),
#coedpi-firma-msg:not(:empty),
#coedpi-hoja-submit-errors:not(:empty),
.coedpi-hoja-login-error.is-visible {
	background: #fff0ec !important;
	border-color: #f0c4b8 !important;
	color: #8a1f11 !important;
}
#coedpi-hoja-error-banner {
	position: sticky;
	top: 0;
	z-index: 50;
	margin: 0 0 14px !important;
	padding: 14px 16px !important;
	border-radius: 12px !important;
	font-size: 14px !important;
	line-height: 1.45 !important;
	box-shadow: 0 4px 16px rgba(138, 31, 17, 0.08);
}
#coedpi-hoja-submit-errors {
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	z-index: 100002;
	margin: 0 !important;
	max-height: min(40vh, 220px);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-shadow: 0 8px 32px rgba(138, 31, 17, 0.28);
	display: block !important;
}
#coedpi-hoja-submit-errors[hidden] {
	display: none !important;
}
@keyframes coedpi-hoja-toast-pulse {
	0%, 100% { transform: translateY(0); }
	15% { transform: translateY(-4px); }
	30% { transform: translateY(0); }
}
#coedpi-hoja-submit-errors.coedpi-hoja-toast-pulse {
	animation: coedpi-hoja-toast-pulse 0.45s ease;
}
#submit[aria-disabled="true"] {
	opacity: 0.72;
	cursor: not-allowed;
}
.coedpi-hoja-login-overlay {
	overscroll-behavior: contain;
	pointer-events: none;
}
.coedpi-hoja-login-overlay.is-open {
	pointer-events: auto;
}
.coedpi-hoja-login-overlay.is-open {
	align-items: center;
	justify-content: center;
}
.coedpi-hoja-login-card {
	max-height: min(92dvh, 720px);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.coedpi-hoja-login-error.is-visible {
	display: block !important;
	word-break: break-word;
}

/* Comunicación: forzar visibilidad del compositor */
.coedpi-comunicados.communication-layout {
	display: grid !important;
	grid-template-columns: 260px 1fr;
	gap: 17px;
	align-items: start;
}
.coedpi-comunicados .channel-list {
	display: grid !important;
	gap: 4px;
	align-self: start;
}
.coedpi-comunicados .channel-list .section-title {
	display: block !important;
}
.coedpi-comunicados .channel-list > button {
	display: flex !important;
	width: 100%;
	text-align: left;
	color: var(--ink, #1c1915);
	background: #fff;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	align-items: center;
	gap: 9px;
	margin: 2px 0;
	padding: 10px;
	cursor: pointer;
}
.coedpi-comunicados .channel-list > button.active {
	background: var(--gold-soft, #fff6d6);
	color: var(--olive, #6d5910);
	border-color: #d8b636;
}
.coedpi-comunicados .composer {
	display: grid !important;
	gap: 12px;
	padding: 18px;
}
.coedpi-comunicados .composer .field-label input,
.coedpi-comunicados .composer .field-label textarea,
.coedpi-comunicados .composer .field-label select,
.coedpi-comunicados .composer input[type="text"],
.coedpi-comunicados .composer textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 9px;
	padding: 10px;
	min-height: 42px;
	background: #fff;
	color: var(--ink, #1c1915);
	font-size: 13px;
}
.coedpi-comunicados .composer textarea {
	min-height: 160px;
}
.coedpi-comunicados .composer .btn.primary {
	width: auto !important;
	justify-self: start;
}
@media (max-width: 900px) {
	.coedpi-comunicados.communication-layout {
		grid-template-columns: 1fr;
	}
}






/* Partes de accidentes (MVP siniestros) */
.coedpi-partes-portal .incident-kpis {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 16px;
}

/* KPIs perfil tutor (resumen área personal) */
.tutor-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 16px;
}
.tutor-kpi-grid > .tutor-kpi {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	text-decoration: none;
	color: inherit;
	transition: transform .12s ease, box-shadow .12s ease;
}
.tutor-kpi-grid > .tutor-kpi:hover {
	transform: translateY(-1px);
}
.tutor-kpi-grid > .tutor-kpi--primary {
	outline: 2px solid rgba(27, 94, 32, 0.18);
}
.tutor-kpi-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #f3efe6;
	font-size: 1.1rem;
	flex: 0 0 auto;
}
.tutor-kpi--primary .tutor-kpi-icon {
	background: #e8f5e9;
	color: #1b5e20;
}
.tutor-kpi-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.tutor-kpi-body small {
	font-size: 11px;
	letter-spacing: .04em;
	color: var(--muted, #6b7280);
}
.tutor-kpi-value {
	font-size: 1.75rem;
	line-height: 1.1;
	font-weight: 700;
}
.tutor-kpi-body em {
	font-style: normal;
	font-size: 12px;
	color: var(--muted, #6b7280);
}
.tutor-kpi-go {
	margin-left: auto;
	opacity: .55;
	font-weight: 700;
}
@media (max-width: 900px) {
	.tutor-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.tutor-kpi-grid { grid-template-columns: 1fr; }
}
.coedpi-partes-portal .incident-kpis .card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
}
.coedpi-partes-portal .incident-kpis > a.card.incident-kpi {
	text-decoration: none;
	color: inherit;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	cursor: pointer;
}
.coedpi-partes-portal .incident-kpis > a.card.incident-kpi:hover,
.coedpi-partes-portal .incident-kpis > a.card.incident-kpi:focus-visible {
	border-color: var(--olive, #3d4a1f);
	box-shadow: 0 2px 10px rgba(61, 74, 31, .12);
	transform: translateY(-1px);
	outline: none;
}
.coedpi-partes-portal .incident-kpis > a.card.incident-kpi.is-active {
	border-color: var(--olive, #3d4a1f);
	box-shadow: 0 0 0 2px rgba(61, 74, 31, .18);
}
.coedpi-partes-portal .incident-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #f3efe6;
	font-weight: 700;
}
.coedpi-partes-portal .incident-icon.ok { background: #e8f5e9; color: #1b5e20; }
.coedpi-partes-portal .incident-icon.warn { background: #fff6d6; color: #6d5910; }
.coedpi-partes-portal .incident-icon.danger { background: #fdecea; color: #8b1e1e; }
.coedpi-partes-portal .incident-table.data-table {
	display: grid;
	gap: 0;
}
.coedpi-partes-portal .incident-table .data-row {
	display: grid;
	grid-template-columns: 1.1fr 1.2fr 1fr 0.8fr 1fr 1.4fr;
	gap: 8px;
	align-items: center;
	padding: 10px 4px;
	border-bottom: 1px solid var(--line, #e8e2d6);
	text-decoration: none;
	color: inherit;
}
.coedpi-partes-portal .incident-table .data-head {
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #6b6560);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
/* Ficha detalle: etiqueta izquierda / valor derecha */
.coedpi-partes-portal .coedpi-parte-kv {
	margin: 8px 0 0;
	padding: 0;
}
.coedpi-partes-portal .coedpi-parte-kv__row {
	display: grid;
	grid-template-columns: minmax(140px, 38%) 1fr;
	gap: 8px 16px;
	align-items: start;
	padding: 10px 0;
	border-bottom: 1px solid var(--line, #e8e2d6);
}
.coedpi-partes-portal .coedpi-parte-kv__row:last-child {
	border-bottom: 0;
}
.coedpi-partes-portal .coedpi-parte-kv dt {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--muted, #6b6560);
	line-height: 1.4;
}
.coedpi-partes-portal .coedpi-parte-kv dd {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: inherit;
	line-height: 1.45;
	word-break: break-word;
}
@media (max-width: 560px) {
	.coedpi-partes-portal .coedpi-parte-kv__row {
		grid-template-columns: 1fr;
		gap: 2px;
		padding: 10px 0;
	}
	.coedpi-partes-portal .coedpi-parte-kv dt {
		font-size: 11px;
		text-transform: uppercase;
		letter-spacing: 0.03em;
	}
}
.coedpi-partes-portal .incident-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}
/* Tabla de atletas: el prototipo ponía display:flex en el td y rompía columnas */
.athlete-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.athlete-table-card .athlete-table {
	border-collapse: collapse;
	width: 100%;
	min-width: 760px;
	table-layout: auto;
}
.athlete-table-card .athlete-table.athlete-table--directory {
	min-width: 720px;
}
.athlete-table-card .athlete-table th,
.athlete-table-card .athlete-table td {
	display: table-cell;
	vertical-align: middle;
	text-align: left;
	border-bottom: 1px solid var(--line, #e8e2d6);
	padding: 12px 10px;
	font-size: 12px;
	line-height: 1.35;
	white-space: normal;
}
.athlete-table-card .athlete-table th {
	color: var(--muted, #6b6560);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.athlete-table-card .athlete-table td:first-child {
	display: table-cell;
}
.athlete-table-card .athlete-table-person {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 160px;
	text-decoration: none;
	color: inherit;
}
.athlete-table-card .athlete-table-identity {
	display: grid;
	gap: 4px;
	min-width: 0;
}
.athlete-table-card .athlete-table-person:hover .athlete-table-name,
.athlete-grid .athlete-card-person:hover .athlete-card-name {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.athlete-table-card tr.athlete-row--fuera-vigor td {
	background: #fff7ed;
}
.athlete-table-card tr.athlete-row--fuera-vigor td:first-child {
	box-shadow: inset 3px 0 0 #ea580c;
}
.athlete-table-card .athlete-td-grupo,
.athlete-table-card .athlete-td-cad {
	color: #3f3a34;
	white-space: nowrap;
}
.athlete-table-card .athlete-td-meta {
	white-space: nowrap;
}

/* Tarjetas atletas — layout coherente con el portal */
.athlete-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr;
}
.athlete-grid .person-card-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
}
@media (min-width: 761px) {
	.athlete-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 1500px) {
	.athlete-grid {
		grid-template-columns: repeat(3, minmax(300px, 1fr));
	}
}
.athlete-grid .card.athlete-card {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 18px;
	min-height: 0;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d6);
	box-shadow: var(--small-shadow, 0 1px 2px rgba(40, 36, 28, 0.04));
}
.athlete-grid .card.athlete-card--fuera-vigor {
	background: #fffaf5;
	border-color: #fdba74;
	box-shadow: inset 3px 0 0 #ea580c;
}
.athlete-card-head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.athlete-grid .athlete-card-person {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}
.athlete-grid .athlete-card-person:hover .athlete-card-name {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.athlete-grid .athlete-card-person .avatar,
.athlete-card .avatar {
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: #f3efe6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 750;
	overflow: hidden;
}
.athlete-card-id {
	min-width: 0;
	display: grid;
	gap: 2px;
}
.athlete-card-id > small {
	display: block;
	letter-spacing: 0.06em;
	font-size: 10px;
	font-weight: 750;
	color: var(--olive, #6b7c3a);
	text-transform: uppercase;
}
.athlete-card--fuera-vigor .athlete-card-id > small {
	color: #c2410c;
}
.athlete-card-name {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--ink, #2a2620);
	overflow-wrap: anywhere;
}
.athlete-card-grupo {
	margin: 2px 0 0;
	font-size: 12px;
	line-height: 1.35;
	color: var(--muted, #6b6560);
}
.athlete-card-pay {
	flex: 0 0 auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}
.athlete-card-pay-wrap {
	flex: 0 0 auto;
	align-self: flex-start;
	display: grid;
	gap: 8px;
	justify-items: end;
}
.athlete-card-pay-wrap .athlete-card-pay {
	align-self: auto;
}
.athlete-card-pagar-btn {
	font-size: 12px;
	padding: 6px 12px;
	line-height: 1.2;
	width: auto;
	min-width: 0;
}
.athlete-card-pay.is-ok {
	background: #ecfdf5;
	color: #065f46;
	border: 1px solid #a7f3d0;
}
.athlete-card-pay.is-warn {
	background: #fff7ed;
	color: #9a3412;
	border: 1px solid #fdba74;
}
.athlete-card-body {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--line, #e8e2d6);
	display: grid;
	gap: 12px;
}
.athlete-card-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.athlete-card-badges .badge {
	margin: 0;
	font-size: 10px;
}
.athlete-card-badges .badge.tone-muted,
.badge.tone-muted {
	background: #f3efe6;
	color: #655f58;
	border: 1px solid #e8e2d6;
}
.athlete-card-contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.athlete-card-contact li {
	display: grid;
	gap: 2px;
	min-width: 0;
}
.athlete-card-contact-k {
	font-size: 10px;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted, #8a847a);
}
.athlete-card-contact a {
	font-size: 13px;
	line-height: 1.35;
	color: var(--ink, #2a2620);
	text-decoration: none;
	overflow-wrap: anywhere;
}
.athlete-card-contact a:hover {
	color: var(--olive, #6b7c3a);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.athlete-grid .card.athlete-card > .athlete-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--line, #e8e2d6);
}
.athlete-grid .card.athlete-card > .athlete-card-actions .btn {
	flex: 1 1 calc(50% - 8px);
	min-width: 0;
	padding: 9px 12px !important;
	font-size: 12px;
	white-space: nowrap;
	justify-content: center;
	text-align: center;
}
.athlete-grid .card.athlete-card > .athlete-card-actions .btn.primary {
	flex: 1 1 100%;
}
.athlete-vigor-badge {
	display: inline-block;
	margin: 4px 0 2px;
	font-size: 10px;
	vertical-align: middle;
}
.athlete-table-card .athlete-vigor-badge {
	display: block;
	width: fit-content;
	margin-top: 4px;
}
.person-card-top .avatar {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.athlete-table-card .athlete-table-person .avatar {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: #f3efe6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 750;
}
.avatar.has-photo {
	padding: 0;
	overflow: hidden;
	background: transparent;
}
.avatar.has-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.profile-hero > .avatar.xlarge.has-photo,
.avatar.xlarge.has-photo {
	width: 88px;
	height: 88px;
	border-radius: 18px;
}
.athlete-table-card .athlete-table-person > div,
.athlete-table-card .athlete-table-identity {
	display: grid;
	gap: 4px;
}
.athlete-table-card .athlete-table-person small {
	display: block;
	font-size: 11px;
	color: var(--muted, #6b6560);
}
.athlete-table-card .athlete-table-actions {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: flex-end;
	white-space: nowrap;
}
/* Acciones compactas (atletas escuela + alumnos grupo): 2 filas × 3 */
.athlete-actions-grid,
.coedpi-compact-actions-grid,
.athlete-table-card .athlete-actions-grid,
.athlete-td-actions .athlete-actions-grid,
.coedpi-grupo-alumno-actions .athlete-actions-grid,
.coedpi-grupo-alumno-actions .coedpi-compact-actions-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 56px) !important;
	grid-auto-rows: min-content;
	gap: 8px 6px !important;
	align-items: start;
	justify-content: start;
	justify-items: center;
	width: max-content !important;
	max-width: 100% !important;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
.athlete-actions-grid .coedpi-atajos-tile,
.athlete-actions-grid .coedpi-grupo-alumno-atajo,
.coedpi-compact-actions-grid .coedpi-atajos-tile,
.coedpi-compact-actions-grid .coedpi-grupo-alumno-atajo {
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center;
	justify-content: flex-start;
	gap: 4px;
	width: 56px !important;
	min-width: 56px !important;
	max-width: 56px !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 10px !important;
	line-height: 1.15;
	text-decoration: none;
	color: inherit;
	border: 0;
	background: transparent !important;
	box-shadow: none !important;
	overflow: visible !important;
}
.athlete-actions-grid .coedpi-atajos-well,
.coedpi-compact-actions-grid .coedpi-atajos-well {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	aspect-ratio: 1 / 1 !important;
	border-radius: 10px !important;
	flex: 0 0 auto !important;
	align-self: center !important;
}
.athlete-actions-grid .coedpi-atajos-well img,
.coedpi-compact-actions-grid .coedpi-atajos-well img {
	width: 20px !important;
	height: 20px !important;
	object-fit: contain !important;
	display: block !important;
}
.athlete-actions-grid .coedpi-atajos-tile > strong,
.athlete-actions-grid .coedpi-grupo-alumno-atajo > strong,
.coedpi-compact-actions-grid .coedpi-atajos-tile > strong,
.coedpi-compact-actions-grid .coedpi-grupo-alumno-atajo > strong {
	font-size: 10px !important;
	line-height: 1.15 !important;
	max-width: 100%;
	text-align: center;
	white-space: nowrap !important;
	overflow: hidden;
	text-overflow: ellipsis;
	overflow-wrap: normal !important;
	word-break: normal !important;
}
@media (max-width: 720px) {
	.athlete-actions-grid,
	.coedpi-compact-actions-grid,
	.athlete-table-card .athlete-actions-grid,
	.athlete-td-actions .athlete-actions-grid,
	.coedpi-grupo-alumno-actions .athlete-actions-grid,
	.coedpi-grupo-alumno-actions .coedpi-compact-actions-grid {
		grid-template-columns: repeat(3, minmax(72px, 1fr)) !important;
		gap: 12px 10px !important;
		width: 100% !important;
		max-width: 100% !important;
		justify-items: center;
	}
	.athlete-actions-grid .coedpi-atajos-tile,
	.athlete-actions-grid .coedpi-grupo-alumno-atajo,
	.coedpi-compact-actions-grid .coedpi-atajos-tile,
	.coedpi-compact-actions-grid .coedpi-grupo-alumno-atajo {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 96px !important;
		gap: 6px;
		font-size: 12px !important;
		background: transparent !important;
	}
	.athlete-actions-grid .coedpi-atajos-well,
	.coedpi-compact-actions-grid .coedpi-atajos-well {
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		min-height: 48px !important;
		aspect-ratio: 1 / 1 !important;
		border-radius: 14px !important;
	}
	.athlete-actions-grid .coedpi-atajos-well img,
	.coedpi-compact-actions-grid .coedpi-atajos-well img {
		width: 28px !important;
		height: 28px !important;
	}
	.athlete-actions-grid .coedpi-atajos-tile > strong,
	.athlete-actions-grid .coedpi-grupo-alumno-atajo > strong,
	.coedpi-compact-actions-grid .coedpi-atajos-tile > strong,
	.coedpi-compact-actions-grid .coedpi-grupo-alumno-atajo > strong {
		font-size: 12px !important;
		line-height: 1.2 !important;
		white-space: nowrap !important;
	}
}
.athlete-table-card td.coedpi-grupo-alumno-pagos,
.athlete-table-card .athlete-td-pagos {
	max-width: 200px;
	min-width: 140px;
	vertical-align: middle;
	white-space: normal;
}
.athlete-table-card .coedpi-atleta-pagos-compact {
	display: grid;
	gap: 6px;
	justify-items: start;
}
.athlete-table-card .coedpi-atleta-pagos-resumen,
.athlete-table-card .coedpi-atleta-pagos-link,
.athlete-table-card .coedpi-atleta-pagos-compact .coedpi-grupo-pagar-detail {
	margin: 0;
	font-size: 12px;
	line-height: 1.3;
	color: #7c5e10;
}
.athlete-table-card .coedpi-atleta-pagos-compact .coedpi-grupo-pagar-btn {
	font-size: 12px;
	padding: 5px 10px;
	line-height: 1.2;
}
.athlete-filters-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
}
.athlete-filters-toggle {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: auto !important;
	min-width: 0;
	height: auto;
	min-height: 42px;
	padding: 0 14px 0 12px !important;
	margin: 0;
	border: 1px solid var(--line, #e8e2d6) !important;
	border-radius: 10px !important;
	background: #faf8f3 !important;
	color: #1c1915 !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.2;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-shadow: none !important;
	text-transform: none;
	letter-spacing: 0;
}
.athlete-filters-toggle__icon {
	font-size: 16px;
	line-height: 1;
	color: var(--muted, #6b6560);
}
.athlete-filters-toggle__label {
	font-size: 13px;
	font-weight: 700;
	color: #1c1915;
}
.athlete-filters-toggle:hover,
.athlete-filters-wrap.is-open .athlete-filters-toggle {
	background: #fff !important;
	border-color: #c9b89a !important;
}
.athlete-filters-wrap .athlete-table-filters,
.athlete-filters-wrap .athlete-table-filters[hidden] {
	display: none !important;
}
.athlete-filters-wrap.is-open .athlete-table-filters {
	display: flex !important;
}
.athlete-table-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	align-items: flex-end;
	margin: 0;
	padding: 12px 14px;
	background: #faf8f3;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	flex: 1 1 100%;
	width: 100%;
}
.athlete-table-filters label {
	display: grid;
	gap: 4px;
	font-size: 11px;
	font-weight: 700;
	color: var(--muted, #6b6560);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.athlete-table-filters .athlete-filter-search {
	flex: 1 1 220px;
	min-width: 180px;
}
.athlete-table-filters input[type="search"],
.athlete-table-filters select {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	min-height: 38px;
	padding: 0 10px;
	border: 1px solid var(--line, #e6dcc8) !important;
	border-radius: 9px !important;
	background: #fff !important;
	color: #1c1915 !important;
	font-size: 13px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	width: 100%;
	box-shadow: none !important;
}
.athlete-table-filters .btn {
	min-height: 38px;
}
.athlete-table-filters .athlete-filter-count {
	margin-left: auto;
	font-size: 12px;
	color: var(--muted, #6b6560);
	align-self: center;
	font-weight: 600;
}
.athlete-table-card .athlete-th-sort a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dotted transparent;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}
.athlete-table-card .athlete-th-sort a:hover {
	border-bottom-color: currentColor;
}
.athlete-table-card .athlete-th-sort.is-sorted a {
	color: #1c1915;
	font-weight: 800;
}
.athlete-table-card .athlete-sort-arrows {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	flex-shrink: 0;
	opacity: 0.32;
	line-height: 0;
}
.athlete-table-card .athlete-sort-arrow {
	display: block;
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
}
.athlete-table-card .athlete-sort-arrow--up {
	border-bottom: 5px solid currentColor;
}
.athlete-table-card .athlete-sort-arrow--down {
	border-top: 5px solid currentColor;
}
.athlete-table-card .athlete-th-sort.is-sorted .athlete-sort-arrows {
	opacity: 1;
}
.athlete-table-card .athlete-th-sort.is-sorted.is-asc .athlete-sort-arrow--down,
.athlete-table-card .athlete-th-sort.is-sorted.is-desc .athlete-sort-arrow--up {
	opacity: 0.22;
}
.athlete-table-card .athlete-th-sort a:hover .athlete-sort-arrows {
	opacity: 0.7;
}
.athlete-table-card .athlete-th-sort.is-sorted a:hover .athlete-sort-arrows {
	opacity: 1;
}
.screen-reader-text,
.coedpi-u-sr-only {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
@media (max-width: 720px) {
	.athlete-table-filters .athlete-filter-count {
		margin-left: 0;
		width: 100%;
	}
}

/* Acciones del alumno = wells dorados compactos en una línea (con etiqueta debajo) */
.coedpi-grupo-alumno-actions {
	vertical-align: middle;
	white-space: nowrap;
}
.coedpi-grupo-alumno-actions-grid {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 10px;
	white-space: nowrap;
	width: max-content;
	max-width: 100%;
	box-sizing: border-box;
}
.coedpi-grupo-alumno-actions .coedpi-atajos-tile,
.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 4px;
	text-decoration: none;
	color: inherit;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	border-radius: 8px;
	box-sizing: border-box;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	width: 52px;
	flex: 0 0 52px;
	min-width: 52px;
	max-width: 52px;
	overflow: visible;
	position: relative;
	z-index: 1;
}
.coedpi-grupo-alumno-actions .coedpi-atajos-well {
	width: 28px;
	height: 28px;
	min-width: 28px;
	min-height: 28px;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	background: #efe4a8;
	border: 1px solid #d9c46a;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	flex: 0 0 auto;
	align-self: center;
}
.coedpi-grupo-alumno-actions .coedpi-atajos-well img {
	width: 18px;
	height: 18px;
	object-fit: contain;
	display: block;
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
.coedpi-grupo-alumno-actions .coedpi-atajos-tile > strong,
.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo > strong {
	display: block;
	text-align: center;
	font-size: 9px;
	font-weight: 800;
	line-height: 1.15;
	color: #a08a2a;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	overflow-wrap: normal;
	word-break: normal;
}
.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-atajo.is-danger .coedpi-atajos-well {
	background: #f8e4de;
	border-color: #e0b0a4;
}
.coedpi-grupo-alumno-atajo-form {
	display: contents;
	margin: 0;
	padding: 0;
}
.coedpi-row-actions .btn,
.coedpi-row-actions a.btn,
.coedpi-row-actions button.btn,
.coedpi-row-actions span.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	height: auto;
	width: auto;
	margin: 0 2px;
	padding: 4px 8px;
	font-size: 11px;
	line-height: 1.2;
	border-radius: 8px;
	box-sizing: border-box;
	vertical-align: middle;
}
.coedpi-row-actions .btn.is-disabled {
	opacity: 0.45;
	pointer-events: none;
	cursor: not-allowed;
}
.coedpi-row-actions__form {
	display: inline-flex;
	margin: 0;
	padding: 0;
}

.badge.tone-danger {
	background: #fde8e8;
	color: #9b1c1c;
	border: 1px solid #f5c2c2;
}
@media (max-width: 900px) {
	.coedpi-partes-portal .incident-kpis {
		grid-template-columns: 1fr 1fr;
	}
	.coedpi-partes-portal .incident-table .data-row {
		grid-template-columns: 1fr 1fr;
	}
	.coedpi-partes-portal .incident-table .data-head { display: none; }
}

/* Hojas de inscripción — layout editor + panel compartir */
.enrollment-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
	gap: 16px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.enrollment-layout > * {
	min-width: 0;
	max-width: 100%;
}
.app-shell .share-url,
.enrollment-share .share-url {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.app-shell .share-url code,
.enrollment-share .share-url code {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
	word-break: break-all;
	overflow-wrap: anywhere;
	white-space: normal;
	text-overflow: unset;
	overflow: visible;
}

/* Hojas de atleta por grupo: grid que no desborda el contenedor */
.coedpi-hoja-atletas-section {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow: hidden;
}
.coedpi-hoja-grupos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 14px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	align-items: stretch;
}
.coedpi-hoja-grupos-grid > .coedpi-hoja-grupo-card,
.coedpi-hoja-grupos-grid > .card {
	min-width: 0;
	max-width: 100%;
	width: 100%;
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	padding: 14px;
	margin: 0;
}
.coedpi-hoja-grupos-grid .coedpi-hoja-grupo-card > small {
	color: var(--olive, #6d5910);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.04em;
}
.coedpi-hoja-grupos-grid .coedpi-hoja-grupo-card > h2 {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.25;
	word-break: break-word;
}
.coedpi-hoja-grupos-grid .share-url {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 8px;
	box-sizing: border-box;
}
.coedpi-hoja-grupos-grid .share-url code {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
	font-size: 11px;
	line-height: 1.35;
	white-space: normal;
	word-break: break-all;
	overflow-wrap: anywhere;
	text-overflow: unset;
	overflow: visible;
}
.coedpi-hoja-grupos-grid .share-url .btn {
	flex: 0 0 auto;
	margin-left: auto;
}
.coedpi-hoja-grupo-actions,
.coedpi-hoja-grupos-grid .hoja-share-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	justify-content: flex-start;
	margin: 0;
}
.coedpi-hoja-grupos-grid .hoja-share-actions {
	justify-content: flex-start;
}
.coedpi-hoja-grupo-actions .btn,
.coedpi-hoja-grupos-grid .hoja-share-actions .btn {
	flex: 1 1 auto;
	min-width: 0;
	text-align: center;
	box-sizing: border-box;
}
.coedpi-hoja-grupos-grid .hoja-send-email {
	width: 100%;
	max-width: 100% !important;
	margin: 8px 0 0 !important;
	padding-top: 12px;
	box-sizing: border-box;
}
.coedpi-hoja-grupos-grid .hoja-send-email > div {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	max-width: 100%;
}
.coedpi-hoja-grupos-grid .hoja-send-email input[type="email"] {
	flex: 1 1 140px;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.coedpi-hoja-grupos-grid .hoja-send-email .btn {
	flex: 0 0 auto;
}
@media (max-width: 720px) {
	.coedpi-hoja-grupos-grid {
		grid-template-columns: 1fr;
	}
}

/*
 * Campos de texto: fondo suave + línea inferior marcada
 * (sin foco también se identifica que se puede escribir).
 */
.app-shell input[type="text"],
.app-shell input[type="email"],
.app-shell input[type="tel"],
.app-shell input[type="number"],
.app-shell input[type="search"],
.app-shell input[type="url"],
.app-shell input[type="password"],
.app-shell input[type="date"],
.app-shell input[type="time"],
.app-shell input:not([type]),
.app-shell textarea,
.coedpi-proto-shell input[type="text"],
.coedpi-proto-shell input[type="email"],
.coedpi-proto-shell input[type="tel"],
.coedpi-proto-shell input[type="number"],
.coedpi-proto-shell input[type="search"],
.coedpi-proto-shell input[type="url"],
.coedpi-proto-shell input[type="password"],
.coedpi-proto-shell input[type="date"],
.coedpi-proto-shell input[type="time"],
.coedpi-proto-shell input:not([type]),
.coedpi-proto-shell textarea,
.portal-page-card input[type="text"],
.portal-page-card input[type="email"],
.portal-page-card input[type="tel"],
.portal-page-card input[type="number"],
.portal-page-card input[type="search"],
.portal-page-card input[type="password"],
.portal-page-card input[type="date"],
.portal-page-card textarea,
.coedpi-public-enrollment-form input[type="text"],
.coedpi-public-enrollment-form input[type="email"],
.coedpi-public-enrollment-form input[type="tel"],
.coedpi-public-enrollment-form input[type="number"],
.coedpi-public-enrollment-form input[type="date"],
.coedpi-public-enrollment-form input[type="password"],
.coedpi-public-enrollment-form textarea,
.coedpi-atleta-edit .acf-input input[type="text"],
.coedpi-atleta-edit .acf-input input[type="email"],
.coedpi-atleta-edit .acf-input input[type="number"],
.coedpi-atleta-edit .acf-input input[type="tel"],
.coedpi-atleta-edit .acf-input input[type="date"],
.coedpi-atleta-edit .acf-input textarea,
.coedpi-proto-form .field-label input,
.coedpi-comunicados .composer .field-label input,
.coedpi-comunicados .composer .field-label textarea,
.coedpi-comunicados .composer input[type="text"],
.coedpi-cf-row input[type="text"],
.coedpi-cf-row textarea,
input.coedpi-text-field,
textarea.coedpi-text-field {
	appearance: none;
	-webkit-appearance: none;
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 4px 0 0;
	min-height: 42px;
	padding: 10px 12px 9px;
	font-size: 14px;
	font-weight: 550;
	line-height: 1.35;
	color: var(--ink, #1c1915);
	background-color: #f3efe6 !important;
	background-image: none !important;
	border-style: solid !important;
	border-width: 1px 1px 2px 1px !important;
	border-color: #ddd4c2 #ddd4c2 #6f6758 #ddd4c2 !important;
	border-radius: 8px 8px 0 0 !important;
	box-shadow: none !important;
}

/* Hora del parte: sin cajas prepend/append vacías de ACF */
.app-shell .coedpi-parte-hora-hhmm .acf-input-prepend,
.app-shell .coedpi-parte-hora-hhmm .acf-input-append,
.coedpi-proto-shell .coedpi-parte-hora-hhmm .acf-input-prepend,
.coedpi-proto-shell .coedpi-parte-hora-hhmm .acf-input-append,
.app-shell .acf-field[data-key="field_66b6386ea5fc5"] .acf-input-prepend,
.app-shell .acf-field[data-key="field_66b6386ea5fc5"] .acf-input-append,
.coedpi-proto-shell .acf-field[data-key="field_66b6386ea5fc5"] .acf-input-prepend,
.coedpi-proto-shell .acf-field[data-key="field_66b6386ea5fc5"] .acf-input-append {
	display: none !important;
}

/* Hora del parte: evita “sombra” gris del wrap ACF detrás del input estrecho */
.app-shell .coedpi-parte-hora-hhmm .acf-input,
.app-shell .coedpi-parte-hora-hhmm .acf-input-wrap,
.coedpi-proto-shell .coedpi-parte-hora-hhmm .acf-input,
.coedpi-proto-shell .coedpi-parte-hora-hhmm .acf-input-wrap {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	max-width: 11rem;
}
.app-shell .coedpi-parte-hora-hhmm input[type="time"],
.coedpi-proto-shell .coedpi-parte-hora-hhmm input[type="time"],
.app-shell .acf-field[data-key="field_66b6386ea5fc5"] input[type="time"],
.coedpi-proto-shell .acf-field[data-key="field_66b6386ea5fc5"] input[type="time"] {
	width: 100% !important;
	max-width: 11rem !important;
	color-scheme: light;
}
.app-shell .coedpi-parte-hora-hhmm input[type="time"]::-webkit-datetime-edit,
.app-shell .coedpi-parte-hora-hhmm input[type="time"]::-webkit-datetime-edit-fields-wrapper {
	background: transparent;
}
.app-shell textarea,
.coedpi-proto-shell textarea,
.portal-page-card textarea,
.coedpi-public-enrollment-form textarea,
.coedpi-atleta-edit .acf-input textarea,
.coedpi-cf-row textarea,
textarea.coedpi-text-field {
	min-height: 88px;
	resize: vertical;
}
.app-shell input[type="text"]:focus,
.app-shell input[type="email"]:focus,
.app-shell input[type="tel"]:focus,
.app-shell input[type="number"]:focus,
.app-shell input[type="search"]:focus,
.app-shell input[type="url"]:focus,
.app-shell input[type="password"]:focus,
.app-shell input[type="date"]:focus,
.app-shell input[type="time"]:focus,
.app-shell input:not([type]):focus,
.app-shell textarea:focus,
.coedpi-proto-shell input[type="text"]:focus,
.coedpi-proto-shell input[type="email"]:focus,
.coedpi-proto-shell input[type="tel"]:focus,
.coedpi-proto-shell input[type="number"]:focus,
.coedpi-proto-shell input[type="search"]:focus,
.coedpi-proto-shell input[type="url"]:focus,
.coedpi-proto-shell input[type="password"]:focus,
.coedpi-proto-shell input[type="date"]:focus,
.coedpi-proto-shell input[type="time"]:focus,
.coedpi-proto-shell input:not([type]):focus,
.coedpi-proto-shell textarea:focus,
.portal-page-card input[type="text"]:focus,
.portal-page-card input[type="email"]:focus,
.portal-page-card input[type="tel"]:focus,
.portal-page-card input[type="number"]:focus,
.portal-page-card input[type="search"]:focus,
.portal-page-card input[type="password"]:focus,
.portal-page-card input[type="date"]:focus,
.portal-page-card textarea:focus,
.coedpi-public-enrollment-form input[type="text"]:focus,
.coedpi-public-enrollment-form input[type="email"]:focus,
.coedpi-public-enrollment-form input[type="tel"]:focus,
.coedpi-public-enrollment-form input[type="number"]:focus,
.coedpi-public-enrollment-form input[type="date"]:focus,
.coedpi-public-enrollment-form input[type="password"]:focus,
.coedpi-public-enrollment-form textarea:focus,
.coedpi-atleta-edit .acf-input input:focus,
.coedpi-atleta-edit .acf-input textarea:focus,
.coedpi-proto-form .field-label input:focus,
.coedpi-comunicados .composer .field-label input:focus,
.coedpi-comunicados .composer .field-label textarea:focus,
.coedpi-comunicados .composer input[type="text"]:focus,
.coedpi-cf-row input[type="text"]:focus,
.coedpi-cf-row textarea:focus,
input.coedpi-text-field:focus,
textarea.coedpi-text-field:focus {
	outline: none !important;
	background-color: #fffdf6 !important;
	border-color: #e0d3a8 #e0d3a8 #c9a412 #e0d3a8 !important;
	box-shadow: 0 2px 0 0 rgba(229, 189, 24, 0.45) !important;
}
.app-shell input::placeholder,
.coedpi-proto-shell input::placeholder,
.portal-page-card input::placeholder,
.coedpi-cf-row input::placeholder,
.coedpi-text-field::placeholder {
	color: #8a8276;
	opacity: 1;
}
/* Excepciones: inputs dentro de cajas ya bordeadas (toolbar / filtro) */
.app-shell .toolbar input,
.app-shell .coedpi-filter-select input,
.app-shell .share-url input,
.head-actions input:not(.search):not(.coedpi-header-menu-search) {
	background-color: transparent !important;
	border-width: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 36px;
	padding: 0 8px;
	margin: 0;
}

/* Input Buscar del header: escribe aquí y filtra el menú del rol */
.coedpi-menu-search-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0;
	position: relative;
	min-width: 0;
}
.coedpi-menu-search-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 6px;
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--line, #e6dcc8);
	background: #faf9f6;
	color: #1c1915;
	border-radius: 9px;
	height: 38px;
	min-height: 38px;
	padding: 0 10px;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: none;
}
.coedpi-menu-search-toggle__ico {
	font-size: 15px;
	line-height: 1;
	opacity: .85;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.coedpi-menu-search-toggle__ico.coedpi-atajo-inline img,
.coedpi-menu-search-toggle__ico img {
	width: 18px;
	height: 18px;
	object-fit: contain;
	display: block;
}
.coedpi-menu-search-toggle__lab {
	letter-spacing: .01em;
}

/* Iconos PNG inline (campana, lupa…) — filtro dorado COEDPI */
i.coedpi-atajo-inline,
span.coedpi-atajo-inline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	flex-shrink: 0;
}
i.coedpi-atajo-inline img,
span.coedpi-atajo-inline img {
	object-fit: contain;
	display: block;
}
i.coedpi-atajo-inline.is-gold img,
span.coedpi-atajo-inline.is-gold img {
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
.athlete-filters-toggle__icon .coedpi-atajo-inline img,
.parte-athlete-search__toggle .coedpi-atajo-inline img {
	width: 18px;
	height: 18px;
}
.tutor-kpi-icon .coedpi-atajo-inline img {
	width: 28px;
	height: 28px;
}
.app-header input.search,
.app-header input.coedpi-header-menu-search,
.head-actions input.search,
.head-actions input.coedpi-header-menu-search {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	border: 1px solid var(--line, #e6dcc8) !important;
	color: #1c1915 !important;
	text-align: left;
	background: #faf9f6 !important;
	border-radius: 9px !important;
	width: 190px;
	max-width: 42vw;
	height: 38px !important;
	min-height: 38px !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	padding: 0 12px !important;
	margin: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	pointer-events: auto !important;
	-webkit-user-select: text !important;
	user-select: text !important;
	caret-color: #1c1915 !important;
	cursor: text;
}
.app-header input.search::placeholder,
.app-header input.coedpi-header-menu-search::placeholder {
	color: #8b847c;
	opacity: 1;
}
.app-header input.search:focus,
.app-header input.coedpi-header-menu-search:focus {
	border-color: #c9b89a !important;
	background: #fff !important;
}

/* Alta / datos escuela: logo subir · arrastrar · pegar */
.coedpi-logo-upload {
	position: relative;
	outline: none;
}
.coedpi-logo-upload__drop {
	border: 1.5px dashed var(--line, #e8e2d6);
	border-radius: 14px;
	background: #fbfaf7;
	padding: 18px;
	min-height: 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	transition: border-color .15s ease, background .15s ease;
}
.coedpi-logo-upload__drop.is-drag {
	border-color: #d8b636;
	background: #fff8e6;
}
.coedpi-logo-upload__empty strong {
	display: block;
	font-size: 13px;
	margin-bottom: 6px;
}
.coedpi-logo-upload__empty p {
	margin: 0 0 12px;
	font-size: 12px;
	color: var(--muted, #8a847a);
}
.coedpi-logo-upload__preview {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.coedpi-logo-upload__preview[hidden],
.coedpi-logo-upload__empty[hidden] {
	display: none !important;
}
.coedpi-logo-upload__preview img {
	max-width: 160px;
	max-height: 110px;
	object-fit: contain;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d6);
	padding: 6px;
}

.coedpi-menu-search-pop {
	position: fixed;
	z-index: 2147483000;
	box-sizing: border-box;
	background: #fffaf2;
	border: 1px solid #e6dcc8;
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(28, 25, 21, 0.18);
	max-height: min(50vh, 360px);
	overflow: auto;
	padding: 6px;
}
.coedpi-menu-search-pop[hidden] {
	display: none !important;
}
.coedpi-menu-search-pop__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.coedpi-menu-search-pop__list li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: #1c1915;
}
.coedpi-menu-search-pop__list li i {
	width: 1.4em;
	text-align: center;
	opacity: 0.7;
	font-style: normal;
}
.coedpi-menu-search-pop__list li.is-active,
.coedpi-menu-search-pop__list li:hover {
	background: #efe7d8;
}
.coedpi-menu-search-pop__empty {
	margin: 0;
	padding: 12px;
	text-align: center;
	color: #6f6758;
	font-size: 12px;
}

/* Facturación personal: el badge no debe heredar el cuadrado del icono € */
.billing-summary {
	overflow: hidden;
	min-width: 0;
}
.billing-summary .bill-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 14px;
	min-width: 0;
}
.billing-summary .bill-head > span:not(.badge),
.billing-summary .bill-icon {
	background: var(--gold, #e5bd18);
	color: #292205;
	border-radius: 10px;
	width: 39px;
	height: 39px;
	min-width: 39px;
	flex: 0 0 39px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	font-weight: 800;
	line-height: 1;
}
.billing-summary .bill-head > .badge,
.billing-summary .bill-head .badge.tone-ok {
	width: auto !important;
	height: auto !important;
	min-height: 26px;
	min-width: 0;
	max-width: 100%;
	flex: 0 1 auto;
	padding: 5px 11px !important;
	font-size: 10px !important;
	font-weight: 800;
	letter-spacing: 0.02em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	box-sizing: border-box;
	line-height: 1.2;
}
.billing-summary > small {
	display: block;
	letter-spacing: 0.08em;
}
.billing-summary .amount {
	word-break: break-word;
}
.billing-summary .bill-line {
	gap: 8px;
	flex-wrap: wrap;
}
.billing-summary .bill-line strong {
	text-align: right;
}
@media (max-width: 720px) {
	.member-hero {
		grid-template-columns: 1fr !important;
	}
}

/* Estadísticas escuela */
.coedpi-stats-page {
	display: grid;
	gap: 24px;
	padding-bottom: 24px;
	min-width: 0;
	max-width: 100%;
	overflow-x: clip;
}
.coedpi-stats-page > *,
.coedpi-stats-block,
.coedpi-stats-charts,
.coedpi-stats-charts > .card,
.coedpi-stat-chart-card,
.coedpi-stat-detail {
	min-width: 0;
	max-width: 100%;
}
.coedpi-stats-hero {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line, #e8e2d6);
	min-width: 0;
}
.coedpi-stats-hero h1 {
	margin: 4px 0 0;
	font-size: 1.85rem;
	letter-spacing: -.02em;
}
.coedpi-stats-school {
	display: inline-flex;
	align-items: center;
	max-width: 360px;
	padding: 7px 11px;
	border-radius: 999px;
	background: #f6f3eb;
	color: #5f594e;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.coedpi-stats-block-head {
	margin-bottom: 10px;
}
.coedpi-stats-block-head h2 {
	margin: 0;
	font-size: 1.05rem;
}
.coedpi-stats-block-head--total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.coedpi-stats-school-total {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 8px 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fff;
}
.coedpi-stats-school-total small {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--muted, #7a7364);
}
.coedpi-stats-school-total strong {
	font-size: 1.35rem;
	line-height: 1;
}
.coedpi-stats-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	min-width: 0;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi {
	cursor: pointer;
	text-align: left;
	border: 1px solid var(--line, #e8e2d6);
	background: #fff;
	border-radius: 12px;
	padding: 14px;
	transition: border-color .15s, box-shadow .15s, transform .12s;
	font: inherit;
	color: inherit;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	min-height: 104px;
	overflow-wrap: anywhere;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi:hover {
	border-color: #d9c878;
	box-shadow: 0 8px 22px rgba(49, 42, 12, .07);
	transform: translateY(-1px);
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi.is-active {
	border-color: var(--gold, #d4af37);
	background: linear-gradient(180deg, #fffdf5 0%, #fff 100%);
	box-shadow: 0 0 0 1px rgba(212, 175, 55, .4);
}
.coedpi-stat-kpi-label {
	display: block;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--muted, #8a847a);
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi strong {
	display: block;
	margin: 8px 0 5px;
	font-size: 1.85rem;
	line-height: 1;
	letter-spacing: -.03em;
	color: #211c08;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi small {
	display: block;
	color: var(--muted, #7a7364);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi.is-warn {
	border-color: #efc08a;
	background: #fffaf3;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi.is-warn strong {
	color: #9a3b12;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi.is-ok {
	border-color: #d7e6cf;
	background: #f7fbf5;
}
.coedpi-stats-kpi-grid > .coedpi-stat-kpi.is-ok strong {
	color: #3d5a2a;
}
.coedpi-stats-charts {
	margin: 0;
}
.coedpi-stat-chart-card .section-title {
	margin-bottom: 12px;
}
.coedpi-stat-chart-total {
	display: inline-grid;
	place-items: center;
	min-width: 34px;
	height: 34px;
	padding: 0 9px;
	border-radius: 999px;
	background: #f3efe6;
	font-size: 14px;
}
.coedpi-stat-donut-wrap {
	display: grid;
	grid-template-columns: minmax(140px, 180px) 1fr;
	gap: 18px;
	align-items: center;
}
.coedpi-stat-donut {
	width: 168px;
	height: 168px;
	border-radius: 50%;
	position: relative;
	margin: 0 auto;
}
.coedpi-stat-donut-hole {
	position: absolute;
	inset: 22%;
	border-radius: 50%;
	background: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-shadow: inset 0 0 0 1px var(--line, #e8e2d6);
}
.coedpi-stat-donut-hole strong {
	font-size: 1.35rem;
	line-height: 1.1;
}
.coedpi-stat-donut-hole small {
	font-size: 10px;
	color: var(--muted, #8a847a);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.coedpi-stat-legend {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.coedpi-stat-legend li {
	display: grid;
	grid-template-columns: 12px 1fr auto;
	gap: 8px;
	align-items: center;
	font-size: 13px;
	cursor: pointer;
	padding: 6px 8px;
	border-radius: 8px;
}
.coedpi-stat-legend li:hover {
	background: #faf8f3;
}
.coedpi-stat-swatch {
	width: 12px;
	height: 12px;
	border-radius: 3px;
	display: block;
}
.coedpi-stat-legend-val em {
	font-style: normal;
	color: var(--muted, #8a847a);
	font-size: 11px;
}
.coedpi-stat-bars {
	display: grid;
	gap: 12px;
}
.coedpi-stat-bar-row {
	display: grid;
	grid-template-columns: minmax(90px, 32%) 1fr auto;
	gap: 10px;
	align-items: center;
	font-size: 13px;
	cursor: pointer;
	padding: 6px 0;
}
.coedpi-stat-bar-label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 600;
}
.coedpi-stat-bar-track {
	height: 10px;
	background: #f0ebe2;
	border-radius: 999px;
	overflow: hidden;
}
.coedpi-stat-bar-fill {
	height: 100%;
	border-radius: 999px;
	min-width: 4px;
	transition: width .35s ease;
}
.coedpi-stat-bar-val {
	font-weight: 700;
	white-space: nowrap;
}
.coedpi-stat-bar-val small {
	font-weight: 500;
	color: var(--muted, #8a847a);
}
.coedpi-stat-empty,
.coedpi-stat-empty-cell {
	color: var(--muted, #8a847a);
	font-size: 13px;
	padding: 16px;
}
.coedpi-stat-detail {
	margin-top: 0;
}
.coedpi-stat-detail-head {
	align-items: flex-start;
}
.coedpi-stat-detail-tools {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.coedpi-stat-filter-label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--muted, #8a847a);
}
.coedpi-stat-filter-label select {
	min-width: 0;
	width: 100%;
	max-width: 280px;
	padding: 9px 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fff;
	font-size: 13px;
	box-sizing: border-box;
}
.coedpi-stat-filter-chip {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 12px;
	padding: 8px 12px;
	border-radius: 10px;
	background: #fff8e6;
	border: 1px solid #ead48a;
	font-size: 13px;
	color: #5c4a12;
}
.coedpi-stat-chip-clear {
	border: 0;
	background: #fff;
	border-radius: 999px;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	color: #3d4a1f;
}
.coedpi-stat-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0 12px;
}
.coedpi-stat-tab {
	border: 1px solid var(--line, #e8e2d6);
	background: #faf8f3;
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	color: var(--muted, #7a7364);
}
.coedpi-stat-tab.is-active {
	background: var(--olive, #3d4a1f);
	border-color: var(--olive, #3d4a1f);
	color: #fff;
}
.coedpi-stat-table-wrap {
	overflow: auto;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
}
.coedpi-stat-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.coedpi-stat-table th,
.coedpi-stat-table td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid var(--line, #ece7dc);
}
.coedpi-stat-table th {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--muted, #8a847a);
	background: #faf8f3;
}
.coedpi-stat-table tbody tr:last-child td {
	border-bottom: 0;
}
.coedpi-stat-row.is-highlight {
	background: #fffbea;
}
.coedpi-stat-row-action {
	white-space: nowrap;
}
.coedpi-stat-muted {
	color: var(--muted, #8a847a);
	font-size: 12px;
}
.coedpi-stat-op-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: 12px;
	min-width: 0;
}
.coedpi-stat-op-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s, box-shadow .15s;
}
.coedpi-stat-op-card:hover {
	border-color: #d9c878;
	box-shadow: 0 6px 16px rgba(49, 42, 12, .07);
}
.coedpi-stat-op-card small {
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--muted, #8a847a);
}
.coedpi-stat-op-card strong {
	font-size: 1.7rem;
	line-height: 1.1;
}
.coedpi-stat-op-card em {
	font-style: normal;
	font-size: 13px;
	color: var(--muted, #7a7364);
}
.coedpi-stat-op-card.is-warn {
	border-color: #efc08a;
	background: #fffaf3;
}
.coedpi-stat-op-card.is-ok {
	border-color: #d7e6cf;
	background: #f7fbf5;
}
.coedpi-stat-op-go {
	font-size: 12px;
	font-weight: 700;
	color: var(--olive, #3d4a1f);
	margin-top: 4px;
}
/* Sidebar colapsado: KPI a 2 cols y charts apilados (evita cards fuera del viewport). */
@media (max-width: 1050px) {
	.coedpi-stats-kpi-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.two-col.coedpi-stats-charts {
		grid-template-columns: 1fr;
	}
	.coedpi-stat-donut-wrap {
		grid-template-columns: minmax(0, 180px) minmax(0, 1fr);
	}
}
@media (max-width: 760px) {
	.coedpi-stats-hero {
		align-items: flex-start;
		flex-direction: column;
	}
	.coedpi-stats-school {
		max-width: 100%;
	}
	.coedpi-stats-block-head--total {
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.coedpi-stats-block-head--total .coedpi-stats-school-total {
		margin-left: 0;
	}
	.coedpi-stat-donut-wrap {
		grid-template-columns: 1fr;
		justify-items: center;
	}
	.coedpi-stat-bar-row {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.coedpi-stat-detail-head.section-title {
		flex-direction: column;
		align-items: stretch;
	}
	.coedpi-stat-detail-tools,
	.coedpi-stat-filter-label {
		width: 100%;
	}
	.coedpi-stat-filter-label select {
		max-width: 100%;
	}
	.coedpi-stat-op-grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 430px) {
	.coedpi-stats-kpi-grid {
		grid-template-columns: 1fr;
	}
}

/* Currículum formador = ficha pública de colegiado (coedpi.es) */
.coedpi-cv-ficha {
	margin: 0 0 28px;
	padding: 18px;
	border: 1px solid var(--line, #e5e1d4);
	border-radius: 14px;
	background: #fff;
}
.coedpi-cv-ficha-head {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 14px;
}
.coedpi-cv-ficha-foto {
	width: 112px;
	height: 112px;
	object-fit: cover;
	border-radius: 10px;
	background: #f3f0e6;
	flex-shrink: 0;
}
.coedpi-cv-ficha-foto--empty {
	border: 1px dashed #d7d2c3;
}
.coedpi-cv-kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--muted, #6b675c);
}
.coedpi-cv-ficha-meta h3 {
	margin: 0 0 8px;
	font-size: 1.25rem;
	line-height: 1.25;
}
.coedpi-cv-ids {
	margin: 0;
	font-size: 14px;
	color: var(--ink, #211c08);
}
.coedpi-cv-extracto {
	font-size: 15px;
	line-height: 1.5;
	margin: 0 0 14px;
}
.coedpi-cv-empty {
	margin: 0;
	color: var(--muted, #6b675c);
	font-size: 13px;
}
.coedpi-cv-acc-item {
	border-top: 1px solid var(--line, #e5e1d4);
}
.coedpi-cv-acc-item summary {
	cursor: pointer;
	list-style: none;
	padding: 12px 4px;
	font-weight: 700;
	font-size: 15px;
}
.coedpi-cv-acc-item summary::-webkit-details-marker {
	display: none;
}
.coedpi-cv-acc-item summary::after {
	content: "▾";
	float: right;
	font-weight: 400;
	color: var(--muted, #6b675c);
}
.coedpi-cv-acc-item[open] summary::after {
	content: "▴";
}
.coedpi-cv-acc-body {
	padding: 0 4px 14px;
	font-size: 14px;
	line-height: 1.5;
}
.coedpi-cv-acc-body img {
	max-width: 100%;
	height: auto;
}
.coedpi-cv-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding-top: 12px;
	border-top: 1px solid var(--line, #e5e1d4);
	font-size: 13px;
}
.coedpi-cv-edit-title {
	margin: 22px 0 8px;
	font-size: 16px;
}
.coedpi-cv-box {
	margin: 0 0 16px;
	border: 1px solid var(--line, #ddd);
	border-radius: 10px;
	padding: 12px 14px;
}
.coedpi-cv-box legend {
	font-size: 13px;
	font-weight: 700;
	padding: 0 6px;
}
.coedpi-cv-titulo-row {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) minmax(160px, 1.2fr);
	gap: 8px;
	align-items: center;
	margin: 0 0 8px;
}
.coedpi-cv-upload-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin: 0 0 10px;
	padding: 10px;
	border: 1px dashed var(--line, #ddd);
	border-radius: 8px;
	background: #fafafa;
}
.coedpi-cv-diplomas-archivados,
.coedpi-cv-campus-list {
	margin: 0 0 12px;
	padding-left: 18px;
	font-size: 13px;
}
.coedpi-cv-diplomas-archivados li,
.coedpi-cv-campus-list li {
	margin: 0 0 6px;
}
.coedpi-cv-pendiente {
	white-space: pre-wrap;
	font-family: inherit;
	font-size: 13px;
	background: #fff8e1;
	border-radius: 8px;
	padding: 10px 12px;
	margin: 0 0 14px;
}
@media (max-width: 640px) {
	.coedpi-cv-ficha-head {
		flex-direction: column;
	}
	.coedpi-cv-titulo-row,
	.coedpi-cv-upload-row {
		grid-template-columns: 1fr;
	}
}

/* Migas de pan en la barra LOCAL (portal escuelas / área personal) */
.demo-bar.coedpi-breadcrumbs {
	position: sticky;
	top: 74px; /* debajo de .app-header sticky */
	z-index: 39;
	flex-wrap: wrap;
	gap: 8px 14px;
	background: #fffaf0;
	box-shadow: 0 1px 0 #eee0b8;
}
@media (max-width: 1050px) {
	.demo-bar.coedpi-breadcrumbs {
		top: 64px; /* .app-header más bajo en tablet/móvil */
	}
}
/* Anclas: cabecera + migas siempre visibles */
#detalle,
#coedpi-contenido {
	scroll-margin-top: 120px;
}
@media (max-width: 1050px) {
	#detalle,
	#coedpi-contenido {
		scroll-margin-top: 110px;
	}
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	min-width: 0;
	flex: 1 1 auto;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc li {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	line-height: 1.3;
	color: #76621d;
	max-width: 100%;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc li:not(:last-child)::after {
	content: "/";
	margin: 0 8px;
	opacity: 0.55;
	font-weight: 600;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc a {
	color: #5a4a14;
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 28ch;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc a:hover {
	text-decoration: underline;
}
.demo-bar.coedpi-breadcrumbs.is-locked .coedpi-bc a,
.demo-bar.coedpi-breadcrumbs.is-locked .coedpi-bc span {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc span[aria-current="page"] {
	color: #332b0b;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 36ch;
}
.demo-bar.coedpi-breadcrumbs .coedpi-bc-rol {
	margin-left: auto;
	font-style: normal;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #76621d;
	background: rgba(201, 168, 76, 0.18);
	border-radius: 4px;
	padding: 3px 8px;
	white-space: nowrap;
}
@media (max-width: 720px) {
	.demo-bar.coedpi-breadcrumbs .coedpi-bc-rol {
		display: none;
	}
	.demo-bar.coedpi-breadcrumbs .coedpi-bc a,
	.demo-bar.coedpi-breadcrumbs .coedpi-bc span[aria-current="page"] {
		max-width: 18ch;
	}
}

/* Nombre/logo de escuela clicable (Mis escuelas) */
a.coedpi-school-row-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: inherit;
	text-decoration: none;
	max-width: 100%;
}
a.coedpi-school-row-link:hover,
a.coedpi-school-row-link:focus-visible {
	color: var(--gold-ink, #5a4a14);
	text-decoration: underline;
}
.school-card h2 a.coedpi-school-row-link {
	display: inline;
}
.athlete-table td > a.coedpi-school-row-link {
	display: flex;
}

/* Ocultar notas DEV/TEST del prototipo (ya eliminadas en PHP). */
.dev-note,
aside.dev-note {
	display: none !important;
}

/* Paginación listado atletas */
.coedpi-athletes-pager {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 16px;
	align-items: center;
	justify-content: space-between;
	margin: 14px 0 8px;
	padding: 12px 14px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 12px;
	background: #fffef9;
}
.coedpi-athletes-pager__meta {
	margin: 0;
	font-size: 13px;
	font-weight: 650;
	color: var(--muted, #7a7364);
}
.coedpi-athletes-pager__links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}
.coedpi-athletes-pager__num {
	display: inline-flex;
	min-width: 34px;
	height: 34px;
	padding: 0 8px;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	border: 1px solid transparent;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	color: var(--olive, #3d4a1f);
}
a.coedpi-athletes-pager__num:hover,
button.coedpi-athletes-pager__num:hover {
	background: var(--gold-soft, #fff3c4);
	border-color: rgba(230, 195, 92, 0.45);
}
button.coedpi-athletes-pager__num {
	background: transparent;
	cursor: pointer;
	font-family: inherit;
}
.coedpi-athletes-pager__num.is-current {
	background: var(--gold, #e6c35c);
	color: var(--olive, #3d4a1f);
	border-color: transparent;
}
.coedpi-athletes-pager__ellipsis {
	color: var(--muted, #7a7364);
	padding: 0 2px;
}


.coedpi-formador-grupos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
	margin: 0 0 18px;
}
.coedpi-formador-grupo-card .btn.secondary {
	margin-top: 4px;
}

/* Rejilla atajos gestor: oculta en escritorio (móvil la muestra) */
.coedpi-atajos-wrap {
	display: none;
}
/* Formador · Mis grupos: iconos visibles en todos los tamaños */
.quick-strip.coedpi-formador-atajos--grupos .coedpi-atajos-wrap {
	display: block;
}
.atajos-mob-only {
	display: none !important;
}
.coedpi-u-show-mobile-only {
	display: none !important;
}

/* Wells / tiles */
.coedpi-atajos-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: inherit;
	padding: 6px 2px;
	border-radius: 14px;
	box-sizing: border-box;
}
.coedpi-atajos-well {
	width: 76px;
	height: 76px;
	border-radius: 18px;
	background: #efe4a8;
	border: 1px solid #d9c46a;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	flex-shrink: 0;
	position: relative;
}
.coedpi-atajos-well img {
	width: 58px;
	height: 58px;
	object-fit: contain;
	filter: brightness(0) saturate(100%) invert(42%) sepia(55%) saturate(650%) hue-rotate(16deg) brightness(90%) contrast(90%);
}
/* Compact acciones (grupo/atletas): no heredar wells 76×76 del atajo grande */
.athlete-actions-grid .coedpi-atajos-well,
.coedpi-compact-actions-grid .coedpi-atajos-well,
.coedpi-grupo-alumno-actions .coedpi-atajos-well {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
	aspect-ratio: 1 / 1 !important;
	border-radius: 10px !important;
	overflow: hidden !important;
}
.athlete-actions-grid .coedpi-atajos-well img,
.coedpi-compact-actions-grid .coedpi-atajos-well img,
.coedpi-grupo-alumno-actions .coedpi-atajos-well img {
	width: 20px !important;
	height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;
	object-fit: contain !important;
}
@media (max-width: 720px) {
	.athlete-actions-grid .coedpi-atajos-well,
	.coedpi-compact-actions-grid .coedpi-atajos-well,
	.coedpi-grupo-alumno-actions .coedpi-atajos-well {
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		min-height: 48px !important;
		max-width: 48px !important;
		max-height: 48px !important;
		border-radius: 14px !important;
	}
	.athlete-actions-grid .coedpi-atajos-well img,
	.coedpi-compact-actions-grid .coedpi-atajos-well img,
	.coedpi-grupo-alumno-actions .coedpi-atajos-well img {
		width: 28px !important;
		height: 28px !important;
		max-width: 28px !important;
		max-height: 28px !important;
	}
}
.coedpi-atajos-badge {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: #c0392b;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 22px;
	text-align: center;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}
.coedpi-atajos-tile strong {
	text-align: center;
	font-size: 13px;
	font-weight: 800;
	max-width: 112px;
	line-height: 1.25;
	color: #a08a2a;
}
.coedpi-atajos-block-title {
	margin: 0 0 10px;
	padding: 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--muted, #756f68);
}
.coedpi-atajos-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px 8px;
	margin: 0;
	padding: 0;
}
/* Acciones compactas compartidas (atletas / grupo): grid 2×3. Legacy one-line only if no compact class. */
.coedpi-grupo-alumno-actions .coedpi-atajos-grid:not(.athlete-actions-grid):not(.coedpi-compact-actions-grid),
.coedpi-grupo-alumno-actions .coedpi-grupo-alumno-actions-grid:not(.athlete-actions-grid):not(.coedpi-compact-actions-grid) {
	display: inline-flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start;
	gap: 10px;
	width: max-content;
	max-width: none;
	margin: 0;
	padding: 0;
	grid-template-columns: none !important;
}
.athlete-table-card .athlete-td-actions .coedpi-atajos-grid,
.athlete-table-card .athlete-td-actions .coedpi-grupo-alumno-actions-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 56px) !important;
	flex-direction: unset !important;
	flex-wrap: unset !important;
	gap: 8px 6px !important;
	width: max-content !important;
	max-width: 100% !important;
	margin: 0;
	padding: 0;
}
@media (min-width: 721px) {
	.coedpi-grupo-alumno-actions .athlete-actions-grid,
	.coedpi-grupo-alumno-actions .coedpi-compact-actions-grid {
		display: grid !important;
		grid-template-columns: repeat(3, 56px) !important;
		flex-direction: unset !important;
		flex-wrap: unset !important;
		gap: 8px 6px !important;
		width: max-content !important;
		max-width: 100% !important;
		margin: 0;
		padding: 0;
	}
}
.coedpi-atajos-block {
	margin: 0;
	padding: 0;
}
.coedpi-atajos-block + .coedpi-atajos-block {
	margin-top: 20px;
}

/* Panel escuela · Actividad / Accesos: iconos visibles en escritorio y móvil */
.card.coedpi-actividad-atajos .coedpi-atajos-wrap--actividad {
	display: block;
	margin-top: 4px;
}
.card.coedpi-actividad-atajos .coedpi-atajos-grid {
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 14px 10px;
	justify-items: center;
}
.card.coedpi-actividad-atajos .coedpi-atajos-block + .coedpi-atajos-block {
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--line, #e8e2d6);
}

@media (min-width: 761px) {
	.quick-strip.coedpi-gestor-atajos .coedpi-atajos-wrap {
		display: none !important;
	}
	.quick-strip.coedpi-formador-atajos--grupos .coedpi-atajos-wrap {
		display: block !important;
	}
	.atajos-mob-only {
		display: none !important;
	}
	.quick-strip.coedpi-gestor-atajos > .quick-strip-list {
		display: grid !important;
	}
}

/* Contenedor listado acciones rápidas */
.quick-strip > .quick-strip-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.coedpi-renew-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	align-items: flex-end;
	margin: 0 0 14px;
	padding: 14px 16px;
}
.coedpi-renew-toolbar__meta {
	flex: 1 1 100%;
	margin: 0;
	font-size: 13px;
}
.coedpi-renew-toolbar label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted, #6b6560);
}
.coedpi-renew-search {
	flex: 1 1 220px;
}
.coedpi-renew-toolbar input[type="search"],
.coedpi-renew-toolbar input[type="date"],
.coedpi-renew-toolbar select {
	min-height: 38px;
	padding: 6px 10px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 8px;
	font: inherit;
}
.athlete-table-card #coedpi-renew-table {
	min-width: 0;
}
#coedpi-renew-table th:first-child,
#coedpi-renew-table td:first-child {
	width: 42px;
	text-align: center;
}
#coedpi-renew-table small {
	display: block;
	color: var(--muted, #6b6560);
	font-size: 11px;
	margin-top: 2px;
}
.coedpi-renew-check {
	width: 18px;
	height: 18px;
}
.coedpi-renew-person {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.coedpi-renew-person .avatar {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: #f3efe6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 750;
	overflow: hidden;
}
.coedpi-renew-person .avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.coedpi-renew-person__body {
	min-width: 0;
	flex: 1 1 auto;
}
.coedpi-renew-person__line {
	line-height: 1.3;
}
.coedpi-renew-person__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin-top: 4px;
	font-size: 12px;
	color: var(--muted, #6b6560);
}

/* Contratar seguros · listado «con seguro de accidentes» */
.coedpi-seguro-con-card {
	padding: 16px 18px;
}
.coedpi-seguro-con-toolbar {
	margin: 0 0 12px;
}
.coedpi-seguro-con-toolbar .coedpi-renew-search {
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-width: 360px;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted, #6b6560);
}
.coedpi-seguro-con-toolbar input[type="search"] {
	min-height: 38px;
	padding: 6px 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 8px;
	font: inherit;
	font-weight: 500;
	color: inherit;
	background: #fff;
}
.coedpi-seguro-con-toolbar input[type="search"]:focus {
	outline: 2px solid #e5bd18;
	outline-offset: 1px;
	border-color: #d4a017;
}
.athlete-table-card #coedpi-seguro-con-table {
	min-width: 640px;
}
#coedpi-seguro-con-table tbody tr:hover td {
	background: #faf8f2;
}
#coedpi-seguro-con-table .coedpi-seguro-con-person {
	text-decoration: none;
	color: inherit;
}
#coedpi-seguro-con-table .athlete-table-name {
	font-size: 13px;
	font-weight: 750;
	letter-spacing: 0.01em;
}
#coedpi-seguro-con-table .coedpi-seguro-con-grupos {
	color: var(--ink, #2c281f);
	font-size: 12px;
}
#coedpi-seguro-con-table .coedpi-seguro-con-grupos.is-empty {
	color: var(--muted, #6b6560);
	font-style: italic;
}
#coedpi-seguro-con-table .coedpi-seguro-con-cad {
	font-variant-numeric: tabular-nums;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink, #2c281f);
}
#coedpi-seguro-con-table .badge {
	font-size: 11px;
	font-weight: 750;
	padding: 3px 8px;
	border-radius: 999px;
}
#coedpi-seguro-con-table td:last-child {
	text-align: right;
	white-space: nowrap;
}
#coedpi-seguro-con-table .athlete-table-actions a {
	color: var(--olive, #5c6b2a);
	font-size: 12px;
	font-weight: 750;
	text-decoration: none;
}
#coedpi-seguro-con-table .athlete-table-actions a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}
#coedpi-seguro-con-table .coedpi-seguro-con-empty {
	color: var(--muted, #6b6560);
	font-size: 13px;
	padding: 18px 10px;
}

/* Tablas ordenables / filtrables (atletas importados y similares) */
table[data-coedpi-sf] tbody tr.is-sf-hidden,
table[data-coedpi-sf] tbody tr.is-sf-page-hidden {
	display: none !important;
}
table[data-coedpi-sf] th.coedpi-sf-sortable {
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}
table[data-coedpi-sf] th.coedpi-sf-sortable:focus {
	outline: 2px solid #e5bd18;
	outline-offset: 1px;
}
table[data-coedpi-sf] th.coedpi-sf-sortable::after {
	content: " ↕";
	opacity: 0.35;
	font-size: 10px;
	letter-spacing: 0;
	text-transform: none;
}
table[data-coedpi-sf] th.coedpi-sf-sortable.is-sf-asc::after {
	content: " ↑";
	opacity: 1;
}
table[data-coedpi-sf] th.coedpi-sf-sortable.is-sf-desc::after {
	content: " ↓";
	opacity: 1;
}
table[data-coedpi-sf] tr.coedpi-sf-filters th {
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
	padding: 4px 8px 10px;
	vertical-align: top;
	border-bottom: 1px solid var(--line, #e8e2d6);
	background: #faf8f2;
}
table[data-coedpi-sf] tr.coedpi-sf-filters input[type="search"],
table[data-coedpi-sf] tr.coedpi-sf-filters select {
	width: 100%;
	min-height: 32px;
	padding: 4px 8px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 8px;
	font-size: 12px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	background: #fff;
	color: var(--ink, #1c1915);
}
table[data-coedpi-sf] tr.coedpi-sf-filters input[type="search"]:focus,
table[data-coedpi-sf] tr.coedpi-sf-filters select:focus {
	outline: 2px solid #e5bd18;
	outline-offset: 1px;
	border-color: #d4a017;
}

/* Área personal: redes sociales */
.social-profile-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 14px;
}
.social-profile-list > div {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #fff;
}
.social-profile-list i {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: #f5f1e6;
	color: var(--olive, #6d5910);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-style: normal;
	font-weight: 800;
	font-size: 11px;
	flex-shrink: 0;
}
.social-profile-list span:not(.badge) {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1;
}
.social-profile-list strong {
	font-size: 13px;
	font-weight: 700;
}
.social-profile-list small {
	color: var(--muted, #8a847a);
	font-size: 12px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.social-profile-list a {
	color: var(--olive, #6d5910);
	text-decoration: none;
}
.coedpi-red-form {
	display: grid;
	gap: 10px;
}
.coedpi-red-list {
	display: grid;
	gap: 10px;
}
.coedpi-red-row {
	display: grid;
	grid-template-columns: minmax(140px, 180px) 1fr auto;
	gap: 8px;
	align-items: end;
	padding: 10px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #faf8f2;
}
.coedpi-red-row.is-otra {
	grid-template-columns: minmax(120px, 150px) minmax(110px, 160px) 1fr auto;
}
.coedpi-red-row .field-label {
	margin-bottom: 0;
}
.coedpi-red-row .coedpi-red-remove {
	white-space: nowrap;
	margin-bottom: 2px;
}
@media (max-width: 720px) {
	.coedpi-red-row,
	.coedpi-red-row.is-otra {
		grid-template-columns: 1fr;
	}
}

/* Editar atleta: verificación OTP de email nuevo */
.coedpi-email-otp {
	margin: 8px 0 0;
}
.coedpi-email-otp__hint {
	margin: 0 0 8px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--muted, #8a847a);
}
.coedpi-email-otp__msg {
	margin: 0 0 8px;
	padding: 8px 10px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.4;
}
.coedpi-email-otp__msg.is-ok {
	background: #eef8ee;
	border: 1px solid #b7e0b7;
	color: #1a4d3e;
}
.coedpi-email-otp__msg.is-err {
	background: #fdecec;
	border: 1px solid #e8b4b4;
	color: #8a1f1f;
}
.coedpi-email-otp__msg.is-warn {
	background: #fff8e1;
	border: 1px solid #e6c35c;
	color: #5c4e14;
}
.coedpi-email-otp__box {
	display: grid;
	gap: 8px;
	padding: 10px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 10px;
	background: #faf8f2;
}
.coedpi-email-otp__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.coedpi-email-otp__box .field-label {
	margin-bottom: 0;
}
.coedpi-email-otp__box input {
	max-width: 160px;
	letter-spacing: 0.2em;
	font-weight: 700;
}

/* Alertas no bloqueantes: leído / ocultas */
.coedpi-alerta-zone .section-title,
.coedpi-alerta-zone .system-alert-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}
.coedpi-alerta-head-aside {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}
.coedpi-alerta-ocultas-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid var(--line, #e8e2d6);
	border-radius: 999px;
	background: #faf8f2;
	color: var(--muted, #6b6458);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	cursor: pointer;
}
.coedpi-alerta-ocultas-toggle[hidden] {
	display: none !important;
}
.coedpi-alerta-ocultas-toggle:hover,
.coedpi-alerta-ocultas-toggle[aria-expanded="true"] {
	border-color: var(--olive, #5b6b3a);
	color: var(--ink, #222);
	background: #fff;
}
.coedpi-alerta-ocultas-toggle svg {
	display: block;
	flex-shrink: 0;
}
.coedpi-alerta-ocultas-toggle [data-alerta-ocultas-count] {
	min-width: 1.1em;
	text-align: center;
	font-variant-numeric: tabular-nums;
}
.coedpi-alerta-ocultas-panel {
	margin-top: 4px;
	padding: 4px 10px 8px;
	border: 1px dashed var(--line, #e8e2d6);
	border-radius: 12px;
	background: rgba(250, 248, 242, 0.7);
}
.coedpi-alerta-ocultas-panel[hidden] {
	display: none !important;
}
.coedpi-alerta-ocultas-panel .coedpi-alerta-row,
.coedpi-alerta-ocultas-panel .coedpi-alerta-item {
	opacity: 0.78;
}
.coedpi-alerta-row-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
label.coedpi-alerta-leido {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 4px 8px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 650;
	color: var(--muted, #6b6458);
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}
label.coedpi-alerta-leido input {
	margin: 0;
	accent-color: var(--olive, #5b6b3a);
	cursor: pointer;
}
.coedpi-alerta-list:empty {
	display: none;
}
.persistent-alert.coedpi-alerta-row {
	align-items: center;
}
