:root{
  --bg:#f7f2e7;
  --sf:#ffffff;
  --sf2:#f1e9d8;
  --bd:#e2d6bf;
  --tx:#3d3527;
  --tx2:#8a7e68;
  --ac:#3f6fa8;
  --gn:#2f8f63;
  --rd:#c94a5b;
  --am:#b97e1f;
  --r:14px;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--tx);font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;display:flex;align-items:center;justify-content:center;padding:24px}
.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:36px;max-width:420px;width:100%;box-shadow:0 4px 24px rgba(61,53,39,.08)}
.card h1{font-size:20px;margin:0 0 6px}
.card .sub{color:var(--tx2);font-size:13px;margin:0 0 24px;line-height:1.5}
label{display:block;font-size:12px;font-weight:600;color:var(--tx2);margin:16px 0 6px;text-transform:uppercase;letter-spacing:.03em}
input[type=text],input[type=email],input[type=password],textarea{
  width:100%;padding:11px 13px;border:1px solid var(--bd);border-radius:9px;background:var(--bg);
  color:var(--tx);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s
}
input:focus,textarea:focus{border-color:var(--ac)}
textarea{resize:vertical;min-height:70px}
button.primary{
  width:100%;margin-top:22px;padding:12px;border:none;border-radius:9px;background:var(--ac);
  color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s
}
button.primary:hover{opacity:.9}
button.primary:disabled{opacity:.5;cursor:default}
.msg{margin-top:16px;padding:12px 14px;border-radius:9px;font-size:13px;line-height:1.5;display:none}
.msg.show{display:block}
.msg.ok{background:#e8f3ec;color:var(--gn);border:1px solid #cfe8d8}
.msg.err{background:#fbeaec;color:var(--rd);border:1px solid #f3d2d6}
.foot{margin-top:20px;text-align:center;font-size:12px;color:var(--tx2)}
.foot a{color:var(--ac);text-decoration:none}
.foot a:hover{text-decoration:underline}
