/* track.html's own styles -- extracted from an inline <style> block
   2026-10-14 because an inline block is silently dropped by this
   site's own CSP (_headers: style-src 'self' ...), discovered by
   actually loading the page under that real header, not by reading
   the markup. Deliberately stays close to site.css's existing tokens
   rather than defining its own -- see assets/site.css for --deep,
   --bone, --eye etc. */
.track { min-height: 70vh; padding: clamp(28px, 6vw, 64px) 0; }
.track h1 { font-size: clamp(2rem, 5vw, 3rem); }
.track__form { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.track__form input {
  flex: 1 1 240px; min-width: 0; padding: 13px 16px; border: 1px solid var(--rule);
  border-radius: 999px; font: inherit; font-family: var(--f-mono); text-transform: uppercase; letter-spacing: .03em;
}
.track__hint { margin-top: 10px; color: var(--drift); font-size: .9rem; }
.track__result { margin-top: 32px; max-width: 520px; }
.card { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-lg); padding: clamp(18px, 3vw, 28px); }
.card .status { font: 700 1.4rem var(--f-display); color: var(--deep); }
.card .row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--rule); }
.card .row:first-of-type { border-top: 0; margin-top: 10px; }
.hist { margin-top: 18px; border-top: 1px solid var(--rule); padding-top: 14px; }
.hist li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; font-size: .92rem; color: var(--ink); }
.hist .t { color: var(--drift); font-size: .85rem; white-space: nowrap; }
.err { color: #B14836; margin-top: 14px; }
.scanwrap { margin-top: 18px; }
.scanwrap video { width: 100%; max-width: 360px; border-radius: var(--r-md); background: #000; }
