* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: #243044; font: 16px/1.65 system-ui, sans-serif; }
a { color: #386922; text-underline-offset: .2em; }
header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem max(1.5rem, calc((100vw - 1200px)/2)); border-bottom: 1px solid #e1e6ef; }
.brand { color: #243044; font-size: 1.2rem; font-weight: 750; text-decoration: none; }
.brand span { font-weight: 400; color: #607066; }
nav { display: flex; gap: 1.5rem; }
main { max-width: 850px; min-height: 65vh; padding: 3rem 1.5rem; margin: auto; }
main.reference { max-width: 1460px; }
h1, h2 { line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: clamp(2rem, 5vw, 3rem); }
h2 { margin-top: 2.5rem; }
.prose code { background: #f1f4f0; padding: .15em .35em; border-radius: 3px; }
.notice { padding: 1rem; background: #f3f6ef; border-left: 3px solid #75a943; }
footer { border-top: 1px solid #e1e6ef; padding: 1.2rem; text-align: center; color: #667085; }
@media (max-width: 600px) { header { align-items: flex-start; flex-direction: column; } nav { gap: 1rem; } }

.skip-link { position: absolute; top: -5rem; left: 1rem; padding: .5rem 1rem; background: #fff; z-index: 10; }
.skip-link:focus { top: .5rem; }
.preview { background: #f3f6ef; padding: .6rem 1.5rem; text-align: center; font-size: .9rem; }
.portal.with-sidebar { display: grid; grid-template-columns: 220px minmax(0, 1fr); max-width: 1200px; margin: auto; }
aside { padding: 3rem 1rem; }
aside nav { display: flex; flex-direction: column; gap: .7rem; }
a[aria-current="page"] { font-weight: 750; }
.prose pre { padding: 1rem; background: #f1f4f0; overflow: auto; }
.prose pre code { padding: 0; }
table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 1.5rem 0; }
th, td { border: 1px solid #dce2da; text-align: left; vertical-align: top; padding: .7rem; }
:focus-visible { outline: 3px solid #386922; outline-offset: 3px; }
@media (max-width: 750px) { .portal.with-sidebar { display: block; } aside { padding: 1.5rem 1.5rem 0; } aside nav { flex-direction: row; flex-wrap: wrap; gap: .7rem 1.2rem; } .with-sidebar main { padding-top: 1.5rem; } }
