@font-face {
	font-family: Inter;
	font-style: normal;
	font-display: swap;
	font-weight: 400;
	src: url("/fonts/inter-latin-400-normal.woff2") format("woff2");
}
@font-face {
	font-family: Inter;
	font-style: normal;
	font-display: swap;
	font-weight: 500;
	src: url("/fonts/inter-latin-500-normal.woff2") format("woff2");
}
@font-face {
	font-family: Inter;
	font-style: normal;
	font-display: swap;
	font-weight: 600;
	src: url("/fonts/inter-latin-600-normal.woff2") format("woff2");
}
@font-face {
	font-family: Inter;
	font-style: normal;
	font-display: swap;
	font-weight: 700;
	src: url("/fonts/inter-latin-700-normal.woff2") format("woff2");
}
/* AIRigs Recipes — Carbon palette + Bootstrap 5, light and dark.
 * The forum (NodeBB/harmony) uses Inter, 6px-ish radii and a quiet card/list pattern;
 * this stylesheet keeps that vocabulary and replaces the theme's defaults with Carbon. */
:root {
	color-scheme: light dark;
	--carbon-blue: #0f62fe;
	--carbon-blue-hover: #0043ce;
	--carbon-ink: #161616;
	--carbon-gray-70: #525252;
	--carbon-gray-20: #e0e0e0;
	--carbon-gray-10: #f4f4f4;
	--carbon-cyan: #1192e8;
	--carbon-teal: #005d5d;
	--carbon-purple: #6929c4;
	--carbon-green: #198038;
	--carbon-red: #a2191f;
	--carbon-yellow: #f1c21b;
	--carbon-yellow-soft: #fcf4d6;
	/* Danger treatment: Carbon red, kept separate from the yellow warning state. */
	--danger-ink: #a2191f;
	--danger-tint: #fff1f1;
	--danger-border: rgba(162, 25, 31, 0.35);

	--bs-primary: #0f62fe;
	--bs-primary-rgb: 15, 98, 254;
	--bs-link-color: #0f62fe;
	--bs-link-color-rgb: 15, 98, 254;
	--bs-link-hover-color: #0043ce;
	--bs-link-hover-color-rgb: 0, 67, 206;
	--bs-body-font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--bs-body-bg: #ffffff;
	--bs-body-color: #161616;
	--bs-secondary-color: #525252;
	--bs-secondary-bg: #f4f4f4;
	--bs-tertiary-bg: #f4f4f4;
	--bs-border-color: #e0e0e0;
	--bs-border-color-translucent: rgba(22, 22, 22, 0.12);
	--bs-border-radius: 0.375rem;
	--bs-border-radius-sm: 0.25rem;
	--bs-border-radius-lg: 0.5rem;
	--bs-emphasis-color: #161616;

	--surface: #ffffff;
	--surface-sunken: #f4f4f4;
	--surface-raised: #ffffff;
	--code-bg: #161616;
	--code-fg: #f4f4f4;
	--code-inline-bg: #f4f4f4;
	--row-hover: #f4f4f4;
	--shadow-sm: 0 1px 2px rgba(22, 22, 22, 0.06);
}

@media (prefers-color-scheme: dark) {
	:root {
		--bs-body-bg: #161616;
		--bs-body-color: #f4f4f4;
		--bs-secondary-color: #c6c6c6;
		--bs-secondary-bg: #262626;
		--bs-tertiary-bg: #262626;
		--bs-border-color: #393939;
		--bs-border-color-translucent: rgba(244, 244, 244, 0.14);
		--bs-emphasis-color: #ffffff;
		--bs-link-color: #78a9ff;
		--bs-link-color-rgb: 120, 169, 255;
		--bs-link-hover-color: #a6c8ff;
		--bs-link-hover-color-rgb: 166, 200, 255;
		--bs-primary: #0f62fe;
		--bs-primary-rgb: 15, 98, 254;

		--surface: #1c1c1c;
		--surface-sunken: #0b0b0b;
		--surface-raised: #262626;
		--code-bg: #0b0b0b;
		--code-fg: #e0e0e0;
		--code-inline-bg: #262626;
		--row-hover: #262626;
		--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);

		/* Carbon red-30/red-40 on a red-tinted surface: 10.07:1 for the title,
		 * 15.51:1 for the body text against #2b1618. */
		--danger-ink: #ffb3b8;
		--danger-tint: #2b1618;
		--danger-border: rgba(255, 131, 137, 0.45);
	}

	/* Bootstrap declares the select arrow on `.form-select` itself, so the root-level
	 * override above is not enough for the dark scheme. */
	.form-select {
		--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c6c6c6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
	}
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--bs-body-font-family);
	background-color: var(--bs-body-bg);
	color: var(--bs-body-color);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

h1, h2, h3, h4 {
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

code, pre {
	font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

code {
	color: inherit;
	background: var(--code-inline-bg);
	padding: 0.05rem 0.3rem;
	border-radius: 0.2rem;
	font-size: 0.875em;
	word-break: break-word;
}

pre code {
	background: none;
	padding: 0;
	font-size: inherit;
}

.skip-link {
	position: absolute;
	left: -999px;
	top: 0;
	z-index: 100;
	background: var(--carbon-blue);
	color: #fff;
	padding: 0.5rem 1rem;
}
.skip-link:focus {
	left: 0;
}

:focus-visible {
	outline: 2px solid var(--carbon-blue);
	outline-offset: 2px;
}

.container {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.page-shell {
	padding-top: 2.25rem;
	padding-bottom: 4rem;
}

.eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--carbon-blue);
}

@media (prefers-color-scheme: dark) {
	.eyebrow {
		color: #78a9ff;
	}
}

/* Header */
.site-header {
	background: var(--surface);
	border-bottom: 1px solid var(--bs-border-color);
	position: sticky;
	top: 0;
	z-index: 30;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	min-height: 64px;
	flex-wrap: wrap;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	text-decoration: none;
	color: var(--bs-body-color);
	flex-shrink: 0;
}

.brand__logo {
	height: 24px;
	width: auto;
	display: block;
}

.brand__logo--dark {
	display: none;
}

@media (prefers-color-scheme: dark) {
	.brand__logo--light {
		display: none;
	}
	.brand__logo--dark {
		display: block;
	}
}

.brand__divider {
	display: block;
	width: 1px;
	height: 22px;
	background: var(--bs-border-color);
}

.brand__product {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--carbon-blue);
}

