/* Legal and trust pages: terms, privacy, security (layout "doc").
   Tokens only (see rf.css). Prefix-free class names are scoped under .prose or .legal-*.
   Pieces: page head + facts strip, "In plain words" summary, numbered sections and clauses,
   side table of contents, status tables, contact block. */

/* The side contents column (right rail from 1200px, disclosure above the article below that) lives in rf.css. */

/* ---------- page head ---------- */
.prose .eyebrow{display:block}
.prose .eyebrow+h1{margin-top:.55em}
.prose h1+.lead{margin-top:.8em}
.prose .lead{font-size:clamp(16px,1.5vw,18px);line-height:1.6}
.legal-facts{display:flex;flex-wrap:wrap;gap:6px 28px;margin:1.4em 0 0;padding:12px 0;border-block:1px solid var(--line);font:12.5px/1.5 var(--mono);color:var(--mute)}
.legal-facts div{display:flex;gap:8px}
.legal-facts dt{color:var(--faint)}
.legal-facts dd{margin:0;color:var(--fg)}
.legal-facts a{color:var(--acc)}

/* ---------- In plain words ---------- */
.prose .note.plain{margin-top:1.6em;padding:16px 18px;background:var(--panel);border-color:var(--line);border-left:3px solid var(--ember);border-radius:var(--r)}
.note.plain>div{min-width:0}
.note.plain .eyebrow{margin-bottom:.6em}
.note.plain ul{margin:0;padding-left:1.2em;display:grid;gap:.45em}
.note.plain li+li{margin-top:0}
.note.plain p{font-size:14.5px}
.prose .note.warn,.prose .note.bad,.prose .note.info{font-size:14.5px}
.note>div>*+*{margin-top:.5em}

/* ---------- numbered sections and clauses ---------- */
.prose h2{scroll-margin-top:calc(var(--hdr) + 16px);border-top:1px solid var(--line);padding-top:1.1em;margin-top:2.4em}
.prose h2 .sn{font-family:var(--mono);font-size:.62em;font-weight:500;color:var(--acc);margin-right:.7em;letter-spacing:0;vertical-align:.12em}
.prose h3{scroll-margin-top:calc(var(--hdr) + 16px)}
.cl{display:grid;grid-template-columns:3.1em minmax(0,1fr);gap:0 .4em;margin-top:.9em}
.cl>.n{font:500 12.5px/2.2 var(--mono);color:var(--faint);padding-top:.05em}
.cl>div>*+*{margin-top:.6em}
.cl>div>p:first-child,.cl>div>ul:first-child{margin-top:0}
.cl ul,.cl ol{padding-left:1.25em}
.prose h2+.cl{margin-top:.7em}
@media (max-width:480px){.cl{grid-template-columns:2.4em minmax(0,1fr)}}
.prose strong{font-weight:600}
.prose dfn{font-style:normal;font-weight:600}

/* ---------- tables ---------- */
.prose .scroll{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-top:1.1em}
.prose .scroll table{min-width:560px}
.prose th,.prose td{padding:9px 12px}
.prose td:first-child{font-weight:500}
.prose td code,.prose th code{white-space:nowrap}
.prose td:first-child code{font-weight:400}
.prose .num{font-weight:400}
.prose td .badge{margin-right:4px}
.prose caption{padding:10px 12px 0;font-size:13px;color:var(--mute);font-weight:500}
.prose caption.sr-only{padding:0}

/* ---------- code blocks ---------- */
.code .bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code pre code{white-space:pre}
.prose .code pre{font-size:13px}

/* ---------- security: what is in place vs not ---------- */
.sec-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.2em}
.sec-badges .badge{min-height:28px;padding-inline:10px}
.sec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:1.2em}
@media (max-width:640px){.sec-grid{grid-template-columns:minmax(0,1fr)}}
.sec-col{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px 18px}
.sec-col h3{margin:0 0 .6em;font-size:15px;display:flex;align-items:center;gap:8px}
.sec-col h3 .dot{margin-top:1px}
.sec-col ul{margin:0;padding:0;list-style:none;display:grid;gap:.55em;font-size:14.5px;line-height:1.5}
.sec-col li{padding-left:18px;position:relative;margin:0}
.sec-col li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--line-strong)}
.sec-col.todo{border-style:dashed;border-color:var(--line-strong);background:var(--panel2)}
.sec-col.todo li::before{background:var(--warn)}
.prose .sec-col h3{margin-top:0}

.sla td:last-child,.sla th:last-child{text-align:right}
.sla td:last-child{font-family:var(--mono);font-size:13px;white-space:nowrap}

.legal-contact{margin-top:1.4em;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px 18px}
.legal-contact p{font-size:14.5px}
.legal-contact .row{margin-top:.9em}
.prose .btn{text-decoration:none}
.prose .btn.sec{color:var(--fg)}

.legal-end{margin-top:2.4em;padding-top:1em;border-top:1px solid var(--line);color:var(--mute)}

/* header reference table: values may wrap anywhere so the row never becomes a tall narrow column */
.prose table.hdr{table-layout:auto;min-width:640px}
.prose table.hdr td:nth-child(2){min-width:240px}
.prose table.hdr td:nth-child(2) code,.prose table.hdr td:first-child code{white-space:normal;overflow-wrap:anywhere}
.prose table.hdr td:first-child code{white-space:nowrap}
.prose table.hdr td:nth-child(3){min-width:200px}
