/* Production additions: sign-up fields, archive, data page and the legal pages. Brand tokens only. */
.tp-input {
  width: 100%; min-height: var(--tp-tap); padding: 0 var(--tp-space-3); border: var(--tp-border-input); border-radius: var(--tp-radius-md);
  background: var(--tp-map); color: var(--tp-ink); font: var(--tp-text-base) var(--tp-font-sans);
}
.tp-input:focus-visible { outline: 0; border-color: var(--tp-lake); box-shadow: 0 0 0 3px rgba(44, 93, 136, 0.18); }
.tp-input[aria-invalid="true"] { border-color: var(--tp-ink); }
.signup { display: grid; gap: var(--tp-space-2); }
.signup h2 { margin-bottom: var(--tp-space-1); }
.signup__dob { border: 0; padding: 0; margin: 0; min-width: 0; }
.signup__dob .tp-field-help { margin-top: var(--tp-space-1); }
.signup__dobrow { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--tp-space-2); }
.signup__consent { display: grid; grid-template-columns: 24px 1fr; gap: var(--tp-space-2); align-items: start; margin: var(--tp-space-2) 0; font-size: var(--tp-text-sm); line-height: var(--tp-leading-sm); color: var(--tp-ink-map); cursor: pointer; }
.signup__consent input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--tp-ink); }
.signup__consent input:focus-visible { outline: 2px solid var(--tp-lake); outline-offset: 2px; }
.signup__consent a { text-decoration: underline; }
.signup .tp-btn { justify-self: start; }

.archive__list { display: grid; border-top: var(--tp-border-hair); }
.archive__list li { border-bottom: var(--tp-border-hair); }
.archive__list a { display: grid; grid-template-columns: auto 1fr auto; gap: var(--tp-space-4); align-items: center; padding: var(--tp-space-3) 0; min-height: var(--tp-tap); text-decoration: none; }
.archive__list a:hover .archive__meta b { text-decoration: underline; }
.archive__map { font-size: var(--tp-text-xl); white-space: nowrap; }
.archive__meta { display: grid; }
.archive__meta span, .archive__score { font-size: var(--tp-text-sm); color: var(--tp-ink-soft); }
.archive__score { text-align: right; }
@media (max-width: 479px) { .archive__list a { grid-template-columns: auto 1fr; } .archive__score { grid-column: 2; text-align: left; } }

.footer__in { row-gap: 0; }

/* legal pages (static) */
.legal { max-width: 760px; display: grid; gap: var(--tp-space-4); padding-block: var(--tp-space-6); }
.legal h1 { font-size: var(--tp-text-3xl); line-height: var(--tp-leading-3xl); }
.legal h2 { font-size: var(--tp-text-xl); line-height: var(--tp-leading-xl); margin-top: var(--tp-space-4); }
.legal h3 { font-size: var(--tp-text-base); margin-top: var(--tp-space-2); }
.legal p, .legal li { max-width: 68ch; color: var(--tp-ink-map); }
.legal ul { list-style: disc; padding-left: 1.25em; display: grid; gap: var(--tp-space-1); }
.legal a { text-decoration: underline; }
.legal .tbl td, .legal .tbl th { vertical-align: top; text-align: left; }
.legal__meta { font-size: var(--tp-text-sm); color: var(--tp-ink-soft); }

/* narrow phones: wordmark only and tighter nav so Today · Archive · How to play fit at 360 px */
@media (max-width: 479px) {
  .site-header { gap: var(--tp-space-2); }
  .site-header .brand img { height: 17px; }
  .site-header nav { gap: var(--tp-space-3); }
}
@media (max-width: 359px) {
  .site-header nav { gap: var(--tp-space-2); font-size: var(--tp-text-caption, 13px); }
}
