:root { --ink:#1a1a1a; --muted:#6b7280; --line:#e5e7eb; --green:#1d5f42; --bg:#f8f9fb; --danger:#9b2c2c; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--bg); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Segoe UI",sans-serif; }
header { padding:20px 24px; background:#fff; border-bottom:1px solid var(--line); }
.brand { color:var(--green); font-weight:700; letter-spacing:.08em; text-decoration:none; }
main { max-width:440px; margin:0 auto; padding:48px 20px 80px; }
h1 { margin:0 0 8px; font-size:32px; letter-spacing:-.02em; }
.lead { margin:0 0 28px; color:var(--muted); line-height:1.6; }
form { display:flex; flex-direction:column; gap:14px; }
label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:650; }
input { width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); font:inherit; font-size:16px; }
input:focus { outline:2px solid rgba(29,95,66,.25); border-color:var(--green); }
.secret { position:relative; }
.secret input { padding-right:72px; }
.reveal { position:absolute; right:8px; top:30px; border:0; background:transparent; color:var(--green); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
button.primary, a.primary { display:flex; align-items:center; justify-content:center; width:100%; margin-top:6px; padding:16px 20px; border:0; border-radius:999px; background:var(--green); color:#fff; font:inherit; font-size:16px; font-weight:700; text-decoration:none; cursor:pointer; }
button.primary:disabled { opacity:.6; cursor:default; }
.links { display:flex; justify-content:space-between; gap:12px; margin-top:18px; font-size:14px; }
.links button, .links a { border:0; background:none; padding:0; color:var(--green); font:inherit; font-weight:650; cursor:pointer; text-decoration:none; }
.alert { margin:0 0 16px; padding:12px 14px; border-radius:12px; background:#fdecec; color:var(--danger); font-size:14px; line-height:1.5; }
.ok { margin:0 0 16px; padding:12px 14px; border-radius:12px; background:#e5f3ea; color:var(--green); font-size:14px; line-height:1.5; }
.hidden { display:none; }
