/* The legal documents as a web page (public pages /privacy.html and /terms.html). The in-app reading uses the same class names in web/src/styles/components.css. */
.legal h2 { font-size: 19px; margin: 32px 0 8px; padding-top: 8px; border-top: 1px solid #e3e0f0; scroll-margin-top: 16px; }
.legal h4 { font-size: 16px; margin: 20px 0 4px; }
.legal p, .legal li { line-height: 1.75; }
.legal ul { margin: 6px 0 10px; }
.legal-clause { display: flex; gap: 10px; margin: 6px 0; }
.legal-num { flex: none; min-width: 2.6em; color: var(--muted); font-variant-numeric: tabular-nums; }
.legal-note { border-top: 1px solid #e3e0f0; border-bottom: 1px solid #e3e0f0; padding: 14px 0; margin: 16px 0; }
.legal-toc { margin: 16px 0 8px; }
.legal-toc ol { margin: 8px 0 0; padding-left: 22px; columns: 2 220px; }
.legal-toc li { margin: 2px 0; }
.legal-table { overflow-x: auto; margin: 10px 0 14px; }
.legal-table table { border-collapse: collapse; width: 100%; font-size: 14.5px; min-width: 480px; }
.legal-table th { text-align: left; font-weight: 600; }
.legal-table th, .legal-table td { padding: 6px 12px 6px 0; border-bottom: 1px solid #e3e0f0; vertical-align: top; line-height: 1.6; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-upcoming { margin-top: 28px; }
.legal-upcoming summary { cursor: pointer; font-weight: 600; }
.bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin-top: 32px; }
.bar button { font: inherit; background: none; border: 1px solid #c9c5e0; border-radius: 8px; padding: 6px 12px; color: var(--primary); cursor: pointer; }
@media print { body { background: #fff; } main { padding: 0; max-width: none; } .card { padding: 0; } .bar, .legal-toc { display: none; } .legal-table { overflow: visible; } a { color: inherit; } }
