@font-face{font-family:'DM Sans';font-weight:400;font-display:swap;src:url(/assets/fonts/dm-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:600 700;font-display:swap;src:url(/assets/fonts/dm-sans-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:800;font-display:swap;src:url(/assets/fonts/dm-sans-latin-800-normal.woff2) format('woff2')}
:root{--brand:#0984e3;--brand-dark:#0770c2;--brand-light:#e8f4fd;--glow:rgba(9,132,227,.16);--dark:#1e272e;--gray-700:#485460;--gray-600:#5f6b70;--gray-200:#e3e7ea;--gray-100:#f1f3f5;--gray-50:#f8f9fa;--ok:#00a37a;--err:#d63031}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:radial-gradient(circle at 15% 0%,#e3f1fd 0,transparent 40%),#f5f8fb;color:var(--dark);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.topbar{display:flex;align-items:center;justify-content:space-between;max-width:440px;width:100%;margin:0 auto;padding:22px 20px 0}
.topbar img{height:30px;width:auto;display:block}
.back{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--gray-600);text-decoration:none}
.back:hover{color:var(--brand)}
.card{background:#fff;border:1px solid var(--gray-200);border-radius:20px;box-shadow:0 12px 40px -18px rgba(30,39,46,.18);max-width:440px;width:calc(100% - 40px);margin:28px auto;padding:32px 28px}
.ic{width:52px;height:52px;border-radius:14px;background:var(--brand-light);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.ic svg{width:26px;height:26px;stroke:var(--brand);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic.ok{background:#e7f8f2}.ic.ok svg{stroke:var(--ok)}
.ic.warn{background:#fff4e5}.ic.warn svg{stroke:#d97706}
h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.sub{font-size:.94rem;color:var(--gray-600);line-height:1.55;margin:8px 0 22px}
.field{margin-bottom:14px}
.field label{display:block;font-size:.84rem;font-weight:700;margin-bottom:6px;color:var(--gray-700)}
.inp{position:relative}
.inp input{width:100%;height:48px;border:1.5px solid var(--gray-200);border-radius:12px;padding:0 14px;font-size:16px;font-family:inherit;color:var(--dark);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.inp input::placeholder{color:#b4bcc0}
.inp input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--glow)}
.inp input.bad{border-color:var(--err)}
.inp.pw input{padding-right:48px}
.eye{position:absolute;right:4px;top:4px;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--gray-600)}
.eye:hover{background:var(--gray-50);color:var(--dark)}
.eye svg{width:20px;height:20px}
.msg{font-size:.78rem;margin-top:6px;color:var(--err);font-weight:600}
.hint{font-size:.78rem;color:var(--gray-600);margin-top:6px}
.meter{display:flex;gap:4px;margin-top:8px}
.meter i{flex:1;height:4px;border-radius:4px;background:var(--gray-200);transition:background .2s}
.meter[data-s="1"] i:nth-child(1){background:#e17055}
.meter[data-s="2"] i:nth-child(-n+2){background:#fdcb6e}
.meter[data-s="3"] i{background:var(--ok)}
.submit,.btn{width:100%;height:50px;border-radius:12px;background:var(--brand);color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;box-shadow:0 6px 18px rgba(9,132,227,.28);transition:background .2s;text-decoration:none}
.submit:hover,.btn:hover{background:var(--brand-dark)}
.submit:disabled{opacity:.65;cursor:default}
.btn.ghost{background:#fff;color:var(--dark);border:1.5px solid var(--gray-200);box-shadow:none;margin-top:10px}
.btn.ghost:hover{background:var(--gray-50)}
.spin{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;display:none}
.busy .spin{display:block}
@keyframes sp{to{transform:rotate(360deg)}}
.alert{display:none;align-items:flex-start;gap:10px;border-radius:12px;padding:12px 14px;font-size:.86rem;font-weight:600;margin-bottom:16px;line-height:1.45}
.alert.on{display:flex}
.alert.err{background:#fdecec;color:#b42318;border:1px solid #f6caca}
.alert a{color:inherit;font-weight:800}
.alert svg{width:18px;height:18px;margin-top:1px;flex:none}
.state{display:none}
.state.on{display:block}
.small{font-size:.84rem;color:var(--gray-600);line-height:1.55;margin-top:16px}
.small a,.small button{color:var(--brand);font-weight:700;font-size:inherit;text-decoration:none}
.foot{display:flex;justify-content:center;gap:20px;font-size:.78rem;margin:auto auto 0;padding:10px 20px 22px}
.foot a{color:var(--gray-600);text-decoration:none}
.foot a:hover{color:var(--brand)}
@media(max-width:480px){.card{padding:26px 20px;margin:20px auto}h1{font-size:1.35rem}}
