/* DupeEats · legal.css (block B §4.3): only on the legal and trust pages. ≤ 2 KB gzip. */
.legal-head { margin-bottom: var(--s-5); }
.legal-meta { font-size: var(--fs-sm); color: var(--muted); }
.legal-archive-note { padding: var(--s-3) var(--s-4); border-radius: var(--r-sm); background: var(--sunken); font-size: var(--fs-sm); }
.legal-summary { max-width: 70ch; margin: 0 0 var(--s-5); padding: var(--s-4) var(--s-5); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--bg); }
.legal-summary h2 { font-size: var(--fs-md); margin-bottom: var(--s-2); }
.legal-summary ul { display: grid; gap: var(--s-2); padding-left: 1.25em; list-style: disc; color: var(--ink-2); }
.legal-summary a, .legal-toc a, .legal-versions a { color: var(--cobalt); text-decoration: underline; text-underline-offset: 3px; }
.legal-toc { max-width: 70ch; margin: 0 0 var(--s-5); font-size: var(--fs-sm); }
.legal-toc__title { font-weight: 700; color: var(--ink); cursor: pointer; min-height: 24px; }
.legal-toc ol { margin-top: var(--s-2); }
.legal-toc ol { display: grid; gap: var(--s-1); padding-left: 2em; list-style: decimal; }
.legal-toc a { display: inline-block; padding-block: 2px; }
.legal-identity > * + * { margin-top: 1em; }
.legal-body h2, .legal-body h3 { scroll-margin-top: calc(var(--header, 64px) + var(--s-4)); }
.legal-body code { font-size: .9em; padding: 0 4px; border-radius: 4px; background: var(--sunken); overflow-wrap: anywhere; }
.legal-table-wrap { overflow-x: auto; max-width: 100%; }
.legal-body table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); line-height: 1.45; }
.legal-body th, .legal-body td { padding: var(--s-2) var(--s-3) var(--s-2) 0; border-top: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: break-word; }
.legal-body th { color: var(--ink); font-weight: 700; }
.legal-table code { overflow-wrap: normal; }
.legal-body th[scope="row"] { width: 36%; }
.legal-body dl { display: grid; grid-template-columns: minmax(8rem, max-content) minmax(0, 1fr); gap: var(--s-2) var(--s-4); }
.legal-body dt { font-weight: 700; color: var(--ink); }
.legal-body dd { margin: 0; overflow-wrap: anywhere; }
.legal-placeholder { padding: 0 4px; border-radius: 4px; background: var(--sunken); color: var(--ink); font-style: normal; outline: 1px dashed var(--line-strong); }
.legal-license { padding: var(--s-4); border-radius: var(--r-sm); background: var(--bg); }
.legal-license__version, .legal-versions { font-size: var(--fs-sm); color: var(--muted); }
.legal-versions { max-width: 70ch; margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.legal-versions h2 { font-size: var(--fs-md); color: var(--ink); margin-bottom: var(--s-2); }
.legal-form { display: grid; gap: var(--s-4); max-width: 34rem; margin-top: var(--s-4); padding: var(--s-5); border-radius: var(--r-md); background: var(--bg); }
.legal-form .sf-field { display: grid; gap: var(--s-2); margin: 0; padding: 0; border: 0; min-width: 0; }
.legal-form .sf-label { font-size: var(--fs-sm); font-weight: 700; color: var(--ink); }
.legal-form .sf-optional { font-weight: 400; color: var(--muted); }
.legal-form .sf-input { width: 100%; min-height: 48px; padding: 0 var(--s-4); border: 1px solid var(--control); border-radius: var(--r-sm); background: var(--surface); color: var(--ink); font: inherit; }
.legal-form .sf-textarea { padding: var(--s-3) var(--s-4); resize: vertical; }
.legal-form .sf-input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.legal-form .sf-error { font-size: var(--fs-sm); font-weight: 600; color: oklch(42% 0.17 30); }
.legal-form .sf-choices { display: grid; gap: var(--s-2); }
.legal-form .sf-choice { display: flex; align-items: flex-start; gap: var(--s-3); min-height: 44px; font-size: var(--fs-sm); font-weight: 600; cursor: pointer; }
.legal-form .sf-choice input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
.legal-form .sf-hint { display: block; margin-top: 2px; font-weight: 400; color: var(--ink-2); }
.legal-form .sf-trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.legal-form .form-status { font-size: var(--fs-sm); font-weight: 600; color: var(--ink-2); }
.legal-form .form-status:empty { display: none; }
.legal-form .btn { justify-self: start; }
@media (min-width: 1100px) {
	.legal-layout.has-toc { display: grid; grid-template-columns: minmax(0, 70ch) 260px; gap: var(--s-7); align-items: start; }
	.legal-layout.has-toc .legal-main { grid-column: 1; grid-row: 1; min-width: 0; }
	.legal-layout.has-toc .legal-toc { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--header, 64px) + var(--s-4)); max-height: calc(100vh - 120px); overflow: auto; margin: 0; }
	.legal-toc__details::details-content { content-visibility: visible; height: auto; }
}
@media (max-width: 600px) {
	.legal-summary { padding: var(--s-4); }
	.legal-body dl { grid-template-columns: minmax(0, 1fr); gap: var(--s-1); }
	.legal-body dd { margin-bottom: var(--s-2); }
	.legal-form { padding: var(--s-4); }
	/* Generated tables (storage, processors, retention) become one card per row on phones. */
	.legal-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.legal-table, .legal-table tbody, .legal-table tr, .legal-table td { display: block; width: auto; }
	.legal-table tr { padding: var(--s-3) 0; border-top: 1px solid var(--line); }
	.legal-table td { padding: 2px 0; border: 0; }
	.legal-table td:first-child { font-weight: 700; color: var(--ink); }
	.legal-table td::before { font-weight: 700; color: var(--ink); }
	.legal-table--storage td:nth-child(2)::before { content: "Type: "; }
	.legal-table--processors td:nth-child(2)::before { content: "Role: "; }
	.legal-table--storage td:nth-child(4)::before { content: "When it\2019s set: "; }
	.legal-table--storage td:nth-child(5)::before, .legal-table--retention td:nth-child(2)::before { content: "How long: "; }
	.legal-table--processors td:nth-child(3)::before { content: "What data: "; }
	.legal-table--processors td:nth-child(4)::before { content: "Why: "; }
	.legal-table--processors td:nth-child(5)::before { content: "Where: "; }
	.legal-table--retention td:nth-child(3)::before { content: "Counted from: "; }
}
.legal-es { display: block; font-size: var(--fs-xs); font-weight: 400; color: var(--muted); }