@media (prefers-color-scheme: dark) {
	.brand__product {
		color: #78a9ff;
	}
}

.site-nav {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	flex-wrap: wrap;
}

.site-nav__link {
	color: var(--bs-secondary-color);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	padding: 0.4rem 0.65rem;
	border-radius: var(--bs-border-radius-sm);
}

.site-nav__link:hover {
	color: var(--bs-body-color);
	background: var(--bs-tertiary-bg);
}

.site-nav__link.is-active {
	color: var(--carbon-blue);
	background: rgba(15, 98, 254, 0.08);
}

@media (prefers-color-scheme: dark) {
	.site-nav__link.is-active {
		color: #78a9ff;
		background: rgba(120, 169, 255, 0.12);
	}
}

.site-header__account {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.user-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	text-decoration: none;
	color: var(--bs-body-color);
	font-size: 0.875rem;
	font-weight: 500;
	padding: 0.2rem 0.5rem 0.2rem 0.2rem;
	border-radius: 999px;
	border: 1px solid var(--bs-border-color);
}

.user-chip:hover {
	border-color: var(--carbon-blue);
	color: var(--carbon-blue);
}

.user-chip__avatar {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--bs-tertiary-bg);
}

.user-chip__avatar--initials,
.avatar--initials {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.6875rem;
	font-weight: 700;
	color: #fff;
	background: var(--carbon-blue);
}

.site-header__logout {
	color: var(--bs-secondary-color);
	text-decoration: none;
	font-size: 0.8125rem;
	padding: 0.2rem 0.4rem;
}

.avatar {
	border-radius: 50%;
	object-fit: cover;
	background: var(--bs-tertiary-bg);
	vertical-align: middle;
}
.avatar--sm {
	width: 24px;
	height: 24px;
}
.avatar--lg {
	width: 56px;
	height: 56px;
	font-size: 1.1rem;
}

.flash {
	margin-top: 1.25rem;
	border-radius: var(--bs-border-radius);
}

.mock-note {
	margin: 0.75rem 0 0;
	padding: 0.4rem 0.75rem;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	border: 1px dashed var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm);
}

/* Hero */
.hero {
	background:
		radial-gradient(1200px 400px at 15% -10%, rgba(15, 98, 254, 0.12), transparent 60%),
		var(--surface-sunken);
	border-bottom: 1px solid var(--bs-border-color);
}

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 3rem;
	align-items: center;
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.hero__title {
	font-size: clamp(1.9rem, 3.4vw, 2.75rem);
	font-weight: 700;
	margin: 0 0 1rem;
	line-height: 1.15;
	letter-spacing: -0.02em;
	max-width: 22ch;
}

.hero__lede {
	font-size: 1.0625rem;
	max-width: 34rem;
	color: var(--bs-secondary-color);
	margin-bottom: 1.5rem;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.75rem;
}

.hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: 0;
	font-size: 0.875rem;
	color: var(--bs-secondary-color);
}
.hero__stats strong {
	color: var(--bs-body-color);
	font-weight: 600;
}

.hero__panel {
	background: #161616;
	color: #f4f4f4;
	border: 1px solid #393939;
	border-radius: var(--bs-border-radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}
.hero__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	border-bottom: 1px solid #393939;
	font-size: 0.75rem;
	color: #c6c6c6;
}
.cli-demo__title {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8d8d8d;
}
.hero__panel pre {
	margin: 0;
	padding: 1.15rem 1.25rem 1.35rem;
	overflow-x: auto;
	font-size: 0.8125rem;
	line-height: 1.65;
}
.hero__panel code {
	background: none;
	color: inherit;
	padding: 0;
}
.hero__panel-link {
	margin-left: auto;
	color: #a6c8ff;
	font-size: 0.75rem;
	text-decoration: none;
	white-space: nowrap;
}
.hero__panel-link:hover {
	color: #fff;
}
.cli-demo__stage {
	position: relative;
}
.cli-demo__stage .cli-demo__static,
.cli-demo__stage .cli-demo__live {
	margin: 0;
	padding: 0.85rem 1rem 0.9rem;
	font-size: 0.75rem;
	line-height: 1.6;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	color: #f4f4f4;
}
.cli-demo__live {
	position: absolute;
	inset: 0;
	display: none;
	overflow: hidden;
}
.cli-demo__line {
	display: block;
	min-height: 1.6em;
}
.cli-demo__live code {
	background: none;
	color: inherit;
	padding: 0;
}
.cli-demo__prompt {
	color: #78a9ff;
}
.cli-demo__out {
	color: #c6c6c6;
}
.cli-demo__cursor {
	display: inline-block;
	width: 0.5em;
	height: 1em;
	margin-left: 1px;
	vertical-align: -0.12em;
	background: currentColor;
	animation: cli-blink 1s steps(2, start) infinite;
}
.cli-demo__cursor[hidden] {
	display: none;
}
.cli-demo.is-enhanced .cli-demo__static {
	visibility: hidden;
}
.cli-demo.is-enhanced .cli-demo__live {
	display: block;
}
@keyframes cli-blink {
	to { visibility: hidden; }
}

