/* Accesibilidad.
   El MCP de CrocoBuilder no deja escribir el estado `focusVisible`: aparece en
   su registro de estados pero las escrituras se descartan en silencio. Como
   `:focus` a secas también dispara al hacer clic con el ratón —justo lo que
   `:focus-visible` existe para evitar—, la capa correcta se resuelve aquí. */

/* 1. Retira el anillo cuando el foco NO viene de teclado. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

/* 2. Anillo consistente para navegación por teclado. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.bt-btn:focus-visible,
.bt-field:focus-visible,
.bt-tab:focus-visible {
	outline: 3px solid var(--bt-green-600, #13996f);
	outline-offset: 2px;
	border-radius: var(--bt-radius-sm, 14px);
}

/* Sobre superficies verdes el anillo verde desaparece: se invierte. */
.bt-btn-primary:focus-visible {
	outline-color: var(--bt-ink, #162638);
}

/* Salto al contenido. Visible sólo al recibir foco. */
.bt-skip-link {
	position: absolute;
	left: var(--bt-space-4, 16px);
	top: -100px;
	z-index: 9999;
	padding: var(--bt-space-3, 12px) var(--bt-space-4, 16px);
	background: var(--bt-surface, #fff);
	color: var(--bt-ink, #162638);
	border-radius: var(--bt-radius-sm, 14px);
	box-shadow: var(--bt-shadow-md, 0 16px 38px rgba(22, 38, 56, .075));
	text-decoration: none;
	font-weight: var(--bt-w-semi, 620);
	transition: top .18s ease;
}

.bt-skip-link:focus { top: var(--bt-space-4, 16px); }

/* Objetivo táctil mínimo. Los badges quedan fuera: no son interactivos. */
:where(a, button)[class*="bt-btn"],
.bt-tab {
	min-height: 44px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	.bt-btn:hover,
	.bt-card-elevated:hover { transform: none; }
}

@media (prefers-contrast: more) {
	:root {
		--bt-line: rgba(138, 158, 181, .42);
		--bt-line-strong: rgba(138, 158, 181, .62);
		--bt-ink-muted: #445466;
	}
}
