/* Legal, 404 and sign-in pages. Layered on home.css (tokens, nav, footer, eyebrow). */
body.doc-body { background:#fff; display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; }
body.doc-body > main { flex:1 0 auto; }

.doc { --doc-w:720px; }
.doc-head { background:var(--navy-3); color:var(--on-dark); border-bottom:1px solid var(--line-dark); padding-block:72px 56px; }
.doc-head .inner { max-width:calc(var(--doc-w) + 2 * clamp(20px,4vw,40px)); }
.doc-head .eyebrow { color:var(--teal); }
.doc-head .eyebrow[data-label]::after { content:attr(data-label); }
.doc-head h1 { color:#fff; font-size:clamp(32px,4.2vw,48px); line-height:1.08; letter-spacing:-0.03em; margin:20px 0 18px; }
.doc-head h1 .g { color:var(--teal); }
.doc-head .lead { color:var(--on-dark-2); font-size:18px; line-height:1.55; max-width:60ch; }

.doc-body-wrap { background:#fff; padding-block:48px 112px; }
.doc .narrow { max-width:calc(var(--doc-w) + 2 * clamp(20px,4vw,40px)); }
.prose { max-width:var(--doc-w); font-size:17px; line-height:1.7; color:var(--body); }
.prose > * + * { margin-top:1em; }
.prose .updated { font-family:var(--mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.prose h2 { font-size:25px; line-height:1.25; letter-spacing:-0.02em; margin-top:2.2em; padding-top:1.4em; border-top:1px solid var(--line); scroll-margin-top:84px; }
.prose .updated + h2 { border-top:0; padding-top:0; margin-top:1.6em; }
.prose h3 { font-size:19px; line-height:1.3; margin-top:1.8em; }
.prose h2 + *, .prose h3 + * { margin-top:.7em; }
.prose strong { color:var(--ink); font-weight:600; }
.prose a { color:var(--teal-deep); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.prose a:hover { color:var(--navy); }
.prose ul, .prose ol { padding-left:1.35em; }
.prose li { margin-top:.55em; padding-left:.2em; }
.prose li::marker { color:var(--teal-deep); }
.prose li > ul { margin-top:.5em; }
.prose code { font-family:var(--mono); font-size:.86em; background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:.1em .38em; overflow-wrap:anywhere; }
.prose .tbl { overflow-x:auto; }
.prose table { border-collapse:collapse; width:100%; font-size:15px; }
.prose th, .prose td { text-align:left; padding:10px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
.prose th { font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:500; background:var(--paper); }

/* 404 */
body.doc-404 { background:var(--paper); }
body.doc-404 > main { display:flex; }
.nf { flex:1; background:var(--paper); display:flex; align-items:center; padding-block:96px; }
.nf .inner { text-align:center; }
.nf .eyebrow { justify-content:center; }
.nf h1 { font-size:clamp(34px,4.6vw,52px); line-height:1.08; letter-spacing:-0.03em; margin:20px 0 16px; }
.nf .lead { color:var(--body); font-size:18px; max-width:46ch; margin:0 auto; }
.nf .nf-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:32px; }

/* investor sign-in */
body.access-body { background:var(--navy-3); color:var(--on-dark); min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:32px 20px; }
.access { width:100%; max-width:420px; text-align:center; }
.access .brand { display:flex; justify-content:center; margin-bottom:18px; }
.access .brand b { font-weight:700; letter-spacing:.08em; color:#fff; font-size:19px; }
.access .eyebrow { display:flex; justify-content:center; color:var(--teal); margin-bottom:10px; }
.access .lede { color:var(--on-dark-2); font-size:15px; line-height:1.5; margin:0 0 26px; }
.access .card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:28px 24px; text-align:left; box-shadow:0 20px 50px rgba(0,0,0,.35); }
.access .card h1 { font-size:20px; font-weight:600; color:var(--ink); margin:0 0 6px; text-align:center; }
.access .card .sub { font-size:14px; color:var(--body); margin:0 0 20px; text-align:center; }
.access .card .sub b { color:var(--ink); font-weight:600; }
.access label { display:block; font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:0 0 7px; }
.access input { width:100%; box-sizing:border-box; padding:12px 13px; font-size:16px; font-family:var(--sans); color:var(--ink); background:#fff; border:1px solid var(--line-2); border-radius:6px; outline:none; transition:border-color .15s, box-shadow .15s; }
.access input:focus { border-color:var(--teal-deep); box-shadow:0 0 0 3px rgba(13,148,136,.18); }
.access input.code { letter-spacing:.35em; text-align:center; font-size:20px; font-weight:600; font-family:var(--mono); }
.access button { width:100%; margin-top:16px; height:46px; padding:0 14px; font:600 15px/1 var(--sans); color:var(--navy); background:var(--teal); border:0; border-radius:6px; cursor:pointer; transition:background .15s; }
.access button:hover { background:#3FF0DF; }
.access button:disabled { opacity:.55; cursor:default; }
.access .err { color:var(--rose); font-size:13px; margin:12px 0 0; min-height:1em; }
.access .alt { text-align:center; font-size:13px; color:var(--body); margin:16px 0 0; }
.access .alt a { color:var(--teal-deep); font-weight:600; text-decoration:none; cursor:pointer; }
.access .alt a:hover { text-decoration:underline; }
.access #clerk-captcha { margin-top:14px; display:flex; justify-content:center; }
.access .status { color:var(--on-dark-2); font-size:14px; }

@media (max-width:560px){
  .doc-head { padding-block:48px 40px; }
  .doc-head .lead { font-size:16.5px; }
  .doc-body-wrap { padding-block:32px 72px; }
  .prose { font-size:16.5px; }
  .prose h2 { font-size:22px; }
}