/* Sections */
.section {
	margin-top: 3.25rem;
}
.section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}
.section__title {
	font-size: 1.5rem;
	margin: 0;
}
.section__link {
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.chip {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.75rem;
	border: 1px solid var(--bs-border-color);
	border-radius: 999px;
	font-size: 0.8125rem;
	color: var(--bs-body-color);
	text-decoration: none;
	background: var(--surface);
}
.chip:hover {
	border-color: var(--carbon-blue);
	color: var(--carbon-blue);
}

/* Cards */
.card {
	background: var(--surface);
	border-color: var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	box-shadow: var(--shadow-sm);
}
.card-header {
	background: transparent;
	border-bottom: 1px solid var(--bs-border-color);
	padding: 1rem 1.25rem;
}
.card-header h2 {
	font-size: 1.0625rem;
	margin: 0;
}
.card-body {
	padding: 1.25rem;
}

.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.1rem;
}

.recipe-card__body {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.recipe-card__badges {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin-bottom: 0.6rem;
}
.recipe-card__date {
	margin-left: auto;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
}
.recipe-card__title {
	font-size: 1.0625rem;
	margin: 0 0 0.4rem;
}
.recipe-card__title a {
	color: inherit;
	text-decoration: none;
}
.recipe-card__title a:hover {
	color: var(--carbon-blue);
}
.recipe-card__summary {
	font-size: 0.875rem;
	color: var(--bs-secondary-color);
	margin-bottom: 0.9rem;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.recipe-card__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
	margin: auto 0 0.9rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--bs-border-color);
}
.recipe-card__stats div {
	min-width: 0;
}
.recipe-card__stats dt {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bs-secondary-color);
	font-weight: 500;
}
.recipe-card__stats dd {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.recipe-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	border-top: 1px solid var(--bs-border-color);
	padding-top: 0.65rem;
}
.recipe-card__rig {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	max-width: 60%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.recipe-card__author {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	white-space: nowrap;
}
.recipe-card__avatar {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	object-fit: cover;
}

.dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	display: inline-block;
	background: var(--bs-secondary-color);
	flex-shrink: 0;
}
.dot--verified,
.dot--green {
	background: var(--carbon-green);
}
.dot--green {
	background: #42be65;
}

