* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: #0b0f14; color: #e5e7eb;
}
.container { max-width: 880px; margin: 0 auto; padding: 24px; }
header { margin-bottom: 16px; }
h1 { margin: 0 0 4px 0; font-size: 1.75rem; }
.subtitle { margin: 0; color: #94a3b8; }

.card {
  background: #0f172a; border: 1px solid #1f2937; border-radius: 10px;
  padding: 16px; margin: 16px 0;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
}

.row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.row.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.field { display: flex; flex-direction: column; gap: 6px; }
label { font-size: 0.9rem; color: #cbd5e1; }
input[type="number"], textarea, select {
  background: #0b1220; color: #e5e7eb; border: 1px solid #263244; border-radius: 8px;
  padding: 10px 12px; outline: none;
}
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.25); }

.actions { display: flex; gap: 8px; margin-top: 8px; align-items: center; }
button { cursor: pointer; border: 1px solid #334155; background: #1f2937; color: #e5e7eb; padding: 10px 14px; border-radius: 8px; }
button.secondary { background: #0b1220; }
button.link { background: transparent; border: none; color: #93c5fd; padding: 8px; }
button:disabled { opacity: 0.5; cursor: not-allowed; }

.qr-output { display: grid; place-items: center; min-height: 280px; background: #0b1220; border-radius: 8px; border: 1px dashed #263244; padding: 16px; }
.qr-output canvas, .qr-output img { max-width: 100%; height: auto; }

.muted { color: #94a3b8; }
.hidden { display: none; }

footer { margin-top: 8px; text-align: center; }

@media (max-width: 700px) {
  .row { grid-template-columns: 1fr; }
}
