.catalog-controls { margin-top: 28px; padding: 24px; }
.catalog-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; }
.catalog-filters label { display: grid; gap: 7px; font-weight: 650; }
.catalog-filters input[type=search], .catalog-filters select { min-height: 44px; min-width: min(270px, 100%); padding: 9px; border: 1px solid #9caec2; border-radius: 8px; background: white; }
.catalog-filters .favorite-filter { display: flex; align-items: center; min-height: 44px; }
.catalog-group, .recent-tools { margin-top: 32px; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px,100%),1fr)); gap: 16px; }
.catalog-card { padding: 20px; display: flex; flex-direction: column; align-items: flex-start; }
.catalog-card h3 { margin: 12px 0 6px; font-size: 1.1rem; }
.catalog-card p { flex: 1; }
.catalog-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #e7f0ff; color: #174d8a; font-size: 1.3rem; }
.catalog-card button:focus-visible, .catalog-filters :focus-visible { outline: 3px solid #245fa6; outline-offset: 3px; }
[hidden] { display: none !important; }
.catalog-card { position: relative; }
.catalog-card h3 a::after { content: ''; position: absolute; inset: 0; }
.catalog-card:focus-within { outline: 3px solid #245fa6; outline-offset: 3px; }
.image-dimensions { display: flex; gap: 16px; flex-wrap: wrap; }
.image-dimensions input { display: block; width: 150px; max-width: 100%; padding: 9px; }
#image-preview { max-width: 100%; max-height: 550px; background: repeating-conic-gradient(#ddd 0% 25%, #fff 0% 50%) 0 0 / 20px 20px; }
.tool-panel .tool-text-input { display: block; width: 100%; max-width: 100%; padding: 12px; border: 1px solid #9caec2; border-radius: 8px; }
.tool-panel fieldset { margin-top: 20px; }
.tool-panel fieldset label { display: inline-flex; gap: 6px; margin: 8px 18px 8px 0; align-items: center; }

/* Relatório incremental da auditoria SEO. */
#seo-report table { width: 100%; border-collapse: collapse; text-align: left; }
#seo-report th, #seo-report td { padding: .75rem; border-bottom: 1px solid var(--border-color, #80808055); vertical-align: top; }
#seo-report td:first-child { min-width: 15rem; overflow-wrap: anywhere; }
#seo-report td:last-child { min-width: 18rem; }
#seo-report textarea { width: 100%; box-sizing: border-box; }
#seo-report td:nth-child(3) { min-width: 15rem; white-space: pre-line; overflow-wrap: anywhere; }
#seo-report tr[data-http-status="404"] td:nth-child(4) { color: #c62828; font-weight: 700; }