/* Badges */
.badge {
	font-weight: 600;
	font-size: 0.6875rem;
	letter-spacing: 0.03em;
	line-height: 1.2;
	padding: 0.25rem 0.5rem;
	border-radius: var(--bs-border-radius-sm);
	border: 1px solid transparent;
}
.badge--verified {
	background: rgba(25, 128, 56, 0.1);
	color: #0e6027;
	border-color: rgba(25, 128, 56, 0.35);
}
.badge--unverified {
	background: rgba(162, 25, 31, 0.1);
	color: var(--danger-ink);
	border-color: rgba(162, 25, 31, 0.35);
}
.badge--published {
	background: rgba(15, 98, 254, 0.1);
	color: #0043ce;
	border-color: rgba(15, 98, 254, 0.3);
}
.badge--draft {
	background: rgba(241, 194, 27, 0.18);
	color: #684e00;
	border-color: rgba(241, 194, 27, 0.55);
}
.badge--warning {
	background: rgba(241, 194, 27, 0.2);
	color: #684e00;
	border-color: rgba(241, 194, 27, 0.5);
}
.badge--engine {
	background: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
	border-color: var(--bs-border-color);
}
.badge--engine-vllm { background: rgba(15, 98, 254, 0.1); color: #0043ce; border-color: rgba(15, 98, 254, 0.28); }
.badge--engine-sglang { background: rgba(17, 146, 232, 0.1); color: #005d87; border-color: rgba(17, 146, 232, 0.3); }
.badge--engine-llamacpp { background: rgba(0, 93, 93, 0.1); color: #004144; border-color: rgba(0, 93, 93, 0.3); }
.badge--engine-strata { background: rgba(105, 41, 196, 0.1); color: #491d8b; border-color: rgba(105, 41, 196, 0.3); }
.badge--engine-omlx { background: rgba(25, 128, 56, 0.1); color: #0e6027; border-color: rgba(25, 128, 56, 0.3); }
.badge--engine-ollama { background: rgba(82, 82, 82, 0.12); color: var(--bs-body-color); border-color: var(--bs-border-color); }
.badge--engine-custom { background: rgba(162, 25, 31, 0.1); color: #a2191f; border-color: rgba(162, 25, 31, 0.3); }
.badge--green { background: rgba(25, 128, 56, 0.12); color: #0e6027; border-color: rgba(25, 128, 56, 0.35); }
.badge--red { background: rgba(162, 25, 31, 0.1); color: #a2191f; border-color: rgba(162, 25, 31, 0.3); }
.badge--purple { background: rgba(105, 41, 196, 0.1); color: #491d8b; border-color: rgba(105, 41, 196, 0.3); }
.badge--neutral { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); border-color: var(--bs-border-color); }
.badge--role { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); border-color: var(--bs-border-color); }
.badge--role-base { background: rgba(15, 98, 254, 0.08); color: #0043ce; border-color: rgba(15, 98, 254, 0.25); }
.badge--role-drafter { background: rgba(105, 41, 196, 0.09); color: #491d8b; border-color: rgba(105, 41, 196, 0.25); }
.badge--role-adapter { background: rgba(0, 93, 93, 0.09); color: #004144; border-color: rgba(0, 93, 93, 0.25); }
.badge--role-vision { background: rgba(17, 146, 232, 0.1); color: #005d87; border-color: rgba(17, 146, 232, 0.3); }
.badge--role-embedding { background: rgba(25, 128, 56, 0.09); color: #0e6027; border-color: rgba(25, 128, 56, 0.25); }

@media (prefers-color-scheme: dark) {
	.badge--verified { background: rgba(66, 190, 101, 0.16); color: #a7f0ba; border-color: rgba(66, 190, 101, 0.4); }
	.badge--unverified { background: rgba(255, 131, 137, 0.14); color: var(--danger-ink); border-color: rgba(255, 131, 137, 0.4); }
	.badge--published { background: rgba(120, 169, 255, 0.16); color: #a6c8ff; border-color: rgba(120, 169, 255, 0.4); }
	.badge--draft,
	.badge--warning { background: rgba(241, 194, 27, 0.16); color: #fddc69; border-color: rgba(241, 194, 27, 0.4); }
	.badge--engine-vllm { background: rgba(120, 169, 255, 0.16); color: #a6c8ff; border-color: rgba(120, 169, 255, 0.35); }
	.badge--engine-sglang { background: rgba(51, 179, 249, 0.14); color: #82cfff; border-color: rgba(51, 179, 249, 0.38); }
	.badge--engine-llamacpp { background: rgba(61, 219, 217, 0.13); color: #9ef0f0; border-color: rgba(61, 219, 217, 0.35); }
	.badge--engine-strata { background: rgba(190, 149, 255, 0.14); color: #d4bbff; border-color: rgba(190, 149, 255, 0.35); }
	.badge--engine-omlx { background: rgba(66, 190, 101, 0.14); color: #a7f0ba; border-color: rgba(66, 190, 101, 0.35); }
	.badge--engine-custom { background: rgba(255, 131, 137, 0.14); color: #ffb3b8; border-color: rgba(255, 131, 137, 0.35); }
	.badge--green { background: rgba(66, 190, 101, 0.14); color: #a7f0ba; border-color: rgba(66, 190, 101, 0.35); }
	.badge--red { background: rgba(255, 131, 137, 0.14); color: #ffb3b8; border-color: rgba(255, 131, 137, 0.35); }
	.badge--purple { background: rgba(190, 149, 255, 0.14); color: #d4bbff; border-color: rgba(190, 149, 255, 0.35); }
	.badge--role-base { background: rgba(120, 169, 255, 0.14); color: #a6c8ff; border-color: rgba(120, 169, 255, 0.32); }
	.badge--role-drafter { background: rgba(190, 149, 255, 0.14); color: #d4bbff; border-color: rgba(190, 149, 255, 0.32); }
	.badge--role-adapter { background: rgba(61, 219, 217, 0.13); color: #9ef0f0; border-color: rgba(61, 219, 217, 0.32); }
	.badge--role-vision { background: rgba(51, 179, 249, 0.14); color: #82cfff; border-color: rgba(51, 179, 249, 0.32); }
	.badge--role-embedding { background: rgba(66, 190, 101, 0.14); color: #a7f0ba; border-color: rgba(66, 190, 101, 0.32); }
}

/* Buttons */
.btn {
	border-radius: var(--bs-border-radius-sm);
	font-weight: 500;
	font-size: 0.875rem;
	padding: 0.45rem 1rem;
}
.btn-lg {
	font-size: 0.9375rem;
	padding: 0.6rem 1.3rem;
}
.btn-sm {
	font-size: 0.8125rem;
	padding: 0.3rem 0.7rem;
}
.btn-primary {
	--bs-btn-bg: var(--carbon-blue);
	--bs-btn-border-color: var(--carbon-blue);
	--bs-btn-hover-bg: #0043ce;
	--bs-btn-hover-border-color: #0043ce;
	--bs-btn-active-bg: #002d9c;
	--bs-btn-active-border-color: #002d9c;
	--bs-btn-disabled-bg: #a6c8ff;
	--bs-btn-disabled-border-color: #a6c8ff;
	--bs-btn-color: #fff;
	--bs-btn-hover-color: #fff;
	--bs-btn-active-color: #fff;
	--bs-btn-disabled-color: #161616;
}
.btn-outline-primary {
	--bs-btn-color: var(--carbon-blue);
	--bs-btn-border-color: var(--carbon-blue);
	--bs-btn-hover-bg: var(--carbon-blue);
	--bs-btn-hover-border-color: var(--carbon-blue);
	--bs-btn-active-bg: #0043ce;
	--bs-btn-active-border-color: #0043ce;
	--bs-btn-hover-color: #fff;
}
@media (prefers-color-scheme: dark) {
	.btn-outline-primary {
		--bs-btn-color: #78a9ff;
		--bs-btn-border-color: #78a9ff;
		--bs-btn-hover-bg: #78a9ff;
		--bs-btn-hover-border-color: #78a9ff;
		--bs-btn-hover-color: #161616;
	}
	.btn-outline-secondary {
		--bs-btn-color: #c6c6c6;
		--bs-btn-border-color: #525252;
		--bs-btn-hover-bg: #393939;
		--bs-btn-hover-border-color: #6f6f6f;
		--bs-btn-hover-color: #f4f4f4;
	}
	.btn-outline-danger {
		--bs-btn-color: #ff8389;
		--bs-btn-border-color: #ff8389;
		--bs-btn-hover-bg: #ff8389;
		--bs-btn-hover-color: #161616;
	}
}

/* Page heads, filters */
.page-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.75rem;
	flex-wrap: wrap;
}
.page-head h1 {
	font-size: 2rem;
	margin: 0 0 0.35rem;
}
.page-head__lede {
	margin: 0;
	color: var(--bs-secondary-color);
	max-width: 46rem;
}

.filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.85rem;
	padding: 1rem 1.1rem;
	background: var(--surface-sunken);
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	margin-bottom: 1.5rem;
}
.filter-bar__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 9rem;
}
.filter-bar__field--grow {
	flex: 1 1 18rem;
}
.filter-bar label {
	font-size: 0.6875rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--bs-secondary-color);
}
.filter-bar__actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.listing-count {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
	margin: 0 0 0.85rem;
}

.pagination-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 1.25rem 0;
	flex-wrap: wrap;
}
.pagination-wrap__status {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
}

.empty-state {
	border: 1px dashed var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	padding: 3rem 1.5rem;
	text-align: center;
	background: var(--surface-sunken);
}
.empty-state h3 {
	font-size: 1.125rem;
}
.empty-state p {
	color: var(--bs-secondary-color);
	margin-bottom: 1rem;
}
.empty-state--compact {
	padding: 1.75rem 1rem;
}

.steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.1rem;
}
.step {
	position: relative;
	background: var(--surface);
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	padding: 1.4rem 1.25rem;
}
.step__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--carbon-blue);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}
.step h3 {
	font-size: 1rem;
	margin: 0 0 0.4rem;
}
.step p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--bs-secondary-color);
}

/* Recipe page */
.breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
	margin-bottom: 1.5rem;
}
.breadcrumbs a {
	color: var(--bs-secondary-color);
	text-decoration: none;
}
.breadcrumbs a:hover {
	color: var(--carbon-blue);
}

.recipe-header {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	align-items: flex-start;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}
.recipe-header__main {
	min-width: 0;
	flex: 1 1 30rem;
}
.badge-row {
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin-bottom: 0.75rem;
}
.recipe-header__title {
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	margin: 0 0 0.6rem;
	letter-spacing: -0.025em;
}
.recipe-header__summary {
	font-size: 1.0625rem;
	color: var(--bs-secondary-color);
	max-width: 48rem;
	margin-bottom: 0.75rem;
}
.recipe-header__meta {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}
.recipe-header__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.5rem;
	padding-top: 1.6rem;
}
.cli-hint {
	font-size: 0.75rem;
	white-space: nowrap;
}

.notice {
	border-radius: var(--bs-border-radius);
	padding: 0.9rem 1.1rem;
	margin: 0 0 1.5rem;
	font-size: 0.875rem;
	border: 1px solid var(--bs-border-color);
	background: var(--surface-sunken);
}
.notice--draft {
	border-left: 4px solid var(--carbon-blue);
	background: rgba(15, 98, 254, 0.05);
}
.notice--warning {
	border-left: 4px solid var(--carbon-yellow);
	background: rgba(241, 194, 27, 0.1);
}
.notice__list {
	margin: 0.5rem 0 0.75rem;
	padding-left: 1.2rem;
}
.notice form {
	margin-top: 0.6rem;
}
.notice p:last-child {
	margin-bottom: 0;
}

.warning-banner {
	background: var(--carbon-yellow-soft);
	border: 1px solid var(--carbon-yellow);
	border-left-width: 4px;
	color: #161616;
	border-radius: var(--bs-border-radius);
	padding: 1rem 1.2rem;
	margin-bottom: 1.5rem;
}
.warning-banner__title {
	font-weight: 700;
	margin: 0 0 0.35rem;
	font-size: 0.9375rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.warning-banner p:last-child {
	margin: 0;
	font-size: 0.875rem;
}
@media (prefers-color-scheme: dark) {
	.warning-banner {
		background: rgba(241, 194, 27, 0.13);
		color: #f4f4f4;
		border-color: rgba(241, 194, 27, 0.6);
	}
}

/* Unverified/custom launch instructions are a danger state, not a warning: Carbon red,
 * not yellow. Titles are checked at 7.09:1 (light) / 10.07:1 (dark) and body copy at
 * 16.46:1 (light) / 15.51:1 (dark). */
.warning-banner--danger {
	background: var(--danger-tint);
	color: var(--bs-body-color);
	border: 1px solid var(--danger-border);
	border-left: 4px solid var(--danger-ink);
}
.warning-banner--danger .warning-banner__title {
	color: var(--danger-ink);
}

.recipe-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}
.recipe-layout__main {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}
.recipe-layout__side {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}
/* The spec sheet needs ~420 px to keep labels on one line; below 1200 px it stacks. */
@media (min-width: 1200px) {
	.recipe-layout {
		grid-template-columns: minmax(0, 1fr) 420px;
	}
	.recipe-layout__side {
		position: sticky;
		top: 84px;
		max-height: calc(100vh - 96px);
		overflow-y: auto;
		padding-right: 2px;
		scrollbar-width: thin;
	}
}

.recipe-section .card-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.section-hint {
	margin: 0;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
}
.recipe-section .card-body > *:last-child {
	margin-bottom: 0;
}

.model-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.model-list__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--bs-border-color);
	flex-wrap: wrap;
}
.model-list__item:first-child {
	padding-top: 0;
}
.model-list__item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.model-list__main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}
.model-list__name {
	font-weight: 600;
	font-size: 0.9375rem;
	color: inherit;
	text-decoration: none;
}
a.model-list__name:hover {
	color: var(--carbon-blue);
	text-decoration: underline;
}
.model-list__id {
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	background: none;
	padding: 0;
}
.model-list__badges {
	display: flex;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.code-block {
	border: 1px solid #393939;
	border-radius: var(--bs-border-radius);
	overflow: hidden;
	margin-bottom: 1.25rem;
	background: var(--code-bg);
	color: var(--code-fg);
}
.code-block__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.5rem 0.9rem;
	border-bottom: 1px solid #393939;
	font-size: 0.75rem;
	color: #c6c6c6;
	background: rgba(255, 255, 255, 0.03);
}
.code-block__head .btn {
	color: #f4f4f4;
	border-color: #6f6f6f;
	background: transparent;
}
.code-block__head .btn:hover {
	background: #393939;
	color: #fff;
}
.code-block pre {
	margin: 0;
	padding: 1rem 1.1rem;
	overflow-x: auto;
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--code-fg);
}
.code-block code {
	color: inherit;
	background: none;
	padding: 0;
}

.data-table {
	font-size: 0.8125rem;
	margin: 0 0 1rem;
	--bs-table-bg: transparent;
	--bs-table-color: var(--bs-body-color);
	--bs-table-border-color: var(--bs-border-color);
	--bs-table-hover-bg: var(--row-hover);
}
.data-table caption {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--bs-secondary-color);
	caption-side: top;
	padding-bottom: 0.4rem;
}
.data-table th {
	font-weight: 500;
	color: var(--bs-secondary-color);
}
.data-table tbody th {
	color: var(--bs-secondary-color);
	font-weight: 500;
	white-space: nowrap;
}
.data-table td code {
	font-size: 0.78rem;
}

.args-table td:first-child {
	width: 40%;
}

.prose-block {
	margin-top: 1rem;
}
.prose-block h3 {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bs-secondary-color);
	margin-bottom: 0.5rem;
}
.prose-block pre {
	background: var(--surface-sunken);
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.85rem 1rem;
	white-space: pre-wrap;
	word-break: break-word;
	font-size: 0.8125rem;
	margin: 0;
}

.launch-actions {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	flex-wrap: wrap;
	border-top: 1px solid var(--bs-border-color);
	padding-top: 1rem;
	margin-top: 0.25rem;
}
.launch-actions__hint {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
}

.repo-list {
	list-style: none;
	padding: 0;
	margin: 0 0 0.5rem;
}
.repo-list li {
	padding: 0.45rem 0;
	border-bottom: 1px solid var(--bs-border-color);
	font-size: 0.875rem;
}
.repo-list li:last-child {
	border-bottom: 0;
}
.repo-list__note {
	display: block;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
}

.benchmark-notes {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
	white-space: pre-wrap;
}

/* Rig card — a single-column spec sheet sized for a 420 px sidebar. */
.rig-card {
	min-width: 0;
}
.rig-card .card-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.4rem 0.75rem;
}
.rig-card__identity {
	flex: 1 1 11rem;
	min-width: 0;
}
.rig-card__title {
	font-size: 1.125rem;
	margin: 0;
	overflow-wrap: anywhere;
	hyphens: none;
}
.rig-card__id {
	margin: 0.15rem 0 0;
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	overflow-wrap: anywhere;
}
.rig-card__id code {
	font-size: 0.6875rem;
}
.rig-card__rev {
	color: var(--bs-secondary-color);
}
.rig-card__badges {
	display: flex;
	gap: 0.35rem;
	flex-wrap: wrap;
	justify-content: flex-end;
	margin-left: auto;
}
.rig-card > .rig-card__notice {
	margin: 1rem 1.25rem 0;
}
.rig-card__body {
	font-size: 0.8125rem;
	min-width: 0;
}
.rig-block {
	padding: 0.85rem 0;
	border-top: 1px solid var(--bs-border-color);
	min-width: 0;
}
.rig-block:first-of-type {
	padding-top: 0;
	border-top: 0;
}
.rig-block:last-of-type {
	padding-bottom: 0;
}
.rig-block__title {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bs-secondary-color);
	margin: 0 0 0.5rem;
	font-weight: 600;
}
.rig-block__hint {
	font-size: 0.8125rem;
	color: var(--bs-secondary-color);
	margin: 0;
}
.rig-block__hint--single {
	margin-top: 0.55rem;
	padding-top: 0.45rem;
	border-top: 1px dashed var(--bs-border-color);
	color: var(--bs-body-color);
}
.spec-list {
	display: grid;
	grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
	column-gap: 0.75rem;
	row-gap: 0.3rem;
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.45;
}
.spec-list dt {
	font-weight: 400;
	color: var(--bs-secondary-color);
	margin: 0;
	overflow-wrap: break-word;
}
.spec-list dd {
	margin: 0;
	color: var(--bs-body-color);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}
.spec-list--tight {
	font-size: 0.75rem;
}

.hardware-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hardware-list__item {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	padding: 0.3rem 0;
	border-bottom: 1px solid var(--bs-border-color);
	flex-wrap: wrap;
	min-width: 0;
}
.hardware-list__item:last-child {
	border-bottom: 0;
}
.hardware-list__kind {
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bs-secondary-color);
	flex: 0 0 3.5rem;
}
.hardware-list__name {
	font-weight: 500;
	font-size: 0.8125rem;
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}
.hardware-list__summary {
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	flex: 1 1 100%;
	padding-left: 4rem;
	overflow-wrap: anywhere;
}
.hardware-list__link {
	font-size: 0.6875rem;
	margin-left: auto;
}

/* GPU chips are separate from the site's filter chips. */
.gpu-chip {
	display: inline-block;
	font-size: 0.625rem;
	line-height: 1.4;
	padding: 0.1rem 0.4rem;
	border: 1px solid var(--bs-border-color);
	border-radius: 999px;
	background: var(--surface);
	color: var(--bs-secondary-color);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* Compact CPU benchmark: four aligned numbers plus one memory-bandwidth row. */
.bench-block {
	margin-top: 0.7rem;
}
.bench-block__title {
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bs-secondary-color);
	margin: 0 0 0.4rem;
	font-weight: 600;
}
.bench-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.4rem 0.75rem;
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.35;
}
.bench-grid__item {
	min-width: 0;
}
.bench-grid dt {
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bs-secondary-color);
	margin: 0;
}
.bench-grid dd {
	margin: 0;
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}
.bench-grid__value {
	font-weight: 600;
	color: var(--bs-body-color);
}
.bench-grid__unit {
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
}
.bench-grid__item--wide {
	grid-column: 1 / -1;
	padding-top: 0.3rem;
	border-top: 1px dashed var(--bs-border-color);
}

.gpu-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.6rem;
}
.gpu-card {
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.7rem 0.75rem;
	background: var(--surface-sunken);
	min-width: 0;
}
.gpu-card__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.3rem 0.5rem;
	margin-bottom: 0.35rem;
}
.gpu-card__title {
	font-size: 0.8125rem;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}
.gpu-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin: 0;
}
.gpu-card__metric {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.15rem 0.35rem;
	margin: 0.3rem 0 0;
	font-size: 0.75rem;
	line-height: 1.4;
}
.gpu-card__metric-label {
	color: var(--bs-secondary-color);
}
.gpu-card__metric strong {
	font-variant-numeric: tabular-nums;
}
.gpu-card__metric-note {
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	font-variant-numeric: tabular-nums;
}
.gpu-card__lines {
	display: grid;
	gap: 0.1rem;
	margin: 0.35rem 0 0;
	font-size: 0.75rem;
	line-height: 1.4;
}
.gpu-card__line {
	display: flex;
	gap: 0.4rem;
	margin: 0;
}
.gpu-card__line-label {
	flex: 0 0 3.25rem;
	color: var(--bs-secondary-color);
}
.gpu-card__line > span:last-child {
	min-width: 0;
	font-variant-numeric: tabular-nums;
}
.tflops-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.2rem 0.35rem;
	margin: 0.45rem 0 0;
	padding-top: 0.45rem;
	border-top: 1px dashed var(--bs-border-color);
}
.tflops-strip__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem;
	padding: 0.1rem 0.35rem;
	border-radius: var(--bs-border-radius-sm);
	background: var(--surface);
	font-size: 0.6875rem;
	line-height: 1.4;
}
.tflops-strip dt {
	font-size: 0.625rem;
	font-weight: 600;
	color: var(--bs-secondary-color);
	margin: 0;
}
.tflops-strip dd {
	margin: 0;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.interconnect-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 0.5rem;
}
.topology-wrap {
	margin-bottom: 0.5rem;
}
.topology-table {
	font-size: 0.7rem;
	margin-bottom: 0;
}
.topology-table th,
.topology-table td {
	padding: 0.25rem 0.4rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}
.topology-table tbody th {
	text-align: left;
}
.interconnect-pairs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.25rem;
	font-size: 0.75rem;
}
.interconnect-pairs li {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.interconnect-pairs__bw {
	margin-left: auto;
	font-variant-numeric: tabular-nums;
}

.rig-card__footnote {
	margin: 0;
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	border-top: 1px solid var(--bs-border-color);
	padding-top: 0.7rem;
}

.danger-zone {
	border-top: 1px solid var(--bs-border-color);
	margin-top: 0.85rem;
	padding-top: 0.85rem;
}

/* Forms */
.form-section {
	margin-bottom: 1.25rem;
}
.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.25rem;
}
.field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}
.field--full {
	grid-column: 1 / -1;
}
.field--grow {
	grid-column: span 2;
}
.field label {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--bs-body-color);
	margin: 0;
}
.field__hint {
	margin: 0;
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
}
.form-control,
.form-select {
	font-size: 0.875rem;
	padding: 0.45rem 0.65rem;
	border-radius: var(--bs-border-radius-sm);
}
.code-input {
	font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: 0.8125rem;
}
.form-control::placeholder {
	color: var(--bs-secondary-color);
	opacity: 0.7;
}

