:root {
	--ink: #17211d;
	--muted: #68716d;
	--paper: #f4f1e9;
	--surface: #fffdf8;
	--line: #d8d4ca;
	--line-strong: #b9b5aa;
	--accent: #155f52;
	--accent-soft: #e8f3ef;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	color: var(--ink);
	background: var(--paper);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

header, main, footer {
	width: min(1500px, calc(100% - 32px));
	margin-inline: auto;
}

header {
	padding: 40px 0 24px;
	border-bottom: 1px solid var(--line);
}

.eyebrow {
	margin: 0 0 6px;
	color: var(--accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-size: clamp(2rem, 5vw, 4.2rem); line-height: 1; }
header p:last-child { max-width: 850px; margin-bottom: 0; color: var(--muted); }

main { padding: 24px 0 52px; }

.controls {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	padding: 16px;
	border: 1px solid var(--line);
	background: var(--surface);
}

.controls > div > span {
	display: block;
	margin-bottom: 8px;
	color: var(--muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.toggle-control {
	display: inline-flex;
	align-items: center;
	align-self: end;
	gap: 8px;
	width: max-content;
	color: var(--muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.toggle-control input { accent-color: var(--accent); }

.range-control {
	display: grid;
	grid-template-columns: auto minmax(120px, 1fr) 54px auto;
	align-items: center;
	gap: 9px;
}

.range-control label {
	color: var(--muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.range-control output {
	color: var(--muted);
	font-size: 0.78rem;
	font-variant-numeric: tabular-nums;
}

.button-row { display: flex; flex-wrap: wrap; gap: 8px; }

button {
	padding: 7px 11px;
	border: 1px solid #aaa99f;
	border-radius: 7px;
	color: var(--ink);
	background: white;
	cursor: pointer;
	font: inherit;
	font-size: 0.8rem;
	font-weight: 700;
}

button[aria-pressed="true"] {
	border-color: var(--accent);
	color: white;
	background: var(--accent);
}

.selection-line {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	padding: 24px 2px 14px;
}

.selection-line h2 { margin-bottom: 0; font-size: 1.35rem; }
.selection-line p { margin-bottom: 0; color: var(--muted); font-size: 0.8rem; }

.comparison-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.panel {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	background: white;
}

.panel header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: auto;
	padding: 10px 12px;
	border-bottom: 1px solid var(--line);
}

.panel strong, .panel small { display: block; }
.panel strong { font-size: 0.84rem; }
.panel small { margin-top: 2px; color: var(--muted); font-size: 0.7rem; }
.panel .variant-note { max-width: 360px; color: #47514d; font-size: 0.64rem; line-height: 1.35; }
.panel a { color: var(--accent); font-size: 0.72rem; font-weight: 750; text-decoration: none; }

.variant-control {
	display: grid;
	gap: 3px;
	margin-left: auto;
}

.variant-control span {
	color: var(--muted);
	font-size: 0.56rem;
	font-weight: 850;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.variant-control select {
	max-width: 180px;
	padding: 5px 7px;
	border: 1px solid var(--line-strong);
	border-radius: 6px;
	background: var(--surface);
	font: inherit;
	font-size: 0.68rem;
}

.image-frame {
	min-height: 320px;
	overflow: auto;
	background: #f8f8f6;
}

.image-frame img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	background: white;
}

.missing {
	padding: 40px;
	color: var(--muted);
	font-size: 0.85rem;
	text-align: center;
}

.evidence-note {
	margin-top: 28px;
	padding: 20px 22px;
	border: 1px solid var(--line-strong);
	border-left: 5px solid var(--accent);
	background: var(--surface);
}

.evidence-note h2 { margin-bottom: 8px; font-size: 1.2rem; }
.evidence-note p:not(.eyebrow) { max-width: 1050px; margin-bottom: 10px; color: var(--muted); line-height: 1.55; }
.evidence-note a { color: var(--accent); font-size: 0.78rem; font-weight: 750; text-decoration: none; }

.raw-browser {
	margin-top: 42px;
	overflow: hidden;
	border: 1px solid var(--line-strong);
	background: var(--surface);
}

.raw-browser-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 22px 16px;
}

.raw-browser-heading h2 { margin-bottom: 0; font-size: 1.35rem; }
.raw-browser-heading > p { margin-bottom: 0; color: var(--muted); font-size: 0.78rem; }

.raw-controls {
	display: grid;
	grid-template-columns: repeat(7, minmax(110px, 1fr));
	gap: 10px;
	padding: 14px 22px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: #faf8f2;
}

.raw-controls label {
	display: grid;
	gap: 5px;
}

.raw-controls label > span,
.result-item span,
.prompt-block span,
.response-block span {
	color: var(--muted);
	font-size: 0.59rem;
	font-weight: 850;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.raw-controls select,
.raw-controls input {
	min-width: 0;
	width: 100%;
	padding: 8px;
	border: 1px solid var(--line-strong);
	border-radius: 7px;
	background: var(--surface);
	font: inherit;
	font-size: 0.74rem;
}

.raw-controls .raw-search { grid-column: span 7; }

.raw-loading,
.empty-trials {
	padding: 36px;
	color: var(--muted);
	text-align: center;
	font-size: 0.8rem;
}

.raw-results {
	padding: 18px;
	background: #f8f6f0;
}

.trial-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.trial-card {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	background: #fff;
}

.trial-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: auto;
	margin: 0;
	padding: 9px 11px;
	border-bottom: 1px solid var(--line);
	background: #f4f2ec;
}

.trial-identity { display: flex; flex-wrap: wrap; gap: 5px; }

.trial-tag {
	display: inline-flex;
	align-items: center;
	min-height: 21px;
	padding: 2px 7px;
	border: 1px solid var(--line);
	border-radius: 999px;
	color: #4f5955;
	background: #fff;
	font-size: 0.6rem;
	font-weight: 750;
}

.trial-tag.semantic { color: #174d43; border-color: #a8c9bd; background: var(--accent-soft); }
.trial-tag.control { color: #72531d; border-color: #d9be8f; background: #fff4df; }
.trial-tag.correct-tag { color: #174d43; border-color: #a8c9bd; background: #edf8f4; }
.trial-tag.wrong-tag,
.trial-tag.invalid { color: #873a31; border-color: #d6a8a1; background: #fff0ed; }

.trial-result {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--line);
}

.result-item {
	min-width: 0;
	padding: 10px 11px;
	background: #fff;
}

.result-item span,
.prompt-block span,
.response-block span { display: block; margin-bottom: 4px; }

.result-item code {
	display: block;
	overflow-wrap: anywhere;
	font-size: 0.72rem;
}

.prompt-stack,
.response-stack {
	display: grid;
	gap: 8px;
	padding: 11px;
}

.prompt-stack { border-top: 1px solid var(--line); }
.response-stack { border-top: 1px solid var(--line); background: #fbfaf7; }

.prompt-block,
.response-block {
	padding: 9px 10px;
	border-left: 3px solid var(--line-strong);
	background: #f8f7f3;
}

.prompt-block.system { border-left-color: #315e7d; }
.prompt-block.acknowledgement { border-left-color: #7a6195; }
.prompt-block.user { border-left-color: #b56c28; }
.prompt-block.prefill { border-left-color: var(--accent); }
.response-block.generated { border-left-color: #2d7964; background: #f0f8f5; }
.trial-card.wrong .response-block.generated { border-left-color: #ad4d40; background: #fff5f3; }

.prompt-block p,
.response-block p {
	margin-bottom: 0;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	font-size: 0.74rem;
}

.trial-details {
	border-top: 1px solid var(--line);
	background: #faf9f5;
}

.trial-details summary {
	padding: 9px 11px;
	cursor: pointer;
	color: var(--accent);
	font-size: 0.67rem;
	font-weight: 750;
}

.raw-prompt {
	max-height: 320px;
	margin: 0 11px 11px;
	padding: 10px;
	overflow: auto;
	border: 1px solid var(--line);
	border-radius: 7px;
	background: #fff;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	font-size: 0.65rem;
}

.load-more {
	width: 100%;
	margin-top: 14px;
	padding: 10px;
	color: var(--accent);
}

.load-more[hidden],
[hidden] { display: none !important; }

footer {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 0 32px;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.78rem;
}

footer a { color: var(--accent); }

@media (max-width: 760px) {
	.controls, .comparison-grid { grid-template-columns: 1fr; }
	.range-control { grid-template-columns: auto minmax(80px, 1fr) 50px auto; }
	.selection-line { align-items: start; flex-direction: column; gap: 4px; }
	.raw-browser-heading { align-items: start; flex-direction: column; gap: 5px; }
	.raw-controls { grid-template-columns: 1fr; padding-inline: 14px; }
	.raw-controls .raw-search { grid-column: auto; }
	.raw-results { padding: 10px; }
	.trial-list { grid-template-columns: 1fr; }
}
