:root{--text:#183428;--muted:#5b756a;--forest:#1c7b4b;--water:#0c65d9;--line:#0f463129;--error:#8b2f2f}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 8% 8%,#1c7b4b3d,#0000 25%),radial-gradient(circle at 92% 12%,#13b3e533,#0000 28%),linear-gradient(#f2fbf5,#e9f5ee);margin:0;font-family:Space Grotesk,sans-serif}button,input{font:inherit}.auth-shell{width:min(620px,100% - 28px);margin:0 auto;padding:clamp(28px,8vh,90px) 0}.auth-brand{color:inherit;align-items:center;gap:10px;margin-bottom:18px;font-weight:700;text-decoration:none;display:inline-flex}.auth-brand span{color:#fff;background:linear-gradient(135deg, var(--forest), var(--water));border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.auth-card{border:1px solid var(--line);background:#f9fffbe6;border-radius:28px;padding:clamp(24px,6vw,44px);box-shadow:0 30px 70px #124a3721}.eyebrow{color:var(--forest);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:700}h1{margin:0 0 18px;font-family:Instrument Serif,serif;font-size:clamp(2.4rem,8vw,4.4rem);font-weight:400;line-height:.98}.page-status{border:1px solid var(--line);color:var(--muted);background:#ffffffb3;border-radius:14px;padding:14px 16px;line-height:1.5}.page-status.is-success{color:#0f5934}.page-status.is-error{color:var(--error)}.auth-form{gap:10px;margin:20px 0;display:grid}.auth-intro{color:var(--muted);line-height:1.6}.auth-form label{font-size:.84rem;font-weight:700}.auth-form small{color:var(--muted);margin-top:-6px}.auth-form input{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:12px;padding:13px 14px}.auth-form button{color:#fff;cursor:pointer;background:linear-gradient(135deg, var(--forest), var(--water));border:0;border-radius:999px;justify-self:start;margin-top:6px;padding:12px 17px}.auth-form button:disabled{cursor:wait;opacity:.55}.back-link{color:var(--forest);margin-top:10px;font-size:.86rem;display:inline-block}.auth-page-links{flex-wrap:wrap;gap:10px 18px;display:flex}.is-hidden{display:none!important}