.model-row {
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.85rem;
	margin-bottom: 0.85rem;
	background: var(--surface-sunken);
}
.model-row legend {
	float: none;
	width: auto;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--bs-secondary-color);
	font-weight: 600;
	padding: 0 0.35rem;
	margin: 0;
}
.model-row__grid {
	display: grid;
	grid-template-columns: 8rem minmax(12rem, 2fr) minmax(8rem, 1fr) 8rem minmax(10rem, 1.4fr);
	gap: 0.65rem;
	align-items: start;
}
.model-results {
	list-style: none;
	margin: 0.3rem 0 0;
	padding: 0;
	max-height: 11rem;
	overflow-y: auto;
	border-radius: var(--bs-border-radius-sm);
}
.model-results:empty {
	display: none;
}
.model-results li {
	padding: 0.35rem 0.5rem;
	font-size: 0.75rem;
	border: 1px solid var(--bs-border-color);
	border-top: 0;
	background: var(--surface);
	cursor: pointer;
}
.model-results li:first-child {
	border-top: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm) var(--bs-border-radius-sm) 0 0;
}
.model-results li:hover,
.model-results li[aria-selected="true"] {
	background: rgba(15, 98, 254, 0.08);
}
.model-results .model-results__meta {
	display: block;
	color: var(--bs-secondary-color);
	font-size: 0.6875rem;
}

