/* Privacy and terms pages. Uses the tokens and header/footer from styles.css. */
.legal-page { background: var(--paper); }
.legal { padding: calc(var(--header-h) + 56px) 0 96px; }
.legal-col { max-width: 720px; }
.legal h1 { font-size: clamp(40px, 6vw, 72px); line-height: 1.02; letter-spacing: -.035em; font-weight: 700; margin-bottom: 24px; }
.legal-meta { font: 500 13px/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 18px; }
.legal-lead { font-size: 21px; line-height: 1.45; color: var(--ink-soft); margin-bottom: 36px; }
.legal h2 { font-size: 26px; line-height: 1.15; letter-spacing: -.02em; margin: 52px 0 14px; }
.legal p, .legal li { color: var(--ink); }
.legal p { margin-bottom: 16px; }
.legal ul { padding-left: 1.2em; margin: 0 0 16px; }
.legal li { margin-bottom: 8px; }
.legal a { text-underline-offset: 3px; }
.legal-summary { background: #fff; border: 1px solid var(--line-light); border-radius: 16px; padding: 24px 28px 12px; margin-bottom: 8px; }
.legal-summary h2 { margin: 0 0 12px; font-size: 20px; }
.legal-facts { margin: 0 0 20px; border-top: 1px solid var(--line-light); }
.legal-facts div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line-light); }
.legal-facts dt { color: var(--ink-soft); font-size: 15px; }
.legal-facts dd { margin: 0; }
.table-wrap { overflow-x: auto; margin: 0 0 20px; }
.legal table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: 16px; }
.legal th, .legal td { text-align: left; vertical-align: top; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line-light); }
.legal th { font: 500 12px/1.2 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.changelog { list-style: none; padding: 0; }
.ph { background: #FFE98A; color: #3a2d00; padding: 0 4px; border-radius: 3px; }
@media (max-width: 600px) { .legal-facts div { grid-template-columns: 1fr; gap: 2px; } .legal { padding-top: calc(var(--header-h) + 36px); } }
.toc { margin: 28px 0 8px; }
.toc h2 { margin: 0 0 10px; font-size: 20px; }
.toc ol { margin: 0; padding-left: 1.4em; columns: 2; column-gap: 40px; }
.toc li { margin-bottom: 4px; break-inside: avoid; }
.legal h3 { font-size: 19px; margin: 28px 0 10px; letter-spacing: -.01em; }
@media (max-width: 600px) { .toc ol { columns: 1; } }
/* Phones: tables become stacked rows so nothing scrolls sideways. */
@media (max-width: 640px) {
  .legal table { min-width: 0; display: block; }
  .legal thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .legal tbody, .legal tr, .legal td { display: block; }
  .legal tr { padding: 14px 0; border-bottom: 1px solid var(--line-light); }
  .legal td { border: 0; padding: 4px 0; overflow-wrap: anywhere; }
  .legal td[data-label]::before { content: attr(data-label); display: block; font: 500 12px/1.2 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 2px; }
  .legal td:first-child { font-weight: 600; }
  .legal-summary { padding: 20px 18px 8px; }
  .legal-lead { font-size: 19px; }
}
