:root{
  --brand-blue:#2480fd;
  --brand-cyan:#00cad2;
  --bg-from:#e9faff;
  --bg-to:#f3fbff;

  --ink-900:#0d2c52;
  --ink-700:#6c7a8d;
  --ink-500:#93a3b8;

  --field-bg:#f6f9ff;
  --field-bd:#e5edf7;

  --ok:#26a269;
  --err:#e54848;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
  color:var(--ink-900);
  background:linear-gradient(135deg,var(--bg-from),var(--bg-to));
}

.auth-page{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:24px;
}

.auth-card{
  width:100%;
  max-width:440px;
  background:#fff;
  border-radius:20px;
  padding:22px 20px 20px;
  box-shadow:0 10px 30px rgba(13,44,82,.08);
  border:1px solid #eef2f7;
  text-align:center;
}

.logo{
  width:56px;height:56px;border-radius:12px;object-fit:contain;margin:0 auto 8px;
}

.brand{margin:0;font-size:22px;font-weight:700;color:var(--ink-900)}
.subtitle{margin:2px 0 14px;color:var(--ink-700);font-size:13px}

.form{display:flex;flex-direction:column;align-items:stretch;gap:10px}

.input-wrap{
  position:relative;display:flex;align-items:center;gap:8px;
  background:var(--field-bg);border:1px solid var(--field-bd);
  border-radius:14px;padding:10px 12px;
}
.input-ico{color:#7b8aa0;font-size:18px}
.input-wrap input{
  appearance:none;-webkit-appearance:none;border:0;outline:0;background:transparent;
  flex:1;font-size:15px;color:var(--ink-900);
}
.input-wrap:focus-within{
  border-color:rgba(36,128,253,.55);
  box-shadow:0 0 0 3px rgba(36,128,253,.12);
}

.eye-btn{
  display:inline-grid;place-items:center;
  width:32px;height:32px;border-radius:8px;border:0;background:transparent;
  color:#7b8aa0;cursor:pointer;
}

.primary-btn{
  appearance:none;border:0;cursor:pointer;
  background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan));
  color:#fff;font-weight:700;border-radius:14px;padding:12px 16px;
  box-shadow:0 8px 18px rgba(36,128,253,.22);
  transition:filter .2s ease, transform .06s ease;
}
.primary-btn:hover{filter:brightness(1.02)}
.primary-btn:active{transform:scale(.99)}

.links-row{
  display:flex;justify-content:center;align-items:center;gap:8px;margin-top:4px;
}
.link{
  appearance:none;background:transparent;border:0;cursor:pointer;
  color:var(--brand-blue);font-weight:700;font-size:13px;padding:4px 2px;
}

.error{
  min-height:1.2em;
  margin:8px 0 0;
  color:var(--err);
  font-size:.95rem;
}
.error.ok{color:var(--ok)}

@media (max-width:480px){
  .auth-card{padding:18px 14px 16px;border-radius:16px}
}
