:root {
	--tan: #efc37f;
	--danger: #a33221;
	--code-paper: #f7f2e7;
	--code-height: 22px;
}
body {
	min-width: 320px;
}
button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}
button,
select {
	border: 1px solid var(--line);
	background: var(--panel);
	border-radius: 0.4rem;
	padding: 0.45rem 0.7rem;
}
button {
	cursor: pointer;
	white-space: nowrap;
	font-weight: 650;
}
button:hover:not(:disabled) {
	border-color: var(--accent);
	background: var(--accent-wash);
}
button:disabled {
	opacity: 0.45;
	cursor: default;
}
input[type="checkbox"] {
	accent-color: var(--accent);
	margin: 0;
}
a {
	color: inherit;
}
[hidden] {
	display: none !important;
}
h1,
h2,
h3,
p {
	margin: 0;
}
main {
	width: min(1440px, calc(100% - 3rem));
	margin: auto;
	padding: 2.8rem 0 2.5rem;
}
.intro {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 2rem;
	margin: 0 0 2rem;
}
.eyebrow {
	color: var(--accent);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 0.6rem;
}
h1 {
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	font-weight: 850;
	letter-spacing: -0.055em;
	line-height: 1.05;
	margin-bottom: 0.8rem;
}
.intro > div > p:last-child {
	font-size: 0.95rem;
	color: var(--muted);
}
.local-note {
	font-size: 0.78rem;
	line-height: 1.8;
	padding-bottom: 0.15rem;
}
.local-note > span:last-child {
	color: var(--muted);
}
.local-dot {
	display: inline-block;
	width: 0.45rem;
	height: 0.45rem;
	background: #28735b;
	border-radius: 50%;
	margin-right: 0.3rem;
}
.workspace {
	border: 1px solid var(--line);
	border-radius: 0.65rem;
	background: var(--panel);
	box-shadow: 0 5px 18px #0b2c3508;
	overflow: hidden;
}
.workspace-toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding: 0.9rem 1rem;
	font-size: 0.75rem;
	border-bottom: 1px solid var(--line);
}
.example-control {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	font-weight: 700;
}
.example-control select {
	max-width: 17rem;
	font-weight: 500;
}
.workspace-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 0.7rem;
}
.link-control,
.tables-control {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	white-space: nowrap;
}
.primary {
	background: var(--ink);
	color: var(--paper);
	border-color: var(--ink);
	padding: 0.55rem 0.85rem;
}
.primary:hover:not(:disabled) {
	color: var(--paper);
	background: #164653;
}
kbd {
	font-size: 0.65rem;
	font-weight: 400;
	margin-left: 0.55rem;
	opacity: 0.7;
}
.settings {
	padding: 1rem;
	border-bottom: 1px solid var(--line);
	background: var(--code-paper);
	font-size: 0.75rem;
}
.settings-selects {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: end;
}
.settings-selects label {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}
.settings-selects button {
	margin-left: auto;
}
.toggles {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.3rem;
	margin: 1rem 0 0.6rem;
}
.toggles label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.settings p {
	color: var(--muted);
}
.panes {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.pane {
	min-width: 0;
}
.source-pane {
	border-right: 1px solid var(--line);
}
.pane header {
	min-height: 4.2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	padding: 0.8rem 1rem;
}
.pane header > div {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-width: 0;
}
.pane-index {
	font: 0.65rem var(--mono);
	color: var(--accent);
	border: 1px solid var(--line);
	border-radius: 0.25rem;
	padding: 0.25rem 0.35rem;
}
h2 {
	font-size: 0.9rem;
	font-weight: 750;
	white-space: nowrap;
}
h2 > span {
	color: var(--muted);
	font-weight: 400;
	font-size: 0.75rem;
}
.pane-meta,
.output-badge {
	color: var(--muted);
	font-size: 0.65rem;
	white-space: nowrap;
}
.output-badge {
	border-radius: 2rem;
	background: var(--accent-wash);
	color: #23564e;
	padding: 0.2rem 0.55rem;
}
.output-badge[data-stale="true"] {
	background: var(--tan);
	color: var(--ink);
}
.pane-actions {
	gap: 0.25rem !important;
}
.pane-actions button,
.pane-tools button {
	font-size: 0.7rem;
	border-color: transparent;
	padding: 0.25rem 0.4rem;
}
.pane-tools {
	height: 2.7rem;
	padding: 0.4rem 1rem;
	border-block: 1px solid var(--line);
	display: flex;
	gap: 0.5rem;
	justify-content: space-between;
	align-items: center;
	font-size: 0.7rem;
}
.pane-tools p {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--muted);
}
.pane-tools select {
	border: 0;
	background: transparent;
	min-width: 0;
	width: 16rem;
	padding: 0.15rem 0;
	font-size: 0.7rem;
	text-overflow: ellipsis;
}
.tables-control {
	color: var(--muted);
	font-size: 0.65rem;
}
.code-editor {
	height: clamp(26rem, 58vh, 48rem);
	position: relative;
	overflow: hidden;
	background: var(--code-paper);
	font: 12px/var(--code-height) var(--mono);
	tab-size: 2;
}
.c-pane .code-editor {
	background: #fffcf5;
}
.code-editor textarea {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	resize: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 16px 16px 16px 56px;
	background: transparent;
	font: inherit;
	tab-size: inherit;
	white-space: pre;
	overflow: auto;
	color: transparent;
	-webkit-text-fill-color: transparent;
	caret-color: var(--ink);
	outline-offset: -3px;
}
.code-editor textarea::selection {
	background: #007e9933;
}
.code-paint,
.code-gutter {
	position: absolute;
	top: 16px;
	left: 0;
	margin: 0;
	font: inherit;
	pointer-events: none;
}
.code-paint {
	left: 56px;
	right: 0;
	overflow: hidden;
}
.code-gutter {
	width: 45px;
	text-align: right;
	color: #8b9694;
	background: var(--code-paper);
}
.c-pane .code-gutter {
	background: #fffcf5;
}
.code-row,
.gutter-row {
	display: block;
	height: var(--code-height);
	white-space: pre;
}
.code-row.is-linked {
	background: #007e9917;
	box-shadow: inset 2px 0 var(--accent);
}
.gutter-row.is-linked {
	color: var(--accent);
	font-weight: 750;
}
.code-text {
	display: block;
	padding-right: 16px;
	width: max-content;
	min-width: 100%;
}
.syntax-comment {
	color: #7a8982;
	font-style: italic;
}
.syntax-string {
	color: #88702c;
}
.syntax-number {
	color: #b04e30;
}
.syntax-keyword {
	color: #007e99;
}
.syntax-type {
	color: #92546f;
}
.pane footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.4rem;
	padding: 0.5rem 1rem;
	font: 0.64rem var(--mono);
	color: var(--muted);
	border-top: 1px solid var(--line);
}
.empty-state {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 2rem;
	background: var(--panel);
}
.empty-state > span {
	font: 1.7rem var(--mono);
	letter-spacing: -0.08em;
	margin-bottom: 1.5rem;
}
.empty-state > span > span {
	color: var(--accent);
	margin-inline: 0.6rem;
}
.empty-state h3 {
	font-size: 1rem;
	margin-bottom: 0.5rem;
}
.empty-state p {
	color: var(--muted);
	font-size: 0.8rem;
	line-height: 1.8;
}
.empty-state button {
	margin-top: 1.4rem;
	font-size: 0.75rem;
	border-color: transparent;
	color: var(--accent);
	background: var(--accent-wash);
}
.connection-bar {
	display: flex;
	gap: 0.7rem;
	align-items: center;
	border-bottom: 1px solid var(--line);
	padding: 0.75rem 1rem;
	font-size: 0.72rem;
	color: var(--muted);
}
.connection-mark {
	font: 1.1rem var(--mono);
	color: var(--accent);
}
#mapping-state {
	margin-left: auto;
	font: 0.62rem var(--mono);
	white-space: nowrap;
}
.result-bar {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 0.9rem 0.1rem;
	color: var(--muted);
	font-size: 0.72rem;
}
#status[data-state="error"] {
	color: var(--danger);
}
#status[data-state="loading"],
#status[data-state="compiling"] {
	color: var(--accent);
}
#statistics {
	font-family: var(--mono);
	font-size: 0.65rem;
}
.diagnostics {
	padding: 1rem;
	font: 0.75rem/1.7 var(--mono);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	background: #a332210a;
	border: 1px solid #a3322133;
	border-radius: 0.5rem;
	color: var(--danger);
}
.explorer-notes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 60rem;
	margin-top: 1.4rem;
	font-size: 0.78rem;
	color: var(--muted);
}
.explorer-notes strong {
	color: var(--ink);
}
.version {
	font: 0.7rem/1.6 var(--mono);
	white-space: pre-line;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.skip {
	position: absolute;
	top: -4rem;
	left: 1rem;
	padding: 0.5rem 1rem;
	background: var(--panel);
	z-index: 2;
}
.skip:focus {
	top: 0.5rem;
}
@media (min-width: 1500px) {
	.intro {
		padding-inline: calc((100% - 1180px) / 2);
	}
}
@media (max-width: 1100px) {
	main {
		width: calc(100% - 2rem);
	}
	.workspace-actions {
		gap: 0.5rem;
	}
	.link-control {
		margin-left: 0.5rem;
	}
	.output-badge {
		display: none;
	}
	.pane header {
		min-height: 4rem;
	}
}
@media (max-width: 850px) {
	.workspace-actions {
		width: 100%;
		margin-left: 0;
		padding-top: 0.3rem;
	}
	.link-control {
		margin-left: 0;
		margin-right: auto;
	}
	.intro {
		gap: 1rem;
	}
	.local-note {
		max-width: 11rem;
	}
	h2 > span {
		display: none;
	}
	.tables-control {
		font-size: 0.6rem;
	}
	.pane header {
		padding-inline: 0.7rem;
	}
	.pane-tools {
		padding-inline: 0.7rem;
	}
}
@media (max-width: 600px) {
	main {
		width: calc(100% - 1.25rem);
		padding-top: 1.8rem;
	}
	.intro {
		display: block;
		margin-bottom: 1.5rem;
	}
	h1 {
		font-size: 2.5rem;
	}
	.local-note {
		margin-top: 1rem;
		max-width: none;
	}
	.local-note br {
		display: none;
	}
	.local-note > span:last-child {
		margin-left: 0.25rem;
	}
	.panes {
		grid-template-columns: minmax(0, 1fr);
	}
	.source-pane {
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}
	.code-editor {
		height: 22rem;
	}
	.source-pane .code-editor {
		height: 19rem;
	}
	.output-badge {
		display: inline;
	}
	.workspace-toolbar {
		padding: 0.8rem;
	}
	.example-control select {
		max-width: 13.5rem;
	}
	.workspace-actions {
		flex-wrap: wrap;
		font-size: 0.7rem;
	}
	kbd {
		display: none;
	}
	.pane-tools select {
		width: 65%;
	}
	.connection-bar {
		align-items: start;
	}
	#mapping-state {
		display: none;
	}
	.explorer-notes {
		grid-template-columns: 1fr;
		gap: 0.8rem;
	}
	.settings-selects {
		align-items: start;
		flex-direction: column;
	}
	.settings-selects button {
		margin-left: 0;
	}
}

