* { box-sizing: border-box; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  margin: 0;
  background: #0f1115;
  color: #e6e8eb;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
header, main, footer { max-width: 720px; margin: 0 auto; padding: 1.5rem; width: 100%; }
header { padding-top: 4rem; }
h1 { font-size: 2.4rem; margin: 0; font-weight: 700; }
h1 .dim { color: #6b7280; font-weight: 400; }
.lead { color: #9ca3af; margin: 0.5rem 0 0; }
.tabs { display: flex; gap: 0.25rem; margin-top: 2rem; }
.tab {
  flex: 0 0 auto;
  padding: 0.5rem 1rem;
  background: transparent;
  color: #9ca3af;
  border: 1px solid #2a2f3a;
  border-radius: 8px 8px 0 0;
  font-size: 0.9rem;
  cursor: pointer;
}
.tab.active { background: #1a1d24; color: #e6e8eb; border-bottom-color: #1a1d24; }
form { display: flex; gap: 0.5rem; margin-top: 0; flex-wrap: wrap; background: #1a1d24; padding: 1rem; border-radius: 0 8px 8px 8px; }
form > div { display: flex; gap: 0.5rem; flex: 1; flex-wrap: wrap; }
form label { display: none; }
input {
  flex: 1;
  min-width: 200px;
  padding: 0.9rem 1rem;
  font-size: 1.2rem;
  background: #1a1d24;
  color: #e6e8eb;
  border: 1px solid #2a2f3a;
  border-radius: 8px;
}
input:focus { outline: 2px solid #3b82f6; border-color: #3b82f6; }
button {
  padding: 0.9rem 1.6rem;
  font-size: 1rem;
  font-weight: 600;
  background: #3b82f6;
  color: #fff;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}
button:hover { background: #2563eb; }
button:disabled { opacity: 0.6; cursor: not-allowed; }
#status { margin-top: 1.5rem; min-height: 1.5rem; color: #9ca3af; }
#status.error { color: #f87171; }
#result {
  margin-top: 1.5rem;
  background: #1a1d24;
  border: 1px solid #2a2f3a;
  border-radius: 12px;
  padding: 1.5rem;
}
.field {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid #2a2f3a;
}
.field:last-child { border-bottom: 0; }
.field .k { color: #9ca3af; font-size: 0.9rem; }
.field .v { font-weight: 500; }
.badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  background: #1e3a8a;
  color: #bfdbfe;
  border-radius: 4px;
  font-weight: 600;
}
.note { color: #fbbf24; font-size: 0.85rem; margin-top: 1rem; }
details { margin-top: 2rem; color: #9ca3af; }
details pre { background: #1a1d24; padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: 0.85rem; }
footer { text-align: center; color: #6b7280; font-size: 0.85rem; padding: 2rem 1.5rem; margin-top: auto; }
a { color: #60a5fa; }
@media (max-width: 480px) {
  .field { grid-template-columns: 1fr; gap: 0.2rem; }
}
