/* /tools: the directory of the twelve tools. Loads after products.css and reuses its rows (.pi-*), the LED glyph and the status marks.
   Identity: hairline rows, mono addresses, Hartii red only for emphasis, green/amber only as status. No cards, no tiles. */

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.tl-head { max-width: 820px; }
.tl-moving { color: var(--fg); max-width: none; padding-left: 14px; border-left: 2px solid var(--red-hi); font-size: 1.05rem; line-height: 1.5; }

.tl-bar { display: flex; align-items: center; gap: 16px; padding: 8px 0 0; }
.tl-bar[hidden] { display: none; }
.tl-find { flex: 1 1 auto; max-width: 420px; display: block; }
.tl-find input {
  width: 100%; min-height: 44px; padding: 0 14px; border-radius: 6px; border: 1px solid var(--line-2);
  background: var(--ink-850); color: var(--fg); font: 400 16px/1 var(--mono);
}
.tl-find input::placeholder { color: var(--fg-3); }
.tl-find input:focus-visible { outline: 2px solid var(--red-hi); outline-offset: 2px; }
.tl-count { margin: 0; font: 500 12px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); white-space: nowrap; }

.tl-group h2 { display: flex; align-items: baseline; gap: 14px; }
.tl-num { font: 500 12px/1 var(--mono); letter-spacing: .08em; color: var(--red-hi); }
.tl-gnote { margin: 10px 0 0; color: var(--fg-3); font-size: 14px; }
.tl-group[hidden], .tl-item[hidden], .tl-none[hidden] { display: none; }

.tl-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 4px 24px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 80px; }
.tl-list { list-style: none; margin: 0; padding: 0; }
.tl-glyph { align-self: start; width: 64px; height: 64px; }
.tl .pi-foot a { display: inline-block; padding: 14px 0; }
.tl-name { gap: 10px; }
.tl-sum { max-width: 60ch; }
.tl-addr { margin: 10px 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font: 500 11px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); }
.tl-addr code { font: 400 12.5px/1.4 var(--mono); letter-spacing: 0; text-transform: none; color: var(--fg-2); overflow-wrap: anywhere; }
.tl-open { min-height: 44px; min-width: 96px; justify-content: center; align-self: center; }
.tl-open:hover, .tl-open:focus-visible { border-color: var(--red-hi); color: var(--red-hi); }
.tl-open:focus-visible { outline: 2px solid var(--red-hi); outline-offset: 2px; }
.tl-item:hover .pi-glyph { --led: #fff; }
.tl-none { margin-top: 32px; color: var(--fg-2); }

@media (prefers-reduced-motion: reduce) {
  .tl-open { transition: none; }
  .tl-open:hover { transform: none; }
}

@media (max-width: 640px) {
  .tl-item { grid-template-columns: 48px minmax(0, 1fr); gap: 0 16px; padding: 20px 0 22px; }
  .tl-glyph { width: 48px; height: 48px; grid-row: 1 / span 2; }
  .tl-copy { grid-column: 2; }
  .tl-open { grid-column: 1 / -1; grid-row: 3; width: 100%; margin-top: 16px; justify-content: space-between; padding-inline: 16px; }
  .tl-bar { flex-direction: column; align-items: stretch; gap: 8px; }
  .tl-find { max-width: none; }
}
