:root { color-scheme: light dark; }
* { box-sizing: border-box; }
body {
  margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: #f4f5f7; color: #1c1e21; min-height: 100vh;
}
@media (prefers-color-scheme: dark) {
  body { background: #101214; color: #e8eaed; }
  .card { background: #1b1e22 !important; border-color: #2c3036 !important; }
  input, textarea { background: #101214 !important; color: #e8eaed !important; border-color: #3a4048 !important; }
  .hint { background: #23272c !important; }
}
main { max-width: 640px; margin: 0 auto; padding: 24px 16px 48px; }
h1 { font-size: 1.35rem; margin: 0 0 4px; }
.sub { color: #6b7280; font-size: .9rem; margin-bottom: 20px; }
.card { background: #fff; border: 1px solid #e3e5e8; border-radius: 12px; padding: 18px; margin-bottom: 16px; }
.card h2 { font-size: 1.02rem; margin: 0 0 10px; }
.steps { margin: 0 0 14px; padding-left: 20px; line-height: 1.7; }
button {
  font: inherit; font-weight: 600; border: 0; border-radius: 8px;
  padding: 11px 16px; cursor: pointer; background: #2563eb; color: #fff; width: 100%;
}
button.secondary { background: #4b5563; margin-top: 8px; }
button:disabled { opacity: .5; cursor: not-allowed; }
label { font-size: .85rem; color: #6b7280; display: block; margin-top: 8px; }
input, textarea {
  font: inherit; width: 100%; padding: 10px 12px; margin: 5px 0 12px;
  border: 1px solid #d1d5db; border-radius: 8px;
}
.radio-row { display: flex; gap: 18px; margin: 6px 0 4px; }
.radio { display: flex; align-items: center; gap: 6px; font-size: .95rem; color: inherit; margin: 0; }
.radio input { width: auto; margin: 0; }
.hint { font-size: .85rem; background: #eef2ff; border-radius: 8px; padding: 10px 12px; margin-top: 12px; }
.warn { background: #fef3c7; }
pre#log {
  background: #0b1020; color: #9fe8b4; font-size: .78rem; padding: 12px;
  border-radius: 10px; max-height: 220px; overflow: auto; white-space: pre-wrap;
}
.status { font-size: .9rem; color: #6b7280; margin-top: 10px; }
.ok { color: #15803d; font-weight: 600; }
.bad { color: #b91c1c; font-weight: 600; }
footer { text-align: center; color: #9ca3af; font-size: .78rem; margin-top: 24px; }
