/* Componentes locais das ferramentas. Carregado somente nas respectivas páginas. */
.ferramenta { padding: 2.5rem 0; }
.ferramenta .container { max-width: 1120px; margin: auto; padding: 0 1rem; }
.ferramenta h2 { margin: 2.5rem 0 .7rem; }
.ferramenta h3 { margin: 1.25rem 0 .5rem; }
.ferramenta p, .ferramenta li { line-height: 1.65; }
.ferramenta-card { background: #fff; border: 1px solid #dbe3ea; border-radius: 16px; box-shadow: 0 8px 24px #12243d12; color: #142033; padding: clamp(1rem, 3vw, 2rem); }
.ferramenta-card h2, .ferramenta-card h3, .ferramenta-card strong { color: #142033; }
.ferramenta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ferramenta-controle { display: grid; gap: .4rem; }
.ferramenta label { color: #142033; font-weight: 700; }
.ferramenta input, .ferramenta select, .ferramenta textarea { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid #9aa9b8; border-radius: 8px; background: #fff; color: #142033; font: inherit; padding: .65rem .75rem; }
.ferramenta textarea { min-height: 180px; resize: vertical; }
.ferramenta input:focus, .ferramenta select:focus, .ferramenta textarea:focus, .ferramenta button:focus-visible { outline: 3px solid #2463eb; outline-offset: 2px; }
.ferramenta-acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.ferramenta button, .ferramenta .botao { min-height: 44px; border: 0; border-radius: 8px; background: #164ec7; color: #fff; cursor: pointer; font: inherit; font-weight: 700; padding: .65rem 1rem; text-decoration: none; }
.ferramenta button:hover, .ferramenta .botao:hover { background: #103d9f; }
.ferramenta button.secundario { background: #e9eef5; color: #142033; }
.ferramenta .aviso-local { background: #e8f7ef; border-left: 4px solid #16824a; border-radius: 6px; color: #142033; font-weight: 700; margin: 1rem 0; padding: .85rem 1rem; }
.ferramenta .ajuda, .ferramenta .status { color: #4a5a6b; font-size: .93rem; }
.ferramenta .erro { color: #a51d2d; font-weight: 700; }
.ferramenta .resultado { margin-top: 1.5rem; }
.ferramenta .resumo { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 1rem 0; }
.ferramenta .resumo div { border: 1px solid #dbe3ea; border-radius: 10px; padding: .8rem; }
.ferramenta .resumo strong { display: block; font-size: 1.25rem; }
.ferramenta .tabela-wrap { overflow-x: auto; border: 1px solid #dbe3ea; border-radius: 10px; }
.ferramenta table { border-collapse: collapse; min-width: 680px; width: 100%; }
.ferramenta th, .ferramenta td { border-bottom: 1px solid #dbe3ea; color: #142033; padding: .65rem; text-align: left; white-space: nowrap; }
.ferramenta th { background: #f3f6fa; }
.ferramenta .campo-oculto { display: none; }
.ferramenta .modelos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.ferramenta .mensagem { white-space: pre-wrap; background: #f5f8fb; border-radius: 10px; min-height: 160px; padding: 1rem; }
.ferramenta details { border-bottom: 1px solid #dbe3ea; padding: .85rem 0; }
.ferramenta summary { cursor: pointer; font-weight: 700; }
@media (max-width: 700px) { .ferramenta-grid, .ferramenta .resumo, .ferramenta .modelos { grid-template-columns: 1fr; } .ferramenta { padding: 1.5rem 0; } }
