/* FFCV · Tarea final optativa — estilos acotados a .ffcv-tf para no interferir con el tema */
.ffcv-tf {
	--tf-navy: #0b2545;
	--tf-accent: #e8a317;
	--tf-text: #1d2b3a;
	--tf-muted: #5b6b7c;
	--tf-line: #d5dce4;
	--tf-bg: #ffffff;
	--tf-soft: #f4f6f9;
	--tf-radius: 14px;
	color: var(--tf-text);
	font-size: 16px;
	line-height: 1.5;
	max-width: 900px;
	margin: 0 auto;
	box-sizing: border-box;
}
.ffcv-tf *, .ffcv-tf *::before, .ffcv-tf *::after { box-sizing: border-box; }

.ffcv-tf__head { text-align: center; margin-bottom: 20px; }
.ffcv-tf__org { margin: 0 0 4px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--tf-muted); }
.ffcv-tf .ffcv-tf__title { margin: 0 0 6px; color: var(--tf-navy); font-size: 30px; font-weight: 800; text-transform: uppercase; line-height: 1.15; }
.ffcv-tf__subtitle { margin: 0; color: var(--tf-muted); }

.ffcv-tf__notice {
	background: #fff7e6; border-left: 4px solid var(--tf-accent);
	border-radius: 8px; padding: 14px 16px; margin-bottom: 20px;
}

