:root{
  --mj:#7c2dc7; --mj-lt:#b47ce8; --grn:#1baf7a;
  --ink:#0b0b0b; --ink2:#4c4b47; --muted:#8a8884;
  --paper:#ffffff; --wash:#f7f7f4; --rule:#e4e3dc;
}
@media (prefers-color-scheme: dark){
  :root{ --ink:#f2f1ee; --ink2:#b9b7b1; --muted:#8b8983;
         --paper:#141317; --wash:#0e0d11; --rule:#2a2831; --mj:#b47ce8; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--wash);color:var(--ink);
  font:16px/1.6 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Carlito,Calibri,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.brand{display:flex;align-items:center;gap:12px;padding:26px 0 0}
.brand svg{display:block;height:34px;width:auto}
.brand b{font-size:23px;font-weight:700;letter-spacing:-.7px}
.brand a{text-decoration:none;display:flex;align-items:center;gap:12px}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:24px}
h1{font-size:clamp(26px,4vw,38px);line-height:1.1;letter-spacing:-1px;font-weight:700;margin:0 0 12px}
.lede{color:var(--ink2);margin:0 0 18px;max-width:62ch}
label{display:block;font-size:12px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;
  color:var(--muted);margin:0 0 6px}
input[type=password],input[type=email]{width:100%;padding:12px 14px;border:1px solid var(--rule);
  border-radius:10px;background:var(--wash);color:var(--ink);font:inherit;font-size:15px}
input:focus{outline:2px solid var(--mj);outline-offset:1px;border-color:transparent}
button{margin-top:14px;padding:12px 22px;border:0;border-radius:10px;background:var(--mj);color:#fff;
  font:inherit;font-size:15px;font-weight:700;cursor:pointer}
button:hover{filter:brightness(1.08)}
.err{margin:0 0 16px;padding:11px 14px;border-radius:10px;font-size:14px;
  background:rgba(196,48,48,.10);border:1px solid rgba(196,48,48,.35);color:#c43030}
.ok{margin:0 0 16px;padding:11px 14px;border-radius:10px;font-size:14px;
  background:rgba(27,175,122,.10);border:1px solid rgba(27,175,122,.35);color:#127d57}
.fine{margin:14px 0 0;font-size:12.5px;color:var(--muted)}
footer{margin-top:48px;border-top:1px solid var(--rule);padding:20px 0 44px;font-size:13px;color:var(--muted);
  display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
footer a{color:var(--ink2);text-decoration:none;border-bottom:1px solid var(--rule)}
footer .sp{flex:1 1 auto}
