/* UFN — USE Frame Notation. Official standards-document style (RFC-like). */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#ffffff; --fg:#1a1a1a; --muted:#5b5b5b; --rule:#d8d8d2;
  --link:#0a3d8f; --link-visited:#5a2a82; --code-bg:#f6f6f3; --code-border:#e2e2da;
  --mark:#a40000; --note-bg:#f4f7fb; --note-border:#c5d6ec;
}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  background:var(--bg); color:var(--fg);
  font-size:16px; line-height:1.6;
}
a{color:var(--link);text-decoration:none}
a:visited{color:var(--link-visited)}
a:hover{text-decoration:underline}

.container{max-width:760px;margin:0 auto;padding:0 28px}

/* ── Top bar (minimal site chrome) ───────────────────────── */
nav{border-bottom:1px solid var(--rule);background:#fafaf8}
nav .container{display:flex;align-items:baseline;justify-content:space-between;padding-top:9px;padding-bottom:9px;max-width:920px}
nav .logo{font-family:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;font-weight:700;font-size:0.95rem;letter-spacing:0.04em;color:var(--fg)}
nav .links{display:flex;gap:18px;font-size:0.82rem;flex-wrap:wrap}
nav .links a{color:var(--muted)}
nav .links a:hover{color:var(--fg)}
nav .dropdown{position:relative}
nav .dropbtn{color:var(--muted);background:none;border:none;padding:0;font:inherit;cursor:pointer;font-size:0.82rem}
nav .dropdown:hover .dropbtn,nav .dropdown:focus-within .dropbtn{color:var(--fg)}
nav .dropbtn .caret{font-size:0.7em;opacity:0.6}
nav .dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--rule);padding:6px 0;min-width:170px;box-shadow:0 6px 18px rgba(0,0,0,0.10);z-index:200}
nav .dropdown:hover .dropdown-menu,nav .dropdown:focus-within .dropdown-menu{display:block}
nav .dropdown-menu a{display:block;padding:6px 16px;color:var(--muted);white-space:nowrap;font-size:0.85rem}
nav .dropdown-menu a:hover{color:var(--fg);background:#f2f2ee}

/* ── RFC masthead ────────────────────────────────────────── */
.rfc{padding:36px 0 64px}
.rfc-header{width:100%;font-family:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;font-size:0.8rem;color:var(--fg);border:none;margin-bottom:34px;line-height:1.5}
.rfc-header td{border:none;padding:1px 0;vertical-align:top}
.rfc-header td.r{text-align:right}
.doc-title{text-align:center;margin:30px 0 6px}
.doc-title h1{font-size:1.7rem;font-weight:700;letter-spacing:0.01em}
.doc-title .sub{text-align:center;color:var(--muted);font-size:1rem;margin-bottom:8px}

/* ── Headings (numbered sections) ────────────────────────── */
h2{font-size:1.18rem;font-weight:700;margin:38px 0 12px;padding-top:6px;border-top:1px solid var(--rule)}
h3{font-size:1.02rem;font-weight:700;margin:26px 0 10px}
h4{font-size:0.95rem;font-weight:700;margin:20px 0 8px;color:#333}
h2 .secno,h3 .secno,h4 .secno{display:inline-block;color:var(--muted);font-weight:700;margin-right:0.55em;font-variant-numeric:tabular-nums}
h2:target,h3:target{scroll-margin-top:60px}
.section-head{font-size:0.95rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin:34px 0 12px}

p{margin:0 0 14px}
ul,ol{margin:0 0 14px 26px}
li{margin-bottom:5px}
strong{font-weight:700}
hr{border:0;border-top:1px solid var(--rule);margin:28px 0}

/* MUST/SHOULD keywords */
.kw{font-family:"SFMono-Regular",Menlo,Consolas,monospace;font-weight:700;font-size:0.86em;letter-spacing:0.03em}

/* ── Code ────────────────────────────────────────────────── */
code{font-family:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;font-size:0.86em;background:var(--code-bg);border:1px solid var(--code-border);border-radius:3px;padding:1px 5px}
pre{font-family:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;font-size:0.82rem;line-height:1.5;background:var(--code-bg);border:1px solid var(--code-border);border-radius:5px;padding:14px 16px;overflow-x:auto;margin:0 0 16px}
pre code{background:none;border:none;padding:0;font-size:1em}
.fig{margin:0 0 20px}
.fig figcaption{font-size:0.8rem;color:var(--muted);text-align:center;margin-top:5px}

/* ── Table of contents ───────────────────────────────────── */
.toc{font-size:0.92rem;margin:8px 0 10px}
.toc ul{list-style:none;margin:0 0 0 8px;padding:0}
.toc li{margin:2px 0}
.toc .l2{margin-left:0}
.toc .l3{margin-left:24px;font-size:0.88rem}
.toc a{color:var(--link)}
.toc .secno{display:inline-block;min-width:2.6em;color:var(--muted)}

/* ── Tables ──────────────────────────────────────────────── */
table.data{width:100%;border-collapse:collapse;font-size:0.88rem;margin:0 0 18px}
table.data th,table.data td{border:1px solid var(--rule);padding:7px 10px;text-align:left;vertical-align:top}
table.data th{background:#f4f4f0;font-weight:700}
table.data td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:"SFMono-Regular",Menlo,monospace}
.yes{color:#1a7a32;font-weight:600}
.no{color:#a40000;font-weight:600}

/* ── Callout note ────────────────────────────────────────── */
.note{background:var(--note-bg);border:1px solid var(--note-border);border-left:3px solid var(--link);border-radius:4px;padding:12px 16px;margin:0 0 18px;font-size:0.93rem}
.note .label{font-weight:700;text-transform:uppercase;font-size:0.72rem;letter-spacing:0.08em;color:var(--link);display:block;margin-bottom:4px}

/* definition list */
dl{margin:0 0 16px}
dl dt{font-family:"SFMono-Regular",Menlo,Consolas,monospace;font-weight:700;font-size:0.9em;margin-top:10px}
dl dd{margin:2px 0 0 26px;color:var(--fg)}

/* ── Footer ──────────────────────────────────────────────── */
footer{border-top:1px solid var(--rule);background:#fafaf8;padding:26px 0;color:var(--muted);font-size:0.82rem;line-height:1.7}
footer a{color:var(--link)}
footer .powered-by{margin-top:10px}
.prose{max-width:760px;margin:0 auto}

@media(max-width:640px){
  body{font-size:15px}
  nav .container{flex-wrap:wrap;gap:6px}
  .toc .l3{margin-left:14px}
  .doc-title h1{font-size:1.4rem}
}
