/* ---------- free tools ---------- */
.toolgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); gap:1rem;
  margin:2rem 0 0}
.toolcard{border:1px solid var(--border); border-radius:var(--radius-xl); padding:1.25rem;
  background:var(--card); text-decoration:none; color:inherit; display:block}
.toolcard:hover{box-shadow:var(--shadow-lg)}
.toolcard h3{margin:0 0 .375rem; font-size:1rem}
.toolcard p{margin:0; font-size:.8125rem; color:var(--muted-foreground); line-height:1.55}
.toolcard .soon{font-size:.6875rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted-foreground)}
.auditform{display:flex; gap:.5rem; flex-wrap:wrap; margin:2rem 0 0; max-width:38rem}
.auditform .input{flex:1 1 18rem}
.ahead{display:flex; gap:1.25rem; align-items:center; margin:2.5rem 0 1.5rem}
.ascore{display:grid; place-items:center; width:5.5rem; height:5.5rem; border-radius:50%;
  border:3px solid var(--border); flex:none}
.ascore b{font-size:1.75rem; line-height:1; font-variant-numeric:tabular-nums}
.ascore span{font-size:.625rem; color:var(--muted-foreground)}
.ascore.a-good{border-color:var(--success)}
.ascore.a-mid{border-color:var(--warning)}
.ascore.a-low{border-color:var(--destructive)}
.ahead h2{margin:0; font-size:1.25rem}
.agrid{display:grid; gap:0; border:1px solid var(--border); border-radius:var(--radius-xl);
  overflow:hidden}
.arow{display:grid; grid-template-columns:1.5rem 1fr auto; gap:.625rem; align-items:center;
  padding:.75rem 1rem; border-bottom:1px solid var(--border); font-size:.875rem}
.arow:last-child{border-bottom:0}
.aico{font-size:.75rem}
.a-pass .aico{color:var(--success)}
.a-warn .aico{color:var(--warning)}
.a-fail .aico{color:var(--destructive)}
.a-unknown .aico{color:var(--muted-foreground)}
.aval{color:var(--muted-foreground); font-size:.8125rem; text-align:right}
.anote{grid-column:2/-1; margin:.25rem 0 0; font-size:.8125rem; line-height:1.55;
  color:var(--muted-foreground)}
.amatch{margin:2.5rem 0 0; padding:1.5rem; border:1px solid var(--border);
  border-radius:var(--radius-xl); background:var(--card)}
.amatch h2{margin:0 0 .5rem; font-size:1.125rem}
.amatch p{margin:0 0 1rem; color:var(--muted-foreground); line-height:1.6}
.alist{list-style:none; padding:0; margin:0 0 1.25rem; display:grid; gap:.5rem}
.alist li{font-size:.875rem}
.alist span{display:block; font-size:.75rem}
.amatch .btn{margin-right:.5rem}
