@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#090e1a;--panel:#111a2c;--border:#22304a;--text:#f3f6fb;--muted:#8c9bb3;--primary:#7c6df2;--primary-light:#a99efa;--red:#fb7185;--green:#37d399}
*{box-sizing:border-box}html,body{min-height:100%}
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px;color:var(--text);font-family:"DM Sans","Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased;background:radial-gradient(700px 520px at 15% 10%,rgba(56,189,248,.11),transparent 65%),radial-gradient(700px 520px at 90% 90%,rgba(124,109,242,.16),transparent 65%),var(--bg)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 75%)}
.card{position:relative;width:100%;max-width:430px;padding:38px 38px 32px;text-align:center;background:linear-gradient(145deg,rgba(21,32,55,.98),rgba(13,21,37,.98));border:1px solid var(--border);border-radius:20px;box-shadow:0 28px 75px rgba(0,0,0,.38);animation:rise .35s ease-out}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.brand{display:inline-flex;align-items:center;gap:11px;margin-bottom:26px}.brand .logo{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--primary),#5d8cf7);box-shadow:0 10px 25px rgba(124,109,242,.3)}.brand b{font-size:21px;letter-spacing:-.04em}
h1{margin:0 0 7px;font-size:24px;letter-spacing:-.035em}.lead{margin:0 0 26px;color:var(--muted);font-size:13px}
form{text-align:left}.field{margin-bottom:15px}.field label{display:block;margin:0 0 6px;color:#acb7c8;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.field input{width:100%;height:46px;padding:0 14px;color:var(--text);font-size:14px;background:#0c1525;border:1px solid #2c3b55;border-radius:10px;outline:0;transition:.15s}.field input::placeholder{color:#56657c}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(124,109,242,.13)}
.field .errorlist{list-style:none;margin:6px 0 0;padding:0;color:var(--red);font-size:11px}.field .helpt{display:block;margin-top:5px;color:#687891;font-size:9px;line-height:1.4}.field .helpt ul{list-style:none;margin:0;padding:0}
.btn{width:100%;height:47px;margin-top:8px;border:0;border-radius:10px;color:#fff;background:linear-gradient(135deg,#8071ef,#6658d4);box-shadow:0 10px 26px rgba(83,70,175,.3);font-size:14px;font-weight:600;cursor:pointer;transition:.15s}.btn:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 13px 30px rgba(83,70,175,.4)}.btn:active{transform:none}
.alert,.messages div{margin:0 0 18px;padding:11px 13px;text-align:left;color:var(--red);font-size:12px;background:rgba(251,113,133,.08);border:1px solid rgba(251,113,133,.2);border-left:3px solid var(--red);border-radius:9px}.messages{margin-bottom:16px}.messages div{margin-bottom:7px}.messages .success{color:var(--green);border-color:rgba(55,211,153,.25);border-left-color:var(--green);background:rgba(55,211,153,.07)}
.note{margin:22px 0 0;color:var(--muted);font-size:12px}.note a{color:var(--primary-light);font-weight:600;text-decoration:none}.note a:hover{text-decoration:underline}
.auth-link-btn{display:flex;align-items:center;justify-content:center;text-decoration:none}
@media(max-width:480px){body{padding:14px}.card{padding:32px 22px 26px;border-radius:17px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