.ffcv-tf__card {
	background: var(--tf-bg); border: 1px solid var(--tf-line);
	border-radius: var(--tf-radius); padding: 24px; margin-bottom: 20px;
}
.ffcv-tf__eyebrow { margin: 0 0 4px; color: var(--tf-accent); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ffcv-tf .ffcv-tf__h { margin: 0 0 12px; color: var(--tf-navy); font-size: 24px; font-weight: 800; text-transform: uppercase; line-height: 1.2; }
.ffcv-tf .ffcv-tf__sub { margin: 22px 0 6px; color: var(--tf-navy); font-size: 18px; font-weight: 700; }
.ffcv-tf__help { margin: 0 0 12px; color: var(--tf-muted); font-size: 15px; }

.ffcv-tf fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ffcv-tf legend { padding: 0; }

.ffcv-tf__field { display: block; margin-bottom: 14px; }
.ffcv-tf__field > span { display: block; font-weight: 600; margin-bottom: 6px; color: var(--tf-navy); }
.ffcv-tf__field--short { max-width: 240px; }

.ffcv-tf input[type="text"],
.ffcv-tf input[type="date"],
.ffcv-tf textarea {
	width: 100%; max-width: 100%; margin: 0;
	border: 1px solid var(--tf-line); border-radius: 10px;
	padding: 10px 12px; font: inherit; color: var(--tf-text); background: #fff;
	box-shadow: none; height: auto;
}
.ffcv-tf textarea { resize: vertical; min-height: 80px; }
.ffcv-tf input:focus, .ffcv-tf textarea:focus { outline: 2px solid var(--tf-navy); outline-offset: 1px; border-color: var(--tf-navy); }

/* A.1 puntuaciones */
.ffcv-tf__rating { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--tf-line); }
.ffcv-tf__rating legend { float: left; font-weight: 500; }
.ffcv-tf__scale { display: flex; gap: 6px; flex-shrink: 0; margin-left: auto; }
.ffcv-tf__pill { position: relative; cursor: pointer; }
.ffcv-tf__pill input, .ffcv-tf__elopt input, .ffcv-tf__radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ffcv-tf__pill span {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--tf-line); font-weight: 700; color: var(--tf-navy); background: #fff;
	transition: background .15s, color .15s, border-color .15s;
}
.ffcv-tf__pill input:checked + span { background: var(--tf-navy); color: #fff; border-color: var(--tf-navy); }
.ffcv-tf__pill input:focus-visible + span,
.ffcv-tf__elopt input:focus-visible + span,
.ffcv-tf__radio input:focus-visible + span { outline: 2px solid var(--tf-accent); outline-offset: 2px; }

.ffcv-tf__grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

/* Parte B elementos */
.ffcv-tf__elhead, .ffcv-tf__el { display: grid; grid-template-columns: minmax(0, 2.2fr) 56px 90px 56px minmax(0, 1.6fr); gap: 8px; align-items: center; }
.ffcv-tf__elhead { font-size: 13px; color: var(--tf-muted); padding-bottom: 6px; border-bottom: 1px solid var(--tf-line); }
.ffcv-tf__elhead span:nth-child(2), .ffcv-tf__elhead span:nth-child(3), .ffcv-tf__elhead span:nth-child(4) { text-align: center; }
.ffcv-tf__el { padding: 10px 0; border-bottom: 1px solid var(--tf-line); }
.ffcv-tf__ellabel { float: none; font-size: 15px; }
.ffcv-tf__elopt { display: flex; justify-content: center; cursor: pointer; position: relative; }
.ffcv-tf__elopt span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--tf-line);
	background: #fff;
}
.ffcv-tf__optxt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; font-style: normal; }
.ffcv-tf__elopt input:checked + span { border-color: var(--tf-navy); box-shadow: inset 0 0 0 4px #fff; background: var(--tf-navy); }

/* Parte C acciones */
.ffcv-tf__achead, .ffcv-tf__acrow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.ffcv-tf__achead { font-size: 13px; color: var(--tf-muted); padding-bottom: 6px; }
.ffcv-tf__acrow { padding: 6px 0; border-top: 1px solid var(--tf-line); margin-bottom: 4px; }
.ffcv-tf__acrow label { display: block; }
.ffcv-tf__acnum { display: none; margin: 0; font-weight: 700; color: var(--tf-navy); }
.ffcv-tf__actions { margin-bottom: 16px; }

/* Parte D */
.ffcv-tf__radio { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; cursor: pointer; position: relative; }
.ffcv-tf__radio span { padding-left: 34px; position: relative; }
.ffcv-tf__radio span::before {
	content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px;
	border-radius: 50%; border: 2px solid var(--tf-line); background: #fff;
}
.ffcv-tf__radio input:checked + span::before { border-color: var(--tf-navy); background: var(--tf-navy); box-shadow: inset 0 0 0 4px #fff; }

/* Botones */
.ffcv-tf__bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 8px 0 20px; }
.ffcv-tf .ffcv-tf__btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 12px 22px; border-radius: 999px; font: inherit; font-weight: 700;
	cursor: pointer; text-decoration: none; border: 2px solid var(--tf-navy); line-height: 1.2;
}
.ffcv-tf .ffcv-tf__btn--primary { background: var(--tf-navy); color: #fff; }
.ffcv-tf .ffcv-tf__btn--primary:hover { background: #133a66; border-color: #133a66; }
.ffcv-tf .ffcv-tf__btn--ghost { background: #fff; color: var(--tf-navy); }
.ffcv-tf .ffcv-tf__btn--ghost:hover { background: var(--tf-soft); }
.ffcv-tf__btn[hidden] { display: none !important; }
.ffcv-tf__status { color: #1a7f37; font-weight: 600; font-size: 15px; }

.ffcv-tf__result { border-color: var(--tf-navy); border-width: 2px; }
.ffcv-tf__result[hidden] { display: none; }
.ffcv-tf__result textarea { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; background: var(--tf-soft); }

.ffcv-tf__privacy { font-size: 13px; color: var(--tf-muted); text-align: center; margin: 0 0 6px; }
.ffcv-tf__foot { font-size: 13px; color: var(--tf-muted); text-align: center; margin: 0; }

.ffcv-tf__sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Móvil */
@media (max-width: 720px) {
	.ffcv-tf__card { padding: 18px 16px; }
	.ffcv-tf .ffcv-tf__title { font-size: 24px; }
	.ffcv-tf__rating { flex-direction: column; align-items: flex-start; }
	.ffcv-tf__scale { margin-left: 0; }
	.ffcv-tf__grid3 { grid-template-columns: 1fr; }

	.ffcv-tf__elhead { display: none; }
	.ffcv-tf__el { grid-template-columns: repeat(3, auto) 1fr; row-gap: 8px; }
	.ffcv-tf__ellabel { grid-column: 1 / -1; font-weight: 600; }
	.ffcv-tf__elopt { justify-content: flex-start; align-items: center; gap: 6px; padding-right: 10px; }
	.ffcv-tf__optxt { position: static; width: auto; height: auto; overflow: visible; clip: auto; font-size: 14px; }
	.ffcv-tf__elobs { grid-column: 1 / -1; }

	.ffcv-tf__achead { display: none; }
	.ffcv-tf__acrow { grid-template-columns: 1fr; padding: 12px 0; }
	.ffcv-tf__acnum { display: block; }
}