:root{
	--border:#d7dbe0;
	--border-strong:#c5cbd3;
	--text:#1f2328;
	--muted:#59636e;
	--bg:#ffffff;
	--sidebar-bg:#f8fafc;
	--panel:#ffffff;
	--panel-soft:#fbfcfe;
	--link:#0969da;
	--code-bg:#f6f8fa;
	--shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.08);
	--radius:12px;
}

*{
	box-sizing:border-box;
}

html{
	font-size:16px;
	scroll-behavior:smooth;
}

body{
	margin:0;
	color:var(--text);
	background:var(--bg);
	font:400 16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

a{
	color:var(--link);
	text-decoration:none;
}

a:hover{
	text-decoration:underline;
}

.shell{
	display:grid;
	grid-template-columns:300px minmax(0,1fr);
	min-height:100vh;
}

.sidebar{
	position:sticky;
	top:0;
	height:100vh;
	overflow:auto;
	padding:1rem;
	background:var(--sidebar-bg);
	border-right:1px solid var(--border);
}

.sidebar-tools{
	display:grid;
	gap:.9rem;
	margin-bottom:1rem;
}

.search-box{
	display:grid;
	gap:.4rem;
}

.search-box__label{
	font-size:.85rem;
	font-weight:700;
	color:var(--muted);
}

.search-box input{
	width:100%;
	padding:.75rem .85rem;
	border:1px solid var(--border);
	border-radius:10px;
	background:#fff;
	color:var(--text);
	font:inherit;
	outline:none;
}

.search-box input:focus{
	border-color:var(--link);
	box-shadow:0 0 0 3px rgba(9,105,218,.12);
}

.search-results{
	display:grid;
	gap:.5rem;
}

.search-results[hidden]{
	display:none;
}

.search-result{
	display:block;
	padding:.75rem .8rem;
	border:1px solid var(--border);
	border-radius:10px;
	background:#fff;
}

.search-result__title{
	display:block;
	font-weight:700;
	margin-bottom:.15rem;
}

.search-result__meta{
	display:block;
	font-size:.83rem;
	color:var(--muted);
}

.nav details{
	margin:0 0 .8rem;
	border:1px solid var(--border);
	border-radius:var(--radius);
	background:var(--panel);
	overflow:hidden;
	box-shadow:var(--shadow);
}

.nav summary{
	cursor:pointer;
	font-weight:700;
	padding:.75rem .9rem;
	user-select:none;
}

.nav summary:hover{
	background:#f3f6f9;
}

.nav details[open] summary{
	border-bottom:1px solid var(--border);
}

.nav ul{
	list-style:none;
	margin:0;
	padding:.55rem .9rem .85rem;
}

.nav ul ul{
	padding:.35rem 0 0 1rem;
}

.nav li{
	margin:.35rem 0;
}

.nav a[aria-current="page"]{
	font-weight:700;
	text-decoration:underline;
}

.content{
	min-width:0;
	max-width:1080px;
	padding:2rem 2.5rem 4rem;
}

.content > :first-child{
	margin-top:0;
}

h1,h2,h3,h4{
	line-height:1.2;
	letter-spacing:-.01em;
}

h1{
	margin:0 0 .65rem;
	font-size:2.1rem;
}

h2{
	margin:2rem 0 .75rem;
	padding-bottom:.35rem;
	border-bottom:1px solid var(--border);
	font-size:1.4rem;
}

h3{
	margin:1.5rem 0 .65rem;
	font-size:1.08rem;
}

h4{
	margin:1rem 0 .55rem;
	font-size:1rem;
}

p,ul,ol,blockquote,table,pre{
	margin:0 0 1rem;
}

ul,ol{
	padding-left:1.35rem;
}

hr{
	border:0;
	border-top:1px solid var(--border);
	margin:2rem 0;
}

code{
	font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	font-size:.92em;
	background:var(--code-bg);
	padding:.13em .35em;
	border-radius:6px;
}

pre{
	overflow:auto;
	padding:1rem;
	border:1px solid var(--border);
	border-radius:12px;
	background:var(--code-bg);
}

pre code{
	background:transparent;
	padding:0;
	border-radius:0;
}

table{
	width:100%;
	border-collapse:collapse;
	display:block;
	overflow:auto;
}

th,td{
	border:1px solid var(--border);
	padding:.6rem .7rem;
	text-align:left;
	vertical-align:top;
}

th{
	background:#f3f6f9;
}

tr:nth-child(even) td{
	background:var(--panel-soft);
}

.lead{
	font-size:1.04rem;
	color:var(--muted);
}

.stat-strip{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1rem;
	margin:1.25rem 0 1.5rem;
}

.stat-card{
	padding:1rem;
	border:1px solid var(--border);
	border-radius:var(--radius);
	background:var(--panel);
	box-shadow:var(--shadow);
}

.stat-card__label{
	display:block;
	font-size:.82rem;
	font-weight:700;
	color:var(--muted);
	text-transform:uppercase;
	letter-spacing:.04em;
	margin-bottom:.25rem;
}

.stat-card__value{
	display:block;
	font-weight:700;
	font-size:1rem;
}

.arch-map{
	margin:0 0 2rem;
}

.section-lead{
	color:var(--muted);
	margin-top:-.15rem;
}

.tier-block{
	margin:1.5rem 0 2rem;
}

.crate-grid{
	display:grid;
	gap:1rem;
}

.crate-grid--single{
	grid-template-columns:1fr;
}

.crate-grid--2{
	grid-template-columns:repeat(2,minmax(0,1fr));
}

.crate-grid--4{
	grid-template-columns:repeat(4,minmax(0,1fr));
}

.subtier-heading{
	margin:1rem 0 .65rem;
	font-size:.96rem;
	color:var(--muted);
	text-transform:uppercase;
	letter-spacing:.04em;
}

.crate-card{
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:1rem;
	background:var(--panel);
	box-shadow:var(--shadow);
}

.crate-card h4{
	margin:0 0 .75rem;
}

.crate-card ul{
	margin:0;
	padding-left:1.1rem;
}

.crate-card li{
	margin:.28rem 0;
}

.tag-grid{
	display:flex;
	flex-wrap:wrap;
	gap:.6rem;
}

.tag{
	display:inline-flex;
	align-items:center;
	padding:.42rem .7rem;
	border:1px solid var(--border);
	border-radius:999px;
	background:var(--panel);
	box-shadow:var(--shadow);
	font-size:.94rem;
}

.flow-list{
	display:grid;
	gap:.75rem;
	padding:0;
	list-style:none;
}

.flow-step{
	padding:1rem;
	border:1px solid var(--border);
	border-radius:var(--radius);
	background:var(--panel);
	box-shadow:var(--shadow);
}

.flow-step strong{
	display:block;
	margin-bottom:.25rem;
}

.page-nav{
	margin-top:2.5rem;
	padding-top:1rem;
	border-top:1px solid var(--border);
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
}

.doc-section{
	padding:1rem 1rem 1.1rem;
	border:1px solid var(--border);
	border-radius:var(--radius);
	background:var(--panel);
	box-shadow:var(--shadow);
	margin:0 0 1rem;
}

.doc-section > :last-child{
	margin-bottom:0;
}

.callout-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1rem;
	margin:1rem 0 1.25rem;
}

.callout-card{
	padding:1rem;
	border:1px solid var(--border);
	border-radius:var(--radius);
	background:var(--panel);
	box-shadow:var(--shadow);
}

.callout-card h3{
	margin-top:0;
}

@media (max-width:1100px){
	.crate-grid--4{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:980px){
	.shell{
		grid-template-columns:1fr;
	}
	.sidebar{
		position:static;
		height:auto;
		border-right:0;
		border-bottom:1px solid var(--border);
	}
	.content{
		padding:1.25rem 1rem 3rem;
	}
}

@media (max-width:700px){
	.crate-grid--2,.crate-grid--4,.stat-strip,.callout-grid{
		grid-template-columns:1fr;
	}
}