:root{
  --bg: #f7f5f2;
  --surface: #ffffff;
  --border: #e3ddd3;
  --text: #241f1a;
  --text-muted: #7a6f60;
  --red: #da291c;
  --red-dark: #b32117;
  --success: #2e7d32;
  --success-bg: #e8f5e9;
  --danger: #c62828;
  --danger-bg: #fdecea;
}
*{ box-sizing: border-box; }
body{ margin:0; font-family:"IBM Plex Sans", system-ui, sans-serif; background:var(--bg); color:var(--text); }
a{ color:var(--red); text-decoration:none; }
a:hover{ color:var(--red-dark); }
.heading{ font-family:"Space Grotesk", system-ui, sans-serif; margin:0 0 6px; font-size:22px; }
.reset-body{ display:flex; align-items:center; justify-content:center; min-height:100vh; }
.reset-card{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:36px 32px; width:340px; text-align:center; box-shadow:0 1px 3px rgba(0,0,0,0.06); }
.reset-mark{ width:48px; height:auto; margin:0 auto 14px; display:block; }
.reset-sub{ color:var(--text-muted); font-size:13.5px; margin:0 0 18px; }
.reset-flash{ background:var(--success-bg); color:var(--success); border-radius:8px; padding:12px 14px; font-size:13px; text-align:left; }
.reset-error{ background:var(--danger-bg); color:var(--danger); border-radius:8px; padding:10px 12px; font-size:13px; margin-bottom:16px; text-align:left; }
.field{ text-align:left; margin-bottom:16px; }
.field label{ display:block; font-size:12.5px; font-weight:600; margin-bottom:6px; }
.field input{ width:100%; padding:9px 11px; border:1px solid var(--border); border-radius:7px; font-size:14px; font-family:inherit; }
.btn-primary{ width:100%; background:var(--red); color:#fff; border:none; padding:11px 20px; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; }
.btn-primary:hover{ background:var(--red-dark); }
