:root { --green:#16a34a; --green-dark:#15803d; --bg:#f6f9f6; --text:#1f2937; --border:#e5e7eb; }
*{box-sizing:border-box}
body { margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; background:var(--bg); color:var(--text); }
.wrap { max-width:720px; margin:6vh auto; padding:24px; }
.card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:22px; box-shadow:0 4px 18px rgba(0,0,0,.06); }
h1 { margin:0 0 12px; font-size:1.6rem; }
p.lead { margin:0 0 18px; color:#475569; }
label { display:block; font-weight:600; margin:14px 0 6px; }
input, textarea { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:10px; font:inherit; background:#fff; }
textarea { min-height:140px; resize:vertical; }
.row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.btn { margin-top:16px; display:inline-block; padding:12px 18px; background:#16a34a; color:#fff; border:none; border-radius:999px; font-weight:700; cursor:pointer; text-decoration:none; }
.btn:hover { background:#15803d; }
.sr-only { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.error { background:#fef2f2; color:#991b1b; border:1px solid #fee2e2; border-radius:10px; padding:10px 12px; margin-bottom:14px; }
.field.invalid input { border-color:#fecaca; background:#fff1f2; }
.footnote { color:#64748b; margin-top:14px; font-size:.95rem; }
@media (max-width:640px){ .row{ grid-template-columns:1fr; } }