:root {
  --red: #da001b;
  --red-deep: #a80015;
  --red-wash: #fdecee;
  --ink: #1d1f23;
  --graphite: #4a4f57;
  --graphite-wash: #eceef0;
  --muted: #6c7179;
  --line: #e4e2e0;
  --paper: #ffffff;
  --wash: #f6f6f5;
  --ok: #1f7a4d;
  --n-models: 3;             /* set from the server's model list */
  --display: "Futura PT", Futura, "Century Gothic", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --body: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;
  --code: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --radius-s: 4px;
  --radius-m: 10px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 16px/1.55 var(--body); font-variant-numeric: tabular-nums;
}
a { color: var(--red-deep); }
code { font-family: var(--code); font-size: .88em; background: var(--wash); padding: .1em .35em; border-radius: var(--radius-s); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }

/* ---------- top bar */
.topbar {
  position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 28px;
  padding: 14px clamp(16px, 4vw, 48px); background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line); backdrop-filter: blur(6px);
}
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); }
.brand-logo { height: 20px; width: auto; display: block; }
.brand-name { font: 500 18px/1 var(--display); letter-spacing: .02em; padding-left: 14px; border-left: 1px solid var(--line); }
.nav { display: flex; gap: 22px; margin-left: auto; }
.nav a { color: var(--graphite); text-decoration: none; font-size: 15px; }
.nav a:hover { color: var(--red); }
.readiness { font-size: 14px; color: var(--muted); white-space: nowrap; }
.readiness.ready { color: var(--ok); }

/* ---------- hero */
main { padding: 0 clamp(16px, 4vw, 48px); max-width: 1320px; margin: 0 auto; }
.hero {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: center;
  padding: 72px 0 64px; border-bottom: 1px solid var(--line);
}
.kicker { color: var(--red); font-weight: 600; margin: 0 0 14px; }
.hero h1 { font: 500 clamp(40px, 5.6vw, 72px)/1.02 var(--display); letter-spacing: -.01em; margin: 0 0 22px; }
.lede { font-size: 19px; color: var(--graphite); max-width: 58ch; margin: 0 0 30px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.versus { display: flex; flex-wrap: wrap; align-items: stretch; row-gap: 10px; }
.versus.many { gap: 10px; }
.versus-side { flex: 1 0 auto; display: flex; flex-direction: column; padding: 24px 16px; border-radius: var(--radius-m); }
.versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); }
.versus-mid { display: grid; place-items: center; padding: 0 8px; font: 500 22px var(--display); color: var(--muted); background: var(--paper); }
.versus-name { font: 500 18px/1.2 var(--display); white-space: nowrap; }
.versus-figure { font: 500 clamp(28px, 3vw, 44px)/1.05 var(--display); margin-top: 16px; white-space: nowrap; }
.versus-unit { font-size: 14px; opacity: .85; }

/* ---------- buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px;
  padding: 11px 22px; font: 600 15px var(--body); text-decoration: none; cursor: pointer; border: 1.5px solid transparent;
}
.btn-primary { background: var(--red); color: #fff; }
.btn-primary:hover { background: var(--red-deep); }
.btn-primary:disabled { background: #d9b7bb; cursor: progress; }
.btn-quiet { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn-quiet:hover { border-color: var(--red); color: var(--red); }
.btn-small { padding: 6px 14px; font-size: 13px; }

/* ---------- sections */
.section { padding: 64px 0; border-bottom: 1px solid var(--line); }
.section-head { max-width: 760px; margin-bottom: 32px; }
.step { font: 500 15px var(--display); color: var(--red); margin: 0 0 6px; letter-spacing: .03em; }
.section h2 { font: 500 clamp(28px, 3.2vw, 38px)/1.15 var(--display); margin: 0 0 12px; }
.section-note { color: var(--graphite); margin: 0; max-width: 72ch; }

