:root {
  --bg: #f3f2ed;
  --paper: #fbfaf6;
  --ink: #141414;
  --mut: #6d6c66;
  --rule: #d9d7cf;
  --soft: #e9e7e0;
  --err: #9e2a1f;
  --ok: #1f4d32;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 16px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.top, main {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 20px;
}

.top { padding-top: 36px; }

.kicker {
  margin: 0;
  font: 12px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mut);
}

h1 {
  margin: 6px 0 0;
  font: 600 40px/1.05 "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  letter-spacing: -0.01em;
}

.lede {
  margin: 8px 0 0;
  color: var(--mut);
}

main { padding-top: 22px; padding-bottom: 48px; }

.notice, .warn, .drivers, .factory {
  border: 1px solid var(--ink);
  background: var(--paper);
  padding: 12px 14px;
}

.notice { margin: 0 0 18px; }

.warn {
  margin: 0 0 14px;
  border-color: var(--err);
  color: var(--err);
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  padding: 0;
  margin: 0 0 10px;
  font: 12px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.choices {
  display: grid;
  gap: 10px;
}

.choice {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  background: var(--paper);
  border: 1.5px solid var(--ink);
  cursor: pointer;
}

.choice input { margin: 0; width: 18px; height: 18px; accent-color: var(--ink); }

.choice:has(input:disabled) {
  cursor: not-allowed;
  color: var(--mut);
  border-color: var(--rule);
}

.choice:has(input:checked) { background: var(--soft); }

.choice-copy { display: flex; flex-direction: column; gap: 2px; }

.choice-title { font-weight: 650; font-size: 18px; }

.choice-meta {
  font: 12px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.04em;
  color: var(--mut);
}

.badge {
  font: 12px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.06em;
  text-transform: lowercase;
  padding: 6px 8px;
  border: 1px solid var(--rule);
  color: var(--mut);
}

.badge.ready {
  border-color: var(--ok);
  color: var(--ok);
}

.install-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
}

esp-web-install-button {
  --esp-tools-button-color: #141414;
  --esp-tools-button-text-color: #f3f2ed;
  --esp-tools-button-border-radius: 2px;
}

#activate {
  cursor: pointer;
  font: 600 14px/1 inherit;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 18px;
  color: var(--bg);
  background: var(--ink);
  border: 0;
}

#activate:disabled {
  cursor: not-allowed;
  color: var(--mut);
  background: var(--soft);
}

.version { margin: 0; color: var(--mut); }

.keep { margin: 14px 0 0; }

.factory:not([hidden]) {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.factory {
  margin: 16px 0 0;
}

.factory a { color: var(--ink); font-weight: 650; }

.factory span { color: var(--mut); font-size: 14px; }

.help {
  margin: 28px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
  font-size: 15px;
}

.help h2 {
  margin: 0 0 8px;
  font: 12px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.help p { margin: 0 0 8px; }

.help ul { margin: 0; padding-left: 1.15em; }

.help li { margin: 0 0 6px; }

.help li:last-child { margin: 0; }
