/**
 * Generador llms.txt · componentes de resultado.
 *
 * SSoT de tokens y primitivas: template-parts/cronuts-luxury-shell.php. Aqui NO
 * se redefine ni un token ni un reset. Solo vive lo que el shell no tiene:
 * anillo de indice, filas de componentes, avisos, bloque de archivo y descargas.
 *
 * Un token propio y solo uno: --llms-red-legible. El rojo de marca (#E6243F)
 * mide 4,31:1 sobre el lienzo oscuro, asi que falla AA en texto pequeño y solo
 * pasa en 18 pt o mas. Para etiquetas y cuerpos pequeños la tabla medida de la
 * casa manda #FF5C70 sobre oscuro, que da 6,44:1.
 */

.llms-result {
	display: none;
	margin-top: 40px;
}
.llms-result.is-on {
	display: block;
}

.llms-scope {
	--llms-red-legible: #ff5c70;
}

/* ── Cabecera del resultado ───────────────────────────────────────────── */

.llms-head {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 28px;
	align-items: center;
	padding: 28px 0 32px;
	border-bottom: 1px solid var(--hair);
}
.llms-head__meta {
	min-width: 0;
}
.llms-head__host {
	font-family: var(--font-mono);
	font-size: 13px;
	color: var(--ink-70);
	word-break: break-all;
	display: block;
	margin-bottom: 10px;
}
.llms-head__grade {
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--llms-red-legible);
	display: block;
	margin-bottom: 8px;
}
.llms-head__note {
	font-family: var(--font-body);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ink-55);
	margin: 0;
	max-width: 62ch;
}

.llms-ring {
	position: relative;
	width: 132px;
	height: 132px;
	flex: 0 0 auto;
}
.llms-ring svg {
	width: 132px;
	height: 132px;
	transform: rotate(-90deg);
}
.llms-ring__bg {
	fill: none;
	stroke: rgba(255, 255, 255, 0.08);
	stroke-width: 8;
}
.llms-ring__fg {
	fill: none;
	stroke: var(--cd-red);
	stroke-width: 8;
	stroke-linecap: round;
	stroke-dasharray: 326;
	stroke-dashoffset: 326;
	transition: stroke-dashoffset 900ms var(--ease-lux);
}
.llms-ring__inner {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}
.llms-ring__num {
	font-family: var(--font-display);
	font-size: 40px;
	font-weight: 500;
	line-height: 1;
	color: var(--ink-100);
	font-feature-settings: "tnum";
}
.llms-ring__of {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	color: var(--ink-45);
	margin-top: 4px;
}

/* ── Componentes del indice ───────────────────────────────────────────── */

.llms-axes {
	margin: 8px 0 0;
}
.llms-axis {
	display: grid;
	grid-template-columns: 34px 1fr auto;
	gap: 18px;
	align-items: baseline;
	padding: 18px 0;
	border-bottom: 1px solid var(--hair-soft);
}
.llms-axis__num {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--ink-22);
	letter-spacing: 0.1em;
}
.llms-axis__body {
	min-width: 0;
}
.llms-axis__label {
	display: block;
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink-100);
	margin-bottom: 5px;
}
.llms-axis__detail {
	display: block;
	font-family: var(--font-body);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ink-55);
}
.llms-axis__score {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 500;
	color: var(--ink-70);
	font-feature-settings: "tnum";
	white-space: nowrap;
}
/* Un componente que no se pudo medir no pinta numero. Pinta que no se midio. */
.llms-axis__score.is-unavailable {
	font-family: var(--font-mono);
	font-size: 11.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-45);
}
.llms-axis[data-estado="unavailable"] .llms-axis__label {
	color: var(--ink-70);
}

/* ── Cobertura ────────────────────────────────────────────────────────── */

.llms-coverage {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1px;
	background: var(--hair-soft);
	border: 1px solid var(--hair);
	border-radius: 14px;
	overflow: hidden;
	margin: 24px 0 8px;
}
.llms-kv {
	background: var(--bg-raised);
	padding: 16px 18px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.llms-kv__k {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-45);
}
.llms-kv__v {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 500;
	color: var(--ink-100);
	font-feature-settings: "tnum";
	line-height: 1.1;
}
.llms-kv__n {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--ink-55);
	line-height: 1.5;
}

