:root{--paper:#f1f5ea;--card:#fbfcf7;--green:#2c4f31;--green-2:#3f6b45;--sage:#7a9b6e;--sage-soft:#aac79b;--blue-deep:#205581;--ink:#394236;--muted:#6e7c67;--line:#dde6cf;--shadow:0 18px 50px -20px rgba(44,79,49,.35)}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--paper);color:var(--ink);
  font-family:'Mulish',system-ui,sans-serif;font-size:17px;line-height:1.6;padding:2rem 1rem;
  background-image:radial-gradient(1200px 600px at 110% -10%,rgba(170,199,155,.35),transparent 60%),radial-gradient(900px 500px at -10% 5%,rgba(74,144,194,.10),transparent 55%)}
.card{width:100%;max-width:30rem;background:var(--card);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);padding:2.2rem 2rem}
.kicker{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);font-weight:700;margin:0 0 .6rem}
h1{font-family:'Fraunces',Georgia,serif;color:var(--green);font-weight:900;letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.9rem;line-height:1.1}
.sub{color:var(--muted);margin:0 0 1.6rem}
label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--green-2);margin:1rem 0 .35rem}
input{width:100%;padding:.7rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;color:var(--ink)}
input:focus{outline:2px solid var(--sage-soft);border-color:var(--sage)}
.row{display:flex;gap:.8rem}.row>div{flex:1}
button,.btn{display:inline-block;width:100%;margin-top:1.4rem;padding:.8rem 1rem;border:0;border-radius:10px;
  background:var(--green);color:#f4f8ef;font:inherit;font-weight:800;letter-spacing:.02em;cursor:pointer;text-align:center;text-decoration:none}
button:hover,.btn:hover{background:var(--green-2)}
.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--line)}
.btn.ghost:hover{background:#eef3e6}
.alt{margin-top:1.3rem;font-size:.92rem;color:var(--muted);text-align:center}
.alt a{color:var(--blue-deep);font-weight:700}
.msg{margin-top:1rem;padding:.7rem .85rem;border-radius:10px;font-size:.9rem;display:none}
.msg.err{display:block;background:#fbeaea;color:#8a2b2b;border:1px solid #e7c4c4}
.msg.ok{display:block;background:#eaf5ea;color:#256b2c;border:1px solid #c4e0c4}
.center{text-align:center}