.launch-block {
	border-top: 1px solid var(--bs-border-color);
	padding-top: 0.9rem;
	margin-top: 0.9rem;
}
.launch-block:first-child {
	border-top: 0;
	padding-top: 0;
	margin-top: 0;
}

.repo-rows {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-bottom: 1rem;
}
.repo-row {
	display: flex;
	gap: 0.65rem;
	align-items: flex-end;
	flex-wrap: wrap;
}

.rig-picker {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 0.65rem;
}
.rig-option {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.7rem 0.8rem;
	background: var(--surface-sunken);
	cursor: pointer;
	font-weight: 400;
}
.rig-option:hover {
	border-color: var(--carbon-blue);
}
.rig-option:has(input:checked) {
	border-color: var(--carbon-blue);
	box-shadow: inset 0 0 0 1px var(--carbon-blue);
	background: var(--surface);
}
.rig-option input {
	margin-top: 0.2rem;
	accent-color: var(--carbon-blue);
}
.rig-option__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}
.rig-option__name {
	font-weight: 600;
	font-size: 0.875rem;
}
.rig-option__meta {
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	word-break: break-word;
}

.form-actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	border-top: 1px solid var(--bs-border-color);
	padding-top: 1.25rem;
	margin-top: 0.5rem;
}
.form-actions__hint {
	margin: 0;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	flex: 1 1 20rem;
}