/* ── Avisos de calidad ───────────────────────────────────────────────── */

.llms-findings {
	margin: 28px 0 0;
	display: grid;
	gap: 14px;
}
.llms-finding {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 16px;
	padding: 18px 20px;
	border: 1px solid var(--hair);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.02);
}
.llms-finding__sev {
	font-family: var(--font-display);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
	height: fit-content;
	align-self: start;
	white-space: nowrap;
}
.llms-finding[data-sev="blocker"] .llms-finding__sev {
	background: rgba(230, 36, 63, 0.12);
	color: var(--llms-red-legible);
}
.llms-finding[data-sev="degraded"] .llms-finding__sev,
.llms-finding[data-sev="error"] .llms-finding__sev {
	background: rgba(255, 138, 0, 0.12);
	color: var(--cd-amber);
}
.llms-finding__body h3 {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ink-100);
	margin: 0 0 8px;
}
.llms-finding__body p {
	font-family: var(--font-body);
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--ink-70);
	margin: 0;
}
.llms-note {
	font-family: var(--font-body);
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--ink-55);
	margin: 0;
}

/* ── El archivo ──────────────────────────────────────────────────────── */

.llms-file {
	margin: 32px 0 0;
}
.llms-file__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}
.llms-file__title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--ink-100);
	margin: 0;
}
.llms-file__note {
	font-family: var(--font-body);
	font-size: 12.5px;
	color: var(--ink-55);
	margin: 0;
}
.llms-pre {
	font-family: var(--font-mono);
	font-size: 12.5px;
	line-height: 1.7;
	color: var(--ink-70);
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--hair);
	border-radius: 14px;
	padding: 20px 22px;
	margin: 0;
	max-height: 460px;
	overflow: auto;
	white-space: pre-wrap;
	word-break: break-word;
	-webkit-overflow-scrolling: touch;
}

/* La puerta. El servidor ya ha truncado la carga: esto solo lo enseña, no lo
   protege. La proteccion vive en el endpoint, que es lo que devtools no salta. */
.llms-gated--locked .llms-pre {
	max-height: 260px;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 98%);
	mask-image: linear-gradient(180deg, #000 55%, transparent 98%);
}

.llms-files {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 12px;
	margin: 20px 0 0;
}
.llms-dl {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 16px 18px;
	border: 1px solid var(--hair);
	border-radius: 14px;
	background: var(--bg-raised);
	text-decoration: none;
	transition: border-color var(--t-base) var(--ease-lux);
}
.llms-dl:hover,
.llms-dl:focus-visible {
	border-color: var(--llms-red-legible);
}
.llms-dl strong {
	font-family: var(--font-mono);
	font-size: 13.5px;
	color: var(--ink-100);
	font-weight: 500;
}
.llms-dl span {
	font-family: var(--font-body);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--ink-55);
}

/* ── Barra de progreso indeterminada ─────────────────────────────────── */

/* Mientras no se sabe cuantas paginas hay, la barra NO finge un porcentaje.
   Se mueve para decir "trabajando" y el numero aparece cuando existe. */
.lux-progress__fill.is-indeterminate {
	animation: llms-slide 1500ms var(--ease-lux) infinite;
}
@keyframes llms-slide {
	0% {
		transform: translateX(-24%);
		opacity: 0.6;
	}
	50% {
		transform: translateX(24%);
		opacity: 1;
	}
	100% {
		transform: translateX(-24%);
		opacity: 0.6;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lux-progress__fill.is-indeterminate {
		animation: none;
	}
	.llms-ring__fg {
		transition: none;
	}
}

@media (max-width: 720px) {
	.llms-head {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.llms-axis {
		grid-template-columns: 1fr auto;
		gap: 10px 14px;
	}
	.llms-axis__num {
		display: none;
	}
	.llms-finding {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.llms-pre {
		font-size: 11.5px;
		padding: 16px;
	}
}
