/**
 * Sprint 8 — Fundación de accesibilidad humana (capa global incremental).
 * No declara WCAG AA global. Refuerza foco, targets, landmarks y reduced-motion.
 */
:root {
	--eduia-a11y-focus: 0 0 0 3px rgba(24, 119, 242, 0.45);
	--eduia-a11y-focus-dark: 0 0 0 3px rgba(147, 197, 253, 0.65);
	--eduia-a11y-target: 44px;
}

/* Skip link — primer foco útil */
.eduia-skip-link {
	position: absolute;
	left: 12px;
	top: 12px;
	z-index: 100000;
	padding: 10px 14px;
	min-height: var(--eduia-a11y-target);
	background: #0f172a;
	color: #f8fafc !important;
	border-radius: 10px;
	text-decoration: none !important;
	font-weight: 600;
	transform: translateY(-160%);
	transition: transform 0.15s ease;
}
.eduia-skip-link:focus,
.eduia-skip-link:focus-visible {
	transform: translateY(0);
	outline: none;
	box-shadow: var(--eduia-a11y-focus);
}

/* Targets táctiles mínimos en docks / acciones sociales */
html.eduia-mobile-nav-enabled .eduia-mobile-nav__item,
html.eduia-mobile-nav-enabled .eduia-mobile-nav a,
.eduia-lib-card__cta,
.eduia-lib-card__ghost,
.eduia-feed-card__action,
.eduia-feed-action-tab,
.eduia-pwa-install__btn,
.eduia-pwa-install__close {
	min-height: var(--eduia-a11y-target);
	min-width: var(--eduia-a11y-target);
}

.eduia-pwa-install__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Foco visible reforzado (no quitar outline en teclado) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[role="tab"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
.eduia-mobile-nav__item:focus-visible {
	outline: none;
	box-shadow: var(--eduia-a11y-focus);
}

html[data-theme="dark"] a:focus-visible,
html.dark a:focus-visible,
html.dark-mode a:focus-visible {
	box-shadow: var(--eduia-a11y-focus-dark);
}

/* Contraste de error humano */
.eduia-a11y-error,
.alert-danger,
.form-error,
.text-danger.help-block {
	color: #991b1b;
}

html[data-theme="dark"] .alert-danger,
html.dark .alert-danger {
	color: #fecaca;
}

/* PWA install: nunca cubre dock (refuerzo) */
html.eduia-mobile-nav-enabled .eduia-pwa-install-host {
	bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
	z-index: 1040;
}

/* Reducción de movimiento global */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Zoom 200%: contenedores fluidos; sin truncar foco */
@media (min-resolution: 1.5dppx), (min-width: 0) {
	.eduia-a11y-zoom-safe,
	#eduia-feed,
	.eduia-offline-sync-center__panel {
		max-width: 100%;
		overflow-wrap: anywhere;
	}
}

/* Diálogos: foco y cierre visibles */
.eduia-offline-sync-center__close:focus-visible,
.eduia-offline-sync-center__panel [role="button"]:focus-visible {
	box-shadow: var(--eduia-a11y-focus);
}

/* Contraste automatizable: texto sobre fondos claros (tokens medibles) */
.eduia-a11y-contrast-ok {
	color: #0f172a;
	background: #ffffff;
}
.eduia-a11y-contrast-on-dark {
	color: #f8fafc;
	background: #0f172a;
}

/* Banner offline / sync — región live */
.eduia-offline-app-banner {
	min-height: var(--eduia-a11y-target);
}
.eduia-offline-app-banner__sync,
.eduia-offline-app-banner__center {
	min-height: var(--eduia-a11y-target);
	min-width: var(--eduia-a11y-target);
}