.empty-state {
	font-family: var(--sans);
}
@media (max-width: 1100px) {
	.output-badge[data-stale="true"] {
		display: inline-flex;
	}
	.c-pane header:has([data-stale="true"]) .pane-index {
		display: none;
	}
}

.connection-bar p {
	min-width: 0;
	overflow-wrap: anywhere;
	flex: 1;
}
.range-navigation {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-shrink: 0;
	margin-left: auto;
}
.range-navigation button {
	padding: 0.1rem 0.4rem;
	font-size: 0.8rem;
}
.range-navigation span {
	white-space: nowrap;
	font: 0.65rem var(--mono);
}
.range-navigation:not([hidden]) + #mapping-state {
	margin-left: 0.5rem;
}

:root {
	color-scheme: light;
	--paper: #fff9ed;
	--panel: #fffcf5;
	--ink: #0b2c35;
	--muted: #52666a;
	--line: color-mix(in srgb, var(--ink) 17%, transparent);
	--accent: #007e99;
	--accent-wash: #d7f0ed;
	--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	--sans:
		Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
		sans-serif;
	font: 16px/1.6 var(--sans);
	background: var(--paper);
	color: var(--ink);
}
* {
	box-sizing: border-box;
}
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	text-rendering: optimizeLegibility;
}
:focus-visible {
	outline: 3px solid var(--accent);
	outline-offset: 4px;
}
.site-navigation,
.site-footer {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 2rem));
	margin-inline: auto;
}
.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5.25rem;
	border-bottom: 1px solid var(--line);
	gap: 1rem;
	line-height: 1.6;
}
.site-header .wordmark {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	color: inherit;
	text-decoration: none;
	font-weight: 900;
	letter-spacing: -0.04em;
	font-size: 1.25rem;
}
.site-header .nav-mascot {
	display: block;
	width: 2.65rem;
	height: 2.65rem;
	aspect-ratio: 1;
	border: 2px solid currentColor;
	border-radius: 50%;
	object-fit: cover;
}
.site-header nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	font-size: 0.9rem;
	font-weight: 700;
}
.site-header nav a {
	color: inherit;
	text-decoration: none;
	text-underline-offset: 0.25rem;
}
.site-header nav a[aria-current],
.site-header nav a:hover {
	text-decoration: underline;
}
.site-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.8rem;
}
@media (max-width: 820px) {
	.site-header {
		min-height: 4.5rem;
		flex-wrap: wrap;
		padding-block: 0.75rem;
	}
}
@media (max-width: 600px) {
	.site-navigation,
	.site-footer {
		width: calc(100% - 1.25rem);
	}
}