/* ---------- setup */
.models { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.model-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 24px; background: var(--paper); }
.model-card.side-laya, .sum-card.side-laya { border-top: 4px solid var(--graphite); }
.model-card h3 { font: 500 24px var(--display); margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; }
.model-card .repo { color: var(--muted); font-size: 14px; margin: 4px 0 18px; }
.state-tag { font: 600 13px var(--body); padding: 3px 10px; border-radius: 999px; background: var(--wash); color: var(--graphite); }
.state-tag.ready { background: #e6f4ec; color: var(--ok); }
.state-tag.error { background: var(--red-wash); color: var(--red-deep); }
.state-tag.loading::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-radius: 50%; background: currentColor; animation: pulse 1.2s infinite ease-in-out; }
@keyframes pulse { 50% { opacity: .2; } }
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; margin: 0; }
.facts div { border-top: 1px solid var(--line); padding-top: 10px; }
.facts dt { font-size: 13px; color: var(--muted); }
.facts dd { margin: 2px 0 0; font-weight: 600; font-size: 17px; overflow-wrap: anywhere; }
.model-error { color: var(--red-deep); font-size: 14px; margin: 16px 0 0; overflow-wrap: anywhere; }
.env { color: var(--muted); font-size: 14px; margin: 18px 0 0; }

/* ---------- decision */
.demo-blurb { margin: 0; font-size: 16px; color: var(--graphite); }
.field { display: block; margin-bottom: 18px; }
.field > span { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.field small { font-weight: 400; color: var(--muted); }
textarea {
  width: 100%; resize: vertical; font: 13.5px/1.5 var(--code); color: var(--ink); padding: 12px 14px;
  border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--wash);
}
textarea:focus { background: var(--paper); border-color: var(--red); outline: none; }
.controls { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: end; }
.control span { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.control output { color: var(--red); }
input[type="range"] { width: 100%; accent-color: var(--red); }
select { width: 100%; font: 14px var(--body); padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--paper); color: var(--ink); }
.run { min-width: 190px; }
.form-error { color: var(--red-deep); font-weight: 600; margin: 14px 0 0; min-height: 1.2em; }

/* ---------- verdicts */
.timing { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-m); margin-bottom: 28px; overflow: hidden; }
.timing div { padding: 16px 20px; border-right: 1px solid var(--line); }
.timing div:last-child { border-right: 0; }
.timing b { display: block; font: 500 28px/1.1 var(--display); }
.timing span { font-size: 13px; color: var(--muted); }

