:root{
  --bg:#0a0a0b; --s1:#111113; --s2:#161618; --line:#26262a; --line2:#34343a;
  --red:#e5262e; --red-d:#b81c23; --green:#3dd68c;
  --tx:#f5f5f6; --mu:#9a9aa3; --mu2:#6d6d76;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--tx);font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:6px}

.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}

/* left brand panel */
.side{position:relative;overflow:hidden;background:var(--s1);border-right:1px solid var(--line);padding:48px 64px;display:flex;flex-direction:column;justify-content:space-between}
.side:before{content:"";position:absolute;right:-18%;top:-8%;width:52%;height:64%;background:var(--red);opacity:.08;transform:skewX(-24deg)}
.side>*{position:relative}
.logo{display:inline-flex;align-items:center;gap:12px;font-weight:800;font-size:20px;letter-spacing:-.02em}
.logo i{width:34px;height:34px;border-radius:9px;background:var(--red);display:grid;place-items:center}
.logo i svg{width:18px;height:18px}
.side h1{font-size:clamp(32px,3.4vw,46px);line-height:1.1;letter-spacing:-.02em;font-weight:800;max-width:15ch;margin-bottom:20px}
.side p{color:var(--mu);font-size:17px;max-width:44ch}
.ratebox{border:1px solid var(--line2);background:var(--bg);border-radius:14px;padding:22px 24px;max-width:380px}
.ratebox small{display:block;color:var(--mu);font-size:14px}
.ratebox b{display:block;font-size:28px;font-weight:800;letter-spacing:-.02em;margin:2px 0 14px}
.ratebox div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:14px;color:var(--mu)}
.ratebox div span:last-child{color:var(--tx);font-weight:700}

/* right form panel */
.main{display:flex;align-items:center;justify-content:center;padding:48px 32px}
.box{width:100%;max-width:420px}
.box .logo{display:none;margin-bottom:36px}
.box h2{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:8px}
.box .sub{color:var(--mu);margin-bottom:32px}
.fld{margin-bottom:18px}
.fld label{display:block;font-size:14px;font-weight:600;color:var(--mu);margin-bottom:8px}
.fld label em{font-style:normal;color:var(--mu2);font-weight:500}
.in{display:flex;align-items:center;height:54px;border:1px solid var(--line2);background:var(--s1);border-radius:12px;padding:0 16px;transition:border-color .15s}
.in:focus-within{border-color:var(--red)}
.in .pre{color:var(--mu);font-weight:700;padding-right:12px;margin-right:12px;border-right:1px solid var(--line2);font-size:15px}
.in input{flex:1;min-width:0;height:100%;background:none;border:0;outline:0;color:var(--tx);font:600 16px 'Manrope',sans-serif}
.in input::placeholder{color:var(--mu2);font-weight:500}
.in button{background:none;border:0;color:var(--mu);font:600 14px 'Manrope',sans-serif;cursor:pointer;padding:6px 0 6px 12px}
.in button:hover{color:var(--tx)}
.fld.bad .in{border-color:#ff3b45}
.hint{font-size:13px;color:var(--mu2);margin-top:6px}
.msg{border:1px solid #5a1b20;background:#1a0c0e;color:#ffb3b7;border-radius:12px;padding:14px 16px;font-size:14px;margin-bottom:22px}
.msg.ok{border-color:#1d4d37;background:#0c1a14;color:#a6ebc9}
.btn{display:flex;align-items:center;justify-content:center;width:100%;height:54px;border-radius:12px;background:var(--red);color:#fff;font:700 16px 'Manrope',sans-serif;border:0;cursor:pointer;transition:background .15s;margin-top:8px}
.btn:hover{background:var(--red-d)}
.row{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin:4px 0 6px}
.row a{color:var(--mu)}
.row a:hover{color:var(--tx)}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--mu);margin:6px 0 4px}
.chk input{margin-top:5px;accent-color:var(--red);width:16px;height:16px;flex:none}
.chk a{color:var(--tx);text-decoration:underline;text-underline-offset:3px}
.switch{margin-top:28px;text-align:center;color:var(--mu);font-size:15px}
.switch a{color:var(--tx);font-weight:700}
.switch a:hover{color:var(--red)}
.back{display:inline-block;margin-top:20px;color:var(--mu2);font-size:14px}
.back:hover{color:var(--tx)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}

@media(max-width:900px){
  .auth{grid-template-columns:1fr}
  .side{display:none}
  .box .logo{display:inline-flex}
  .main{align-items:flex-start;padding:40px 20px}
}
@media(max-width:480px){.two{grid-template-columns:1fr}}