.error-summary ul {
	margin: 0;
	padding-left: 1.1rem;
	font-size: 0.8125rem;
}
.error-summary__title {
	margin: 0 0 0.35rem;
	font-weight: 600;
}

/* Dashboard */
.dashboard-head {
	align-items: center;
}
.dashboard-head__identity {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.dashboard-head h1 {
	margin: 0;
	font-size: 1.75rem;
}
.dashboard-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 1.25rem;
	align-items: start;
}
.dashboard-side {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.dashboard-panel .card-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.dash-recipes {
	display: flex;
	flex-direction: column;
}
.dash-recipe {
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--bs-border-color);
}
.dash-recipe:first-child {
	padding-top: 0;
}
.dash-recipe:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.dash-recipe__head {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-start;
}
.dash-recipe__title {
	font-size: 0.9375rem;
	margin: 0 0 0.25rem;
}
.dash-recipe__title a {
	color: inherit;
	text-decoration: none;
}
.dash-recipe__title a:hover {
	color: var(--carbon-blue);
}
.dash-recipe__meta {
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	margin: 0;
	display: flex;
	gap: 0.4rem;
	align-items: center;
	flex-wrap: wrap;
}
.dash-recipe__actions {
	display: flex;
	gap: 0.35rem;
	flex-wrap: wrap;
	align-items: center;
}
.dash-recipe__state {
	margin-top: 0.5rem;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
}
.dash-recipe__state ul {
	margin: 0.2rem 0 0;
	padding-left: 1.1rem;
}
.dash-recipe__blockers {
	margin: 0;
	font-weight: 600;
}
.dash-recipe__ready {
	margin: 0;
	color: var(--carbon-green);
	font-weight: 600;
}
.dash-recipe__bench {
	margin: 0.5rem 0 0;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
}
.inline-form {
	display: inline-flex;
	margin: 0;
}

