:root{--ink:#1A1440;--paper:#F7F5FF;--signal:#FF3D8B;--signal-d:#E02A76;--muted:#5E5885;--line:#DCD7F2;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:4px}
.auth{max-width:420px;margin:0 auto;padding:clamp(2rem,8vh,5rem) 1.25rem 3rem}
.logo{font:800 1.15rem/1 "Unbounded","Arial Black",sans-serif;letter-spacing:-.02em;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2.5rem}
.logo i{width:.7em;height:.7em;background:var(--signal);border-radius:50%}
h1{font:800 2rem/1.1 "Unbounded","Arial Black",sans-serif;letter-spacing:-.03em;margin:0 0 1.5rem}
.sub{color:var(--muted);margin:-.75rem 0 1.5rem}
form{display:grid;gap:1rem}
.field label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.35rem}
.field input{width:100%;padding:.85rem 1rem;border-radius:12px;border:2px solid var(--line);background:#fff;color:var(--ink);font:500 1rem var(--body)}
.field input:focus{outline:none;border-color:var(--signal)}
.hint{font-size:.85rem;color:var(--muted);margin:.3rem 0 0}
.btn{font:700 1rem/1 var(--body);padding:1rem 1.5rem;border-radius:999px;border:0;background:var(--signal);color:#fff;cursor:pointer}
.btn:hover{background:var(--signal-d)}
.btn:disabled{opacity:.6;cursor:wait}
.alt{margin:1.25rem 0 0;color:var(--muted);font-size:.95rem}
.alt a,.link{color:var(--signal-d);font-weight:700}
.link{background:none;border:0;padding:0;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
.msg{padding:.85rem 1rem;border-radius:12px;font-weight:600;font-size:.95rem}
.msg.err{background:#FFE1EC;color:#8A0F3D}
.msg.ok{background:#E2FFE9;color:#0F5A27}
