:root { font-family: Arial, Helvetica, sans-serif; color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; background: #000; color: #fff; }
.page { min-height: 100vh; padding: 28px 18px 60px; }
.card { width: min(980px, 100%); margin: 0 auto; }
.eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: 2px; }
h1 { margin: 0 0 24px; font-size: clamp(30px, 5vw, 48px); font-weight: 500; }
h2 { margin: 0 0 14px; font-size: 16px; }
.intro { margin: 0 0 30px; line-height: 1.45; font-size: 17px; }
form { display: grid; gap: 20px; }
label { display: grid; gap: 8px; font-size: 14px; font-weight: 700; }
.required { color: #ff4d4d; }

input[type="text"],
input[type="email"],
input[type="file"],
textarea {
  width: 100%;
  border: 1px solid #777;
  border-radius: 18px;
  background: #fff;
  color: #111;
  padding: 10px 14px;
  font: inherit;
}

input[type="text"],
input[type="email"],
input[type="file"] {
  min-height: 46px;
}

textarea {
  min-height: 120px;
  resize: vertical;
  line-height: 1.4;
}

input[type="file"] { padding: 8px 10px; }
.file-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.help { margin: -10px 0 0; font-size: 12px; line-height: 1.4; }
.help.accent { color: #40c8ff; }
.primary, .secondary {
  border: 0; border-radius: 16px; min-height: 48px; padding: 12px 18px; font-weight: 800; cursor: pointer;
}
.primary { justify-self: start; background: #fff; color: #000; min-width: 180px; }
.primary:disabled, .secondary:disabled { cursor: not-allowed; opacity: .55; }
.secondary { background: #262626; color: #fff; border: 1px solid #555; }
.small { min-height: 42px; white-space: nowrap; }
.status { min-height: 22px; font-size: 14px; line-height: 1.45; }
.status.error { color: #ff8b8b; }
.status.good { color: #9be4a8; }

.optional { font-weight: 400; opacity: .75; }

.address-section,
.photo-section,
.buyer-section {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid #444;
  border-radius: 18px;
}

.address-section h3,
.buyer-section h3 {
  margin: 0;
  font-size: 15px;
  letter-spacing: .04em;
}

.address-help,
.buyer-help {
  margin: -6px 0 0;
  font-size: 12px;
  line-height: 1.35;
  opacity: .8;
}

.address-grid {
  display: grid;
  grid-template-columns: 1fr 110px 150px;
  gap: 12px;
}

@media (max-width: 620px) {
  .page { padding: 22px 14px 44px; }
  .file-row { grid-template-columns: 1fr; }
  .primary, .small { width: 100%; }

  .address-grid {
    grid-template-columns: 1fr;
  }
}