.empty { color: var(--muted); padding: 36px 0; }
.verdict { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px; margin-bottom: 20px; }
.verdict-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; }
.verdict-q { font: 500 20px/1.3 var(--display); margin: 0; }
.verdict-meta { font-size: 13px; color: var(--muted); margin: 2px 0 0; }
.agree { align-self: flex-start; font-weight: 600; font-size: 13px; padding: 4px 12px; border-radius: 999px; }
.agree.yes { background: #e6f4ec; color: var(--ok); }
.agree.no { background: var(--red-wash); color: var(--red-deep); }
.agree.part { background: #fff4e0; color: #8a5300; }

.answers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-bottom: 18px; }
.answer { padding: 12px 16px; border-radius: var(--radius-s); background: var(--wash); border-left: 4px solid var(--graphite); }
.answer .who { font-size: 13px; color: var(--muted); }
.answer .what { font: 500 21px/1.25 var(--display); margin: 2px 0 6px; overflow-wrap: anywhere; }
.answer .how { font-size: 13px; color: var(--graphite); }
.badge { display: inline-block; font-weight: 700; font-size: 12px; padding: 1px 9px; border-radius: 999px; margin: 0 4px; }
.badge.act { background: var(--ink); color: #fff; }
.badge.defer { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.ref { font-size: 13px; }
.ref.hit { color: var(--ok); }
.ref.miss { color: var(--red-deep); }
.answer .err { color: var(--red-deep); font-size: 14px; }

.bars { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr); gap: 8px 14px; align-items: center; }
.bar-stack { display: grid; gap: 3px; }
.bar-cell { position: relative; height: 16px; background: var(--wash); border-radius: var(--radius-s); overflow: hidden; }
/* DL1: bars grow with transform (compositor only), never width */
.bar-cell i { position: absolute; inset: 0; transform-origin: left center; transition: transform .45s ease; background: #b8bcc2; }
.bar-cell.top i { background: var(--graphite); }
.bar-cell span { position: absolute; left: 0; top: 0; line-height: 16px; font-size: 11px; font-weight: 600; padding: 0 6px; color: var(--ink); }
.bar-cell.top span { color: #fff; }
.bar-label { font-size: 13.5px; line-height: 1.25; overflow-wrap: anywhere; }
.bar-label.is-ref { font-weight: 700; }
.bar-label.is-ref::after { content: " (reference)"; font-weight: 400; color: var(--muted); font-size: 12px; }

.raw { margin-top: 8px; }
.raw summary { cursor: pointer; font-weight: 600; }
.raw pre { background: var(--wash); padding: 16px; border-radius: var(--radius-s); overflow: auto; max-height: 420px; font: 12.5px/1.45 var(--code); }

/* ---------- scoreboard */
.score-actions { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; }
.progress { color: var(--muted); }
.summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; margin-bottom: 28px; }
.sum-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 20px 22px; }
.sum-card h3 { font: 500 22px var(--display); margin: 0 0 12px; }
.sum-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; }
.sum-card dt { font-size: 13px; color: var(--muted); }
.sum-card dd { margin: 0; font: 500 26px/1.15 var(--display); }
.sum-both { grid-column: 1 / -1; color: var(--graphite); margin: 0; }
.table-wrap { overflow-x: auto; }
.score-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.score-table th { text-align: left; font-weight: 600; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 8px 10px; white-space: nowrap; }
.score-table td { border-bottom: 1px solid var(--line); padding: 9px 10px; vertical-align: top; }
.score-table td.hit { color: var(--ok); }
.score-table td.miss { color: var(--red-deep); }
.score-table small { display: block; color: var(--muted); }

/* ---------- notes + footer */
.footer { display: flex; align-items: center; gap: 14px; padding: 28px clamp(16px, 4vw, 48px); color: var(--muted); font-size: 14px; }
.footer-logo { height: 14px; }

/* ---------- responsive + motion */
@media (max-width: 1000px) {
  .hero { grid-template-columns: 1fr; padding-top: 48px; }
  .controls { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .nav { display: none; }
  .models, .summary, .answers { grid-template-columns: 1fr; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bars { grid-template-columns: 1fr; gap: 4px; }
  .bar-stack { margin-bottom: 8px; }
  .versus { flex-direction: column; }
  .versus-mid { padding: 4px 0; }
  .readiness { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .bar-cell i, .aus-bar i { transition: none; }
  .state-tag.loading::after { animation: none; }
}

/* ---------- narrow screens: never scroll sideways */
.hero > *, .workbench > *, .models > * { min-width: 0; }
@media (max-width: 720px) {
  .hero h1 { font-size: 34px; }
  .lede { font-size: 17px; }
  .versus-side { padding: 20px 14px; }
  .versus-figure { font-size: 38px; }
  .bar-label { font-size: 12px; }
}

/* ---------- per-metric winners + Agentic Use Score */
:root { --win: #16a34a; --win-wash: #eaf7ee; }
.sum-card dl > div { padding: 6px 8px; border-radius: var(--radius-s); border: 2px solid transparent; }
.sum-card dl > div.win { border-color: var(--win); background: var(--win-wash); }
.sum-card.winner { box-shadow: 0 0 0 3px var(--win); }
.sum-card h3 { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.win-tag { font: 700 12px var(--body); color: #fff; background: var(--win); padding: 3px 10px; border-radius: 999px; }
.sum-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.aus { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 40px; }
.aus-head { grid-column: 1 / -1; }
.aus-head h3 { font: 500 24px var(--display); margin: 0 0 4px; }
.aus-head p { margin: 0; color: var(--graphite); max-width: 80ch; }
.aus-rank { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; align-content: start; }
.aus-rank li { display: grid; grid-template-columns: 34px auto minmax(60px, 1fr) 56px; align-items: center; gap: 12px; padding: 10px 12px;
  border-radius: var(--radius-s); border: 2px solid transparent; background: var(--wash); }
.aus-rank li.first { border-color: var(--win); background: var(--win-wash); }
.aus-pos { font: 500 26px var(--display); color: var(--muted); }
.aus-rank li.first .aus-pos { color: var(--win); }
.aus-name { font: 500 18px/1.2 var(--display); }
.aus-bar { height: 12px; background: #fff; border-radius: 999px; overflow: hidden; }
.aus-bar i { display: block; height: 100%; background: var(--graphite); transform-origin: left center; transition: transform .45s ease; }
.aus-val { font: 500 24px var(--display); text-align: right; }
.aus-table { width: 100%; border-collapse: collapse; font-size: 14px; align-self: start; margin-top: 8px; }
.aus-table th { text-align: left; color: var(--muted); font-weight: 600; border-bottom: 2px solid var(--ink); padding: 6px 8px; }
.aus-table td { border-bottom: 1px solid var(--line); padding: 7px 8px; }
.aus-table td.win { background: var(--win-wash); color: var(--win); font-weight: 700; box-shadow: inset 0 0 0 2px var(--win); }
.score-table .stakes { color: var(--red-deep); font-weight: 600; }
@media (max-width: 900px) {
  .aus { grid-template-columns: 1fr; }
  .aus-rank li { grid-template-columns: 30px auto minmax(40px, 1fr) 48px; }
  .aus-name { font-size: 16px; }
}
.table-scroll { overflow-x: auto; min-width: 0; }


/* ---------- demo picker: tabs + tiles above side-by-side editors */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.picker { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; margin-bottom: 20px; }
.picker-bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tabs { display: inline-flex; background: var(--wash); border-radius: 999px; padding: 4px; gap: 2px; flex-wrap: wrap; }
.tab { border: 0; background: transparent; font: 600 14px var(--body); color: var(--graphite); padding: 8px 16px; border-radius: 999px; cursor: pointer; }
.tab:hover { color: var(--ink); }
.tab[aria-selected="true"] { background: var(--paper); color: var(--red); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.tab-count { font-weight: 500; color: var(--muted); margin-left: 4px; }
.search input { width: min(280px, 100%); font: 14px var(--body); padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); }
.search input:focus { border-color: var(--red); outline: none; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.tile { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 0 6px; text-align: left; cursor: pointer;
  font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); padding: 9px 12px; }
.tile:hover { border-color: var(--graphite); }
.tile .n { font: 500 16px var(--display); color: var(--muted); grid-row: span 2; }
.tile .t { font-weight: 600; font-size: 14px; line-height: 1.25; }
.tile .g { font-size: 12px; color: var(--muted); }
.tile[aria-selected="true"] { border-color: var(--red); background: var(--red-wash); box-shadow: inset 3px 0 0 var(--red); }
.tile[aria-selected="true"] .n { color: var(--red); }
.tiles .none { color: var(--muted); padding: 8px 4px; grid-column: 1 / -1; }

.current { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 4px 0 16px; }
.current-title { font: 500 24px/1.2 var(--display); margin: 0 0 4px; }
.current-title .num { color: var(--red); margin-right: 10px; }
.current-nav { display: flex; gap: 8px; flex-shrink: 0; }

.editors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.editors .field { margin-bottom: 0; display: flex; flex-direction: column; }
.editors textarea { flex: 1; min-height: 300px; }
.controls { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }

/* ---------- notes */
.aus-guide { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px 56px; padding: 28px 0 36px; border-bottom: 1px solid var(--line); }
.aus-intro h3, .note h3 { font: 500 22px/1.25 var(--display); margin: 0 0 12px; }
.aus-intro p, .note p { margin: 0 0 12px; color: var(--graphite); line-height: 1.6; }
.aus-intro p:first-of-type { font-size: 17px; color: var(--ink); }
.aus-footnote { font-size: 14px; }
.weights { list-style: none; margin: 0; padding: 0; }
.weights li { display: grid; grid-template-columns: 52px 88px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--line); }
.weights li:first-child { border-top: 0; padding-top: 4px; }
.w-pct { font: 500 22px var(--display); color: var(--red); text-align: right; }
.w-bar { height: 8px; background: var(--wash); border-radius: 999px; overflow: hidden; align-self: center; }
.w-bar i { display: block; height: 100%; background: var(--red); }
.w-text { color: var(--graphite); line-height: 1.55; }
.w-text b { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
.note-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; padding-top: 32px; }
.note { max-width: 46ch; }
.note p:last-child { margin-bottom: 0; }

@media (max-width: 1000px) {
  .aus-guide, .note-grid { grid-template-columns: 1fr; }
  .editors { grid-template-columns: 1fr; }
  .editors textarea { min-height: 220px; }
  .note { max-width: none; }
}
@media (max-width: 720px) {
  .picker-bar { flex-direction: column; align-items: stretch; }
  .search input { width: 100%; }
  .tiles { grid-template-columns: 1fr 1fr; }
  .current { flex-direction: column; align-items: flex-start; }
  .weights li { grid-template-columns: 48px minmax(0, 1fr); }
  .w-bar { display: none; }
}
.btn-quiet:disabled { opacity: .35; cursor: default; border-color: var(--ink); color: var(--ink); }

/* score table: points earned per component, summing to the total */
.aus-table td b { font-weight: 700; font-size: 15px; }
.aus-table td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
.aus-table td.win small { color: var(--win); }
.aus-table tfoot th, .aus-table tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; padding: 10px 8px; text-align: left; font-weight: 700; }
.aus-table tfoot td b { font: 500 22px var(--display); }

/* ------------------------------------------------------------------ demo groups (families of tabs) */
.tabs-wrap { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-end; }
.tab-family { display: grid; gap: 4px; }
.family-label { font: 600 11px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding-left: 12px; }
.picker-bar { align-items: flex-end; }
.group-blurb { margin: 0 0 12px; color: var(--graphite); font-size: 14px; min-height: 1.4em; }
.tile .g { color: var(--muted); font-size: 12px; }
.scope { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--graphite); }
.scope select { width: auto; min-width: 260px; }
.group-board { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 18px 22px; }
.group-board h3 { font: 500 20px var(--display); margin: 0 0 4px; }
.group-board td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
@media (max-width: 720px) {
  .score-actions { flex-wrap: wrap; }
  .scope, .scope select { width: 100%; min-width: 0; }
}

/* ---------- DL1: rendering containment. Off-screen sections skip layout and paint until scrolled to,
   and a change inside one section never re-lays out the others. */
#verdicts, #scoreboard, .notes { content-visibility: auto; contain-intrinsic-size: auto 900px; }
.verdict, .summary, .table-wrap { contain: layout paint; }

/* ---------- model colours. Discovered models take slots c0..c5 in folder order; Laya keeps graphite.
   Every model-coloured element reads --mc (strong) and --mc-soft (bar fill). */
.side-c0 { --mc: #da001b; --mc-soft: #f2a6ae; --mc-ink: #fff; }
.side-c1 { --mc: #0b6f78; --mc-soft: #9fcfd3; --mc-ink: #fff; }
.side-c2 { --mc: #5b3fa8; --mc-soft: #c3b6e6; --mc-ink: #fff; }
.side-c3 { --mc: #9a5200; --mc-soft: #f0c895; --mc-ink: #fff; }
.side-c4 { --mc: #1f5f9e; --mc-soft: #a9c6e6; --mc-ink: #fff; }
.side-c5 { --mc: #4f6f16; --mc-soft: #c3d99a; --mc-ink: #fff; }
.side-c6 { --mc: #a0306b; --mc-soft: #e8b3cf; --mc-ink: #fff; }
.side-c7 { --mc: #2c6e5a; --mc-soft: #a8d5c6; --mc-ink: #fff; }
.side-laya { --mc: var(--graphite); --mc-soft: #b8bcc2; --mc-ink: var(--ink); }
.versus-side[class*="side-c"] { background: var(--mc); color: var(--mc-ink); }
.versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); }
.model-card[class*="side-"], .sum-card[class*="side-"] { border-top: 4px solid var(--mc, var(--graphite)); }
.answer[class*="side-"] { border-left-color: var(--mc, var(--graphite)); }
.timing [class*="side-c"] b { color: var(--mc); }
.bar-cell[class*="side-"] i { background: var(--mc-soft, #b8bcc2); }
.bar-cell[class*="side-"].top i { background: var(--mc, var(--graphite)); }
.aus-rank li[class*="side-"] .aus-bar i { background: var(--mc, var(--graphite)); }
.no-models { border: 1px dashed var(--line); border-radius: var(--radius-m); padding: 18px 22px; color: var(--graphite); }

/* ---------- intro weight bars (class widths: no inline styles under the CSP) */
.w-bar i.w-100 { width: 100%; } .w-bar i.w-71 { width: 71%; } .w-bar i.w-43 { width: 43%; } .w-bar i.w-29 { width: 29%; }


/* ---------- Responsive: phones, tablets and laptops (1.10.2). Checked with a device audit at 320-1440 px. */
/* Text never goes below 12 px. */
.bar-cell span { font-size: 12px; }
.family-label { font-size: 12px; }
small { font-size: max(12px, .85em); }
/* Grid children may shrink: a wide table scrolls inside its own box instead of widening the page. */
.summary > *, .models > *, .answers > *, .verdict > *, .aus > * { min-width: 0; }
/* Every control is at least 24 px in both directions (WCAG 2.5.8), on any device. */
.brand { min-height: 32px; }
input[type="range"] { height: 28px; }
.repo a { display: inline-block; padding: 4px 0; }
/* Tablets: brand, section links and the readiness badge no longer fit on one line; the setup cards show status. */
@media (max-width: 960px) {
  .readiness { display: none; }
  .nav { gap: 16px; }
}
/* Small phones: a long model name wraps at spaces, never inside a word. */
@media (max-width: 520px) {
  .versus-name { white-space: normal; }
}
/* Touch screens: 44 px tap targets, and 16 px form text so iPhones do not zoom in when a field is tapped. */
@media (pointer: coarse) {
  .btn, .tab, .tile, select, .search input, summary, .nav a, .brand { min-height: 44px; }
  .nav a, .brand { display: inline-flex; align-items: center; }
  summary { padding: 10px 0; box-sizing: border-box; }
  input, select, textarea { font-size: 16px; }
  input[type="range"] { height: 44px; }
  .repo a { padding: 10px 0; }
}
/* Section links in the header: at least 24 px tall with a mouse too. */
.nav a { padding: 4px 0; }
/* Small phones: in the score ranking the name gets its own line and the bar runs underneath it. */
@media (max-width: 520px) {
  .aus-rank li { grid-template-columns: 30px minmax(0, 1fr) 48px; row-gap: 6px; }
  .aus-rank li .aus-name { grid-column: 2; grid-row: 1; }
  .aus-rank li .aus-val { grid-column: 3; grid-row: 1; }
  .aus-rank li .aus-bar { grid-column: 2 / 4; grid-row: 2; }
}
@media (pointer: coarse) {
  .repo a { padding: 12px 0; }
  .search input { font-size: 16px; }
}
