/* Ferramentas dos Sites — estilos (herda a fonte do tema; cor de destaque por site via --fts-cor) */
.fts-ferramenta {
	--fts-cor: #1f5fa8;
	--fts-cor-texto-botao: #fff;
	--fts-borda: rgba(127, 127, 127, .35);
	--fts-fundo: rgba(127, 127, 127, .07);
	--fts-erro: #b3261e;
	--fts-raio: 8px;
	margin: 1.5em 0 2em;
	line-height: 1.5;
	container-type: inline-size;
}
.fts-ferramenta *, .fts-ferramenta *::before, .fts-ferramenta *::after { box-sizing: border-box; }
.fts-ferramenta .fts-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.fts-resumo { font-size: 1.05em; margin: 0 0 1.2em; }
.fts-sem-js { background: #fff4e5; color: #5a3a00; border: 1px solid #f0c27b; padding: .8em 1em; border-radius: var(--fts-raio); }
.fts-pronta .fts-sem-js { display: none; }

/* Grade formulário + resultado */
.fts-grade { display: grid; gap: 1.5em; grid-template-columns: 1fr; }
@container (min-width: 820px) {
	.fts-tem-resultado .fts-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
}
@supports not (container-type: inline-size) {
	@media (min-width: 1100px) { .fts-tem-resultado .fts-grade { grid-template-columns: 1fr 1fr; align-items: start; } }
}

/* Formulário */
.fts-form { background: var(--fts-fundo); border: 1px solid var(--fts-borda); border-radius: var(--fts-raio); padding: 1.2em 1.1em; }
.fts-form fieldset { border: 0; padding: 0; margin: 0 0 1.2em; min-width: 0; }
.fts-form legend { font-weight: 700; font-size: 1.05em; padding: 0; margin: 0 0 .6em; }
.fts-campo { margin: 0 0 1em; }
.fts-campo label, .fts-campo .fts-rotulo { display: block; font-weight: 600; margin: 0 0 .3em; }
.fts-campo .fts-ajuda { display: block; font-size: .9em; opacity: .85; margin: 0 0 .35em; }
.fts-campo input[type="text"], .fts-campo input[type="url"], .fts-campo input[type="number"], .fts-campo select, .fts-campo textarea {
	width: 100%; min-height: 44px; padding: .55em .75em; font: inherit; font-size: 1em; color: inherit;
	background: #fff; border: 1px solid var(--fts-borda); border-radius: 6px;
}
.fts-campo textarea { line-height: 1.4; }
.fts-campo input:focus-visible, .fts-campo select:focus-visible, .fts-campo textarea:focus-visible,
.fts-botao:focus-visible, .fts-ferramenta a:focus-visible, .fts-erros-resumo:focus-visible {
	outline: 3px solid var(--fts-cor); outline-offset: 2px;
}
.fts-campo input[aria-invalid="true"], .fts-campo select[aria-invalid="true"] { border-color: var(--fts-erro); border-width: 2px; }
.fts-erro { color: var(--fts-erro); font-weight: 600; margin: .35em 0 0; font-size: .95em; }
.fts-erros-resumo { border: 2px solid var(--fts-erro); border-radius: var(--fts-raio); padding: .8em 1em; margin: 0 0 1.2em; background: #fff; }
.fts-erros-resumo .fts-erros-titulo { margin: 0 0 .4em; font-weight: 700; color: var(--fts-erro); }
.fts-erros-resumo ul { margin: 0; padding-left: 1.2em; }
.fts-erros-resumo a { color: var(--fts-erro); }

.fts-linha-campos { display: grid; gap: .8em; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.fts-linha-campos .fts-campo { margin: 0; }
.fts-sufixo { display: flex; align-items: center; gap: .4em; }
.fts-sufixo input { flex: 1 1 auto; min-width: 0; }
.fts-sufixo span { white-space: nowrap; opacity: .85; }

.fts-radios { display: flex; flex-wrap: wrap; gap: .6em 1.4em; }
.fts-radios label { display: inline-flex; align-items: center; gap: .45em; min-height: 44px; font-weight: 500; cursor: pointer; }
.fts-radios input, .fts-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--fts-cor); }
.fts-check { display: inline-flex; align-items: center; gap: .5em; min-height: 44px; cursor: pointer; }

/* Pessoas / volumes (linhas repetíveis) */
.fts-pessoa, .fts-volume { position: relative; background: #fff; border: 1px solid var(--fts-borda); border-radius: 6px; padding: .8em .9em; margin: 0 0 .8em; }
.fts-pessoa .fts-linha-campos { grid-template-columns: 1fr; }
.fts-modo-proporcional .fts-pessoa .fts-linha-campos { grid-template-columns: 1fr 1fr; }
.fts-volume-titulo { font-weight: 700; margin: 0 0 .5em; }
.fts-remover { position: absolute; top: .4em; right: .4em; min-width: 44px; min-height: 44px; border: 1px solid var(--fts-borda); background: #fff; color: inherit; border-radius: 6px; cursor: pointer; font-size: 1.2em; line-height: 1; }
.fts-remover[disabled] { opacity: .35; cursor: not-allowed; }
.fts-pessoa .fts-linha-campos, .fts-volume .fts-linha-campos { padding-right: 52px; }
.fts-contagem { font-size: .9em; opacity: .8; margin: 0 0 .8em; }

/* Botões */
.fts-botao {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6em 1.2em;
	font: inherit; font-weight: 700; color: var(--fts-cor-texto-botao); background: var(--fts-cor);
	border: 2px solid var(--fts-cor); border-radius: 6px; cursor: pointer; text-decoration: none; line-height: 1.2;
}
.fts-botao:hover { filter: brightness(.92); }
.fts-botao[disabled] { opacity: .5; cursor: not-allowed; }
.fts-botao-sec { background: #fff; color: var(--fts-cor); }
.fts-botao-sec:hover { background: var(--fts-fundo); }
.fts-botao-link { background: none; border-color: transparent; color: var(--fts-cor); text-decoration: underline; padding-left: .3em; padding-right: .3em; }
.fts-acoes { display: flex; flex-wrap: wrap; gap: .6em; align-items: center; margin: 1em 0 0; }
.fts-acoes-resultado { display: flex; flex-wrap: wrap; gap: .6em; margin: 1em 0; }

/* Resultado */
.fts-resultado { border: 2px solid var(--fts-cor); border-radius: var(--fts-raio); padding: 1.2em 1.1em; background: #fff; }
.fts-resultado[hidden] { display: none; }
.fts-resultado-titulo { margin: 0 0 .8em; font-size: 1.3em; }
.fts-resultado-titulo:focus { outline: none; }
.fts-tabela { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: 1em; }
.fts-tabela th, .fts-tabela td { text-align: left; padding: .55em .6em; border-bottom: 1px solid var(--fts-borda); vertical-align: top; }
.fts-tabela thead th { font-size: .85em; text-transform: uppercase; letter-spacing: .03em; opacity: .8; }
.fts-tabela tbody th, .fts-tabela tfoot th { text-transform: none; letter-spacing: 0; font-weight: 600; }
@media (max-width: 600px) { .fts-ferramenta { font-size: max(1em, 17px); } }
.fts-tabela tfoot th, .fts-tabela tfoot td { font-weight: 700; border-top: 2px solid var(--fts-cor); border-bottom: 0; }
.fts-tabela .fts-valor { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fts-dados { margin: 0 0 1em; padding: 0; }
.fts-dados > div { padding: .6em 0; border-bottom: 1px solid var(--fts-borda); }
.fts-dados dt { font-weight: 600; font-size: .9em; text-transform: uppercase; letter-spacing: .03em; opacity: .8; }
.fts-dados dd { margin: 0; }
.fts-destaque { font-size: 1.5em; font-weight: 700; font-variant-numeric: tabular-nums; }
.fts-dado-principal .fts-destaque { color: var(--fts-cor); }
.fts-nota { font-size: .9em; opacity: .85; }
.fts-dados-grid { display: grid; gap: .6em; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.fts-dados-grid > div { border: 1px solid var(--fts-borda); border-radius: 6px; padding: .7em .8em; }
.fts-indicador-nc .fts-destaque { font-size: 1em; font-weight: 600; opacity: .85; }
.fts-regra { font-size: .95em; margin: .8em 0; }
.fts-avisos { background: #fff8e6; border-left: 4px solid #d99a1e; padding: .6em .9em; margin: .8em 0; border-radius: 4px; }
.fts-avisos ul { margin: 0; padding-left: 1.1em; }
.fts-previa textarea, .fts-saida { width: 100%; font: inherit; font-size: .95em; padding: .6em; border: 1px solid var(--fts-borda); border-radius: 6px; }
.fts-saida { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; word-break: break-all; }
.fts-print-carimbo { display: none; font-size: .85em; opacity: .8; }

/* Texto explicativo abaixo da ferramenta */
.fts-explicacao { margin: 2em 0 0; }
.fts-explicacao h2, .fts-explicacao h3 { margin-top: 1.4em; }
.fts-explicacao details { border: 1px solid var(--fts-borda); border-radius: 6px; padding: .5em .9em; margin: 0 0 .6em; }
.fts-explicacao summary { font-weight: 600; cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.fts-compacta .fts-explicacao { display: none; }
.fts-link-completa { margin: 1em 0 0; }

/* Guias relacionados (links de saída) */
.fts-guias{margin:2em 0 0}.fts-guias ul{margin:0;padding-left:1.2em}.fts-guias li{margin:.35em 0}

/* Lista de ferramentas */
.fts-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1em; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.fts-lista li { border: 1px solid var(--fts-borda); border-radius: var(--fts-raio); padding: 1em 1.1em; }
.fts-lista h2, .fts-lista h3 { margin: 0 0 .4em; font-size: 1.15em; }
.fts-lista p { margin: 0 0 .6em; }

@media (prefers-reduced-motion: reduce) {
	.fts-ferramenta * { scroll-behavior: auto !important; transition: none !important; }
}

/* Impressão: só a ferramenta (formulário + resultado), sem menu, barra lateral ou anúncios */
@media print {
	body.fts-modo-impressao { visibility: hidden !important; }
	body.fts-modo-impressao .fts-ferramenta.fts-imprimindo { visibility: visible !important; position: absolute !important; left: 0; top: 0; width: 100% !important; margin: 0; padding: 0 8mm; }
	body.fts-modo-impressao .fts-ferramenta.fts-imprimindo * { visibility: visible !important; }
	.fts-imprimindo .fts-grade { grid-template-columns: 1fr !important; }
	.fts-imprimindo .fts-botao, .fts-imprimindo .fts-acoes, .fts-imprimindo .fts-acoes-resultado, .fts-imprimindo .fts-remover, .fts-imprimindo .fts-previa, .fts-imprimindo .fts-sem-js, .fts-imprimindo .fts-explicacao, .fts-imprimindo .fts-link-completa { display: none !important; }
	.fts-imprimindo .fts-print-carimbo { display: block !important; }
	.fts-imprimindo .fts-form, .fts-imprimindo .fts-resultado { border-color: #999; break-inside: avoid; }
}