.rig-summary-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.rig-summary {
	padding: 0.65rem 0;
	border-bottom: 1px solid var(--bs-border-color);
}
.rig-summary:first-child {
	padding-top: 0;
}
.rig-summary:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.rig-summary__head {
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.875rem;
}
.rig-summary__meta,
.rig-summary__hardware {
	margin: 0.15rem 0 0;
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	word-break: break-word;
}
.instruction-list {
	margin: 0 0 0.75rem;
	padding-left: 1.1rem;
	font-size: 0.8125rem;
}
.instruction-list li {
	margin-bottom: 0.4rem;
}

/* Auth, CLI, about, errors */
.auth-page {
	display: flex;
	justify-content: center;
	padding-top: 4rem;
}
.auth-card {
	width: min(100%, 520px);
}
.auth-card h1 {
	font-size: 1.75rem;
	margin-bottom: 0.75rem;
}

.quick-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}
.quick-card h2 {
	font-size: 0.9375rem;
	margin-bottom: 0.6rem;
}
.code-snip {
	background: var(--code-bg);
	color: var(--code-fg);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.8rem 1rem;
	font-size: 0.75rem;
	line-height: 1.6;
	margin: 0;
	overflow-x: auto;
}
.code-snip code {
	background: none;
	color: inherit;
	padding: 0;
}

.readme-card {
	margin-bottom: 1.25rem;
}
.readme {
	white-space: pre-wrap;
	word-break: break-word;
	font-size: 0.8125rem;
	line-height: 1.6;
	margin: 0;
	max-height: 44rem;
	overflow: auto;
}

.prose-page .prose {
	max-width: 48rem;
	font-size: 0.9375rem;
}
.prose-page .prose h2 {
	font-size: 1.125rem;
	margin-top: 1.75rem;
}
.prose-page .prose p,
.prose-page .prose li {
	color: var(--bs-secondary-color);
}
.about-version {
	font-size: 0.75rem;
	margin-top: 2rem;
}

.error-page {
	text-align: center;
	padding-top: 5rem;
	padding-bottom: 6rem;
}
.error-page__code {
	font-size: 3rem;
	font-weight: 700;
	color: var(--carbon-blue);
	margin: 0;
	line-height: 1;
}
.error-page h1 {
	margin: 0.75rem 0 0.5rem;
	font-size: 1.75rem;
}
.error-page__message {
	color: var(--bs-secondary-color);
	max-width: 38rem;
	margin: 0 auto 1.5rem;
}
.error-page__actions {
	display: flex;
	justify-content: center;
	gap: 0.6rem;
	flex-wrap: wrap;
}

/* Footer */
.site-footer {
	border-top: 1px solid var(--bs-border-color);
	background: var(--surface-sunken);
	padding: 2rem 0;
	margin-top: 2rem;
}
.site-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem 2rem;
	align-items: start;
}
.site-footer__brand {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	max-width: 36rem;
}
.site-footer__brand .brand__logo {
	height: 20px;
}
.site-footer__note {
	flex-basis: 100%;
	font-size: 0.75rem;
	color: var(--bs-secondary-color);
	margin: 0.25rem 0 0;
}
.site-footer__links {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: 0.8125rem;
}
.site-footer__meta {
	grid-column: 1 / -1;
	font-size: 0.6875rem;
	color: var(--bs-secondary-color);
	margin: 0.25rem 0 0;
}

/* Responsive */
@media (max-width: 1000px) {
	.dashboard-grid {
		grid-template-columns: 1fr;
	}
	.hero__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
	.hero__panel {
		max-width: 100%;
	}
	.model-row__grid {
		grid-template-columns: 1fr 1fr;
	}
	.field--grow {
		grid-column: 1 / -1;
	}
}

@media (max-width: 720px) {
	.site-header__inner {
		gap: 0.75rem;
	}
	.site-nav {
		order: 3;
		width: 100%;
		overflow-x: auto;
		padding-bottom: 0.15rem;
	}
	.site-header__account {
		margin-left: auto;
	}
	.site-header {
		position: static;
	}
	.form-grid {
		grid-template-columns: 1fr;
	}
	.model-row__grid {
		grid-template-columns: 1fr;
	}
	.recipe-header__actions {
		align-items: flex-start;
		padding-top: 0;
	}
	.recipe-header__actions .btn {
		width: 100%;
		text-align: center;
	}
	.filter-bar {
		flex-direction: column;
		align-items: stretch;
	}
	.filter-bar__field {
		min-width: 0;
	}
	.site-footer__inner {
		grid-template-columns: 1fr;
	}
	.hardware-list__summary {
		padding-left: 0;
	}
	.card-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	* {
		transition: none !important;
		animation: none !important;
	}
}

@media print {
	.site-header,
	.site-footer,
	.hero__panel,
	.recipe-header__actions,
	.launch-actions,
	.site-nav {
		display: none;
	}
	.recipe-layout {
		display: block;
	}
	body {
		color: #000;
		background: #fff;
	}
}

.instruction-list--roomy li {
	margin-bottom: 1.1rem;
}
.instruction-list--roomy .code-snip {
	margin-top: 0.45rem;
}

.section-hint--center {
	margin-top: 0.9rem;
	text-align: center;
}
