:root {
  --burgundy:#6E1B33; --primary-dark:#501325; --accent:#C25F7C;
  --accent-soft:#E9AEBF; --bg:#FCF4F5; --surface:#fff; --text:#43343A;
  --muted:#8C7077; --border:#ECD3DA;
}
* { box-sizing:border-box; margin:0; padding:0; }
body {
  font-family: system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background: radial-gradient(circle at 30% 0%, #F4DAE1, var(--bg) 70%);
  color: var(--text); min-height:100vh; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a { color: var(--accent); text-decoration:none; }
a:hover { color: var(--burgundy); }

.topbar { display:flex; justify-content:space-between; align-items:center;
  padding:1rem 1.5rem; max-width:960px; margin:0 auto; }
.topbar .brand { font-weight:700; color:var(--burgundy); font-size:1.05rem; }
.topbar nav a, .topbar nav button { margin-left:1.2rem; font-weight:500; }

.wrap { max-width:440px; margin:3rem auto; padding:0 1.2rem; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:2rem; box-shadow:0 18px 40px -24px rgba(110,27,51,.35); }
h1 { color:var(--burgundy); font-size:1.6rem; margin-bottom:.3em; }
.sub { color:var(--muted); margin-bottom:1.5rem; }

.field { margin-bottom:1.1rem; }
.field label { display:block; font-weight:600; font-size:.9rem; margin-bottom:.3rem; color:var(--burgundy); }
.field input { width:100%; font-size:1rem; padding:.7rem .85rem; border:1.5px solid var(--border);
  border-radius:10px; background:#fff; font-family:inherit; }
.field input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(194,95,124,.14); }
.field-error { color:#c0392b; font-size:.85rem; margin-top:.3rem; }

.btn { display:block; width:100%; background:var(--burgundy); color:#fff; font-weight:600;
  font-size:1rem; padding:.8rem; border:0; border-radius:999px; cursor:pointer;
  text-align:center; transition:background .2s; }
.btn:hover { background:var(--primary-dark); color:#fff; }

.alt { margin-top:1.2rem; text-align:center; color:var(--muted); font-size:.95rem; }
.muted { color:var(--muted); }

.alert { padding:.7rem .9rem; border-radius:10px; margin-bottom:1.2rem; font-size:.92rem; }
.alert-error { background:#fdecef; color:#c0392b; border:1px solid #f5c6cf; }
.alert-ok { background:#eafaf1; color:#1e7a4d; border:1px solid #bce8d0; }

.linkbtn { background:none; border:0; color:var(--accent); cursor:pointer; font:inherit; }
.linkbtn:hover { color:var(--burgundy); }
