:root{
  --navy-950:#0A1628;--navy-900:#0C1B33;--navy-800:#102340;--navy-700:#14294A;--navy-600:#1B3A5F;
  --steel:#C9D2DC;--steel-d:#8FA3B8;--steel-l:#E8EDF2;
  --gold:#B08D4F;--gold-l:#C9A76B;--gold-d:#96763D;
  --paper:#F4F6F9;--ink:#101C2E;--muted:#5B6B80;--line:#DDE4EC;
  --ok:#1E7A4C;--warn:#8A6A1F;--stop:#8C2F2F;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);line-height:1.6;font-size:15.5px;
  background:var(--navy-950);
  background-image:radial-gradient(ellipse at 20% 0%,var(--navy-700) 0%,transparent 55%),
                   radial-gradient(ellipse at 85% 100%,var(--navy-800) 0%,transparent 50%);
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 18px}
h1,h2,h3{font-family:'Montserrat',sans-serif;line-height:1.25}
a{color:var(--gold-l);text-decoration:none}
a:hover{text-decoration:underline}

.card{width:100%;max-width:452px;background:#fff;border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.34);overflow:hidden}
.card-head{background:var(--navy-900);padding:26px 34px 22px;border-bottom:3px solid var(--gold)}
.brand{font-family:'Montserrat';font-weight:800;font-size:19px;color:#fff;letter-spacing:.02em}
.brand span{color:var(--gold)}
.brand-sub{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.22em;
  color:var(--steel-d);text-transform:uppercase;margin-top:5px}
.card-body{padding:30px 34px 34px}
h1{font-size:21px;font-weight:700;margin-bottom:6px}
.sub{color:var(--muted);font-size:14px;margin-bottom:22px}

label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.03em;
  text-transform:uppercase;color:var(--navy-700);margin:16px 0 6px}
input,select{width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:15px;color:var(--ink);background:#fff;transition:.15s}
input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,79,.16)}
input[readonly]{background:var(--paper);color:var(--muted)}
.hint{font-size:12.5px;color:var(--muted);margin-top:6px}

.btn{width:100%;margin-top:24px;padding:13px 22px;border:none;border-radius:9px;cursor:pointer;
  font-family:'Montserrat';font-weight:700;font-size:14px;letter-spacing:.04em;transition:.15s}
.btn-g{background:var(--gold);color:var(--navy-950)}
.btn-g:hover:not(:disabled){background:var(--gold-l)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn-link{background:none;border:none;color:var(--muted);font-size:13.5px;cursor:pointer;
  font-family:inherit;padding:0;text-decoration:underline}

.msg{margin-top:18px;padding:12px 14px;border-radius:8px;font-size:13.5px;display:none;line-height:1.5}
.msg.show{display:block}
.msg.err{background:#FBEDED;color:var(--stop);border-left:3px solid var(--stop)}
.msg.ok{background:#EAF5EF;color:var(--ok);border-left:3px solid var(--ok)}
.msg.info{background:var(--paper);color:var(--navy-700);border-left:3px solid var(--navy-600)}

.foot{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);
  text-align:center;font-size:14px;color:var(--muted)}
.foot a{font-weight:600}
.legal{margin-top:26px;text-align:center;font-size:11.5px;color:var(--steel-d);line-height:1.6}
.legal a{color:var(--steel)}
.row{display:flex;gap:12px}
.row>div{flex:1}
.spin{display:inline-block;width:13px;height:13px;border:2px solid rgba(10,22,40,.25);
  border-top-color:var(--navy-950);border-radius:50%;animation:sp .7s linear infinite;
  vertical-align:-2px;margin-right:7px}
@keyframes sp{to{transform:rotate(360deg)}}
@media(max-width:480px){
  body{padding:0}
  .card{max-width:none;border-radius:0;min-height:100vh;box-shadow:none}
}
